如何迁移SQL Server系统数据库 - 杯中水_F

时间:2024-02-25 07:28:53

默认SQL Server安装完成后,SQL Server的4个系统数据库(Master,Model,MSDB和TempDB)都会被自动安放在安装路径下,也就是系统盘的Program Files文件夹下。所带来的问题就是绝大多数数据库服务器为了同时照顾到性能,成本和高可用性这三个方面,都会将系统安装在一个Raid1阵列上,通常这个Raid1阵列还不一定会用上15K的SAS,有的只是用10K的SAS,更有甚者,为了成本,装2个7.2K的SATA也就完事了。再加上Raid1阵列本身就是一种读取性能非常强,但是写入性能相当差的阵列形式,所以,对于系统数据库,尤其是对TempDB数据库来说,是非常不利的,也肯定会对整个SQL Server的性能造成影响。所以将系统数据库迁移到一个性能更加高的阵列上,是一个解决硬件性能瓶颈的基础解决方案。

下面就像大家介绍一下如何将系统数据库迁移到其他分区上(以Microsoft SQL Server 2008 R2为例):

首先迁移master数据库,master数据库是整个SQL Server实例的核心,所有的设置都存放在master数据库里,如果master数据库出现问题,整个实例都将瘫痪。首先打开SQL Server Configuration Manager,在左边的列表框中选中SQL Server Services节点,然后在右边的列表框中找到需要迁移系统数据库的实例的那个SQL Server服务,比如说SQL Server(MSSQLSERVER),停止这个实例的服务,然后右键单击,选中最底下的"Properties",并且切换到"Advanced"标签,如下图所示:

SQL Server Configuration Manager

看到"Startup Parameters"了吧,这里的参数就是需要我们更改的。如下图所示:

Startup Parameters

把这段字符整理一下就是这样:
-dC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\master.mdf;
-eC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;
-lC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.ldf

基本上看出来了吧,"-d"后面的就是master数据库数据文件的位置,"-e"是该SQL Server实例的错误日志所在的位置,至于"-l"就是master数据库日志文件所在的位置了。修改数据文件和日志文件的路径到适当为位置,错误日志的位置一般不需要做变更,例如将数据文件存放到D盘的SQLData文件夹下,日志文件存放到E盘的SQLLog文件夹下,则参数如下:

-dD:\SQLData\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;-lE:\SQLLog\mastlog.ldf

点击"OK"保存并关闭对话框。

然后需要做的是将master数据库的数据文件和日志文件剪切到刚刚"Startup Parameters"定义的路径中,接着就可以启动该实例SQL Server服务了。

注意,此时可能仍然会有出现SQL Server服务无法启动的情况,确保刚刚配置准确无误,然后就是NTFS权限的事情了,如果你不是用Local System来启动SQL Server服务,那么更改完存放路径后,你需要给新的盘符或文件夹相应的权限,这样服务才能启动,建议直接给相应账号"Full Control"的权限,至于为什么嘛,那是经验,原因得要问Microsoft了。

好了,到这里,master数据库就算迁移完成了。

关于tempdb/msdb/model等其他系统数据库的迁移可以参照另外一篇博客:

http://www.cnblogs.com/Frank-Zhao/archive/2012/06/05/2537001.html

 

 

posted on 2012-07-12 16:50  杯中水_F  阅读(2012)  评论(0编辑  收藏  举报