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

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

二、检查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服务,比较麻烦。

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

如果DB所在的磁盘IO性能太差(seq read<100MB/s,4k read<1.2MB/s),必须及时反馈和跟进。

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

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

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

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

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

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

方法1:脚本操作:

--注:下面的数据库名 mydb 有四处, 如改设置其它库, 请自行查找替换!
--1. 杀进程
DECLARE @sql NVARCHAR(MAX),@currdbname NVARCHAR(100)
SET @currdbname='mydb' --如果在当前库上执行,可改为: SET @currdbname = DB_NAME()
WHILE EXISTS( SELECT 1 FROM sys.sysprocesses WHERE dbid=DB_ID(@currdbname) AND spid!=@@SPID )
    SELECT TOP 1 @sql='kill '+CAST(spid AS NVARCHAR(50)) FROM sys.sysprocesses WHERE dbid=DB_ID(@currdbname) AND spid!=@@SPID 
EXEC (@sql
END
--2. 修改行版本控制级别
ALTER DATABASE mydb SET ALLOW_SNAPSHOT_ISOLATION ON
Go
ALTER DATABASE mydb SET READ_COMMITTED_SNAPSHOT ON
GO
--3. 查看是否已修改过来(两个1才是正确的)
SELECT [name]
,snapshot_isolation_state

FROM master.sys.databases
WHERE NAME='mydb'

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

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

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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...