热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQLServer:迁新服务器常见的初始准备工作

一、检查即时初始化是否开启,没有开启则开通相关权限并开启。相关文档:点击打开链接二、检查SQLServer中的计算机名与实际计算机名是否一致,不一致则应该修正(注:修改完成后要

一、检查即时初始化是否开启, 没有开启则开通相关权限并开启。相关文档:点击打开链接

二、检查SQL Server中的计算机名与实际计算机名是否一致,不一致则应该修正(注:修改完成后要重启SQL Server服务才生效):

IF SERVERPROPERTY('servername') <> @@servername
BEGIN
    DECLARE @server SYSNAME
    SET @server = @@servername
    EXEC sp_dropserver @server = @server
    SET @server = CAST(SERVERPROPERTY('servername') AS SYSNAME)
    EXEC sp_addserver @server = @server, @local = 'LOCAL'

    PRINT 'ok'
END

SELECT @@SERVERNAME, SERVERPROPERTY('servername')

 

三、tempdb文件设置为8个固定的数据文件(主要是优化并发性能)和一个日志文件, 类似下图:

--大的平台8*8G--8*12G,小的8*1G或8*2G, 要导大型报表的应该大一些。 如果磁盘比较紧张,可以设置稍小一点,后面监控tempdb的使用情况再来修改。

--但还是尽量在前期做好,后面修改需要重启SQL Server服务,比较麻烦。

use master
declare @path nvarchar(max),@size nvarchar(max),@sql nvarchar(max),@FILEGROWTH nvarchar(max)
set @path=N'f:\tempdb\2014\' --tempdb文件位置,注意路径最后的斜杠
set @size=N'128' --单个文件大小,单位MB
set @FILEGROWTH=N'64' --tempdb日志文件增长量,单位MB


set @sql='ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N''tempdev'', SIZE = '+@size+'MB , FILEGROWTH = '+@FILEGROWTH+'MB)'
exec sp_executesql @sql
set @sql='ALTER DATABASE [tempdb] ADD FILE ( NAME = N''tempdev2'', FILENAME = N'''+@path+'tempdev2.ndf'' , SIZE = '+@size+'MB , FILEGROWTH = '+@FILEGROWTH+'MB)'
exec sp_executesql @sql
set @sql='ALTER DATABASE [tempdb] ADD FILE ( NAME = N''tempdev3'', FILENAME = N'''+@path+'tempdev3.ndf'' , SIZE = '+@size+'MB , FILEGROWTH = '+@FILEGROWTH+'MB)'
exec sp_executesql @sql
set @sql='ALTER DATABASE [tempdb] ADD FILE ( NAME = N''tempdev4'', FILENAME = N'''+@path+'tempdev4.ndf'' , SIZE = '+@size+'MB , FILEGROWTH = '+@FILEGROWTH+'MB)'
exec sp_executesql @sql
set @sql='ALTER DATABASE [tempdb] ADD FILE ( NAME = N''tempdev5'', FILENAME = N'''+@path+'tempdev5.ndf'' , SIZE = '+@size+'MB , FILEGROWTH = '+@FILEGROWTH+'MB)'
exec sp_executesql @sql
set @sql='ALTER DATABASE [tempdb] ADD FILE ( NAME = N''tempdev6'', FILENAME = N'''+@path+'tempdev6.ndf'' , SIZE = '+@size+'MB , FILEGROWTH = '+@FILEGROWTH+'MB)'
exec sp_executesql @sql
set @sql='ALTER DATABASE [tempdb] ADD FILE ( NAME = N''tempdev7'', FILENAME = N'''+@path+'tempdev7.ndf'' , SIZE = '+@size+'MB , FILEGROWTH = '+@FILEGROWTH+'MB)'
exec sp_executesql @sql
set @sql='ALTER DATABASE [tempdb] ADD FILE ( NAME = N''tempdev8'', FILENAME = N'''+@path+'tempdev8.ndf'' , SIZE = '+@size+'MB , FILEGROWTH = '+@FILEGROWTH+'MB)'
exec sp_executesql @sql


set @sql='ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N''templog'', SIZE = '+@size+'MB , FILEGROWTH = '+@FILEGROWTH+'MB )'
exec sp_executesql @sql


四、检测数据库服务器各个磁盘的 IO 。工具见 点击打开链接 。

如果DB所在的磁盘IO性能太差(seq read<150MB/s, 4k read<2MB/s, 如果用于alwayson或重要服务器, 至少应该翻倍才行),必须及时反馈和跟进。


五、设置正式数据库的增长量。

--  一般设置为 50MB~150MB (按上面的IO检测性能来,如果够好还可以设置大一些)。

--  设置为固定值MB增长,太大太小都会影响性能;设置为按百分比增长,则可能影响性能,浪费磁盘空间、容易导致磁盘空间爆满。


六、设置正式数据库的基于行版本的控制级别。

这一步必须在没有连接上任何应用时做,因为一旦连接上很可能就设置不了。

连接上了生产环境的应用,则应该在晚上或者其它基本没有用户使用时操作。

方法1:脚本操作:

--注:必须设置好当前库,只在当前库上执行!无需改任何参数!
--1. 杀当前进程之外的所有进程
DECLARE @sql NVARCHAR(MAX),@currDbName NVARCHAR(100)
SET @currDbName=DB_NAME()
SELECT @sql=REPLACE(
    (SELECT 'kill '+CAST(spid AS NVARCHAR(50))+';' FROM sys.sysprocesses WHERE dbid=DB_ID(@currDbName) AND spid!=@@SPID FOR XML PATH(''))
    ,';','
')
PRINT @sql
EXEC (@sql)

--2. 修改行版本控制级别
SET @sql='ALTER DATABASE '+@currDbName +' SET ALLOW_SNAPSHOT_ISOLATION ON'
EXEC (@sql)
SET @sql='ALTER DATABASE '+@currDbName +' SET READ_COMMITTED_SNAPSHOT ON'
EXEC (@sql)

--3. 查看是否已修改过来(两个1才是正确的)
SELECT [name],snapshot_isolation_state,snapshot_isolation_state_desc,is_read_committed_snapshot_on
FROM master.sys.databases
WHERE NAME=@currDbName


方法2:如果脚本无法生效,那就得改用单用户模式进入再操作, 这就不赘述了。

注:1. 方法1对 alwayson 无影响; 2. 方法2无法对配置了Alwayson、镜像的库进行操作。

七、增加一个专用于监控(主要是SqlClr存储过程来监控cpu)的数据库,名称格式:monitor_地区_项目_本地ip(或外网ip) 。

八、数据库最大内存设置

物理内存(GB) 设置sqlserver最大内存(GB)
<=4 物理内存 - 1
>4, <=16 物理内存 - 2
>16, <=128 物理内存 - 3
>128, <=256 物理内存 - 4~5
>256 物理内存 - 5~6

九、WinServer2008安装framework3.5 sp1(自身带),安装framework4.5.2 framework4.5.2


推荐阅读
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 本文介绍了多种将多行数据合并为单行的方法,包括使用动态SQL、函数、CTE等技术,适用于不同的SQL Server版本。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • SQL 数据恢复技巧:利用快照实现高效恢复
    本文详细介绍了如何在 SQL 中通过数据库快照实现数据恢复,包括快照的创建、使用及恢复过程,旨在帮助读者深入了解这一技术并有效应用于实际场景。 ... [详细]
  • 本文详细介绍了如何处理Oracle数据库中的ORA-00227错误,即控制文件中检测到损坏块的问题,并提供了具体的解决方案。 ... [详细]
  • J2EE平台集成了多种服务、API和协议,旨在支持基于Web的多层应用开发。本文将详细介绍J2EE平台中的13项关键技术规范,涵盖从数据库连接到事务处理等多个方面。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • SQLite是一种轻量级的关系型数据库管理系统,尽管体积小巧,却能支持高达2TB的数据库容量,每个数据库以单个文件形式存储。本文将详细介绍SQLite在Android开发中的应用,包括其数据存储机制、事务处理方式及数据类型的动态特性。 ... [详细]
  • Navicat Premium中MySQL用户管理:创建新用户及高级设置
    本文作为Navicat Premium用户管理系列的第二部分,主要介绍如何创建新的MySQL用户,包括设置基本账户信息、密码策略、账户限制以及SSL配置等。 ... [详细]
  • 本文探讨了在SharePoint环境中使用BDC(Business Data Catalog)时遇到的问题及其解决策略,包括XML文件导入SSP后的不可见性问题以及与远程SQL Server 2005连接的难题。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 本文探讨了在Qt框架下实现TCP多线程服务器端的方法,解决了一个常见的问题:服务器端仅能与最后一个连接的客户端通信。通过继承QThread类并利用socketDescriptor标识符,实现了多个客户端与服务器端的同时通信。 ... [详细]
  • 抽象工厂模式 c++
    抽象工厂模式包含如下角色:AbstractFactory:抽象工厂ConcreteFactory:具体工厂AbstractProduct:抽象产品Product:具体产品https ... [详细]
  • 本文介绍如何通过创建数据库触发器来限制Oracle数据库中特定用户的登录IP地址,以增强系统的安全性。示例代码展示了如何阻止非授权IP地址的登录尝试。 ... [详细]
  • 本文总结了 #define 在 C/C++ 编程中的多种用途和技巧,包括定义常量、函数、宏以及条件编译等,并提供了详细的示例和注意事项。 ... [详细]
author-avatar
一生的牵扯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有