SQL Server系统数据库迁移


标签:


分类:SQLServer数据库迁移

一、迁移的意义:

1,一般就是从C盘移动其他分区;

2,从这个硬盘移动其他硬盘,数据库还是正常启动;

3,为一般的数据库迁移做准备;

 

二、系统数据库迁移主要迁移的数据库

第一类:tempdb,model,msdb

第二类:master,(resource可选)

三、迁移步骤:

 1,master数据库

 一般默认SQlServer数据库安装完成后,SQLServer的4个系统数据库(master、model、msdb、tempdb)都会被自动安装在安装路径下,也就是系统盘的ProgramFIles文件夹下。所带来的问题就是绝大多数数据库服务器为了同时照顾到性能,成本和高可用性着三个方面,都会将数据库安装在同一个磁盘(raid1)上,通常这个磁盘(Raid1)还不一定会用上15k的SAS,有的只用了10k的SAS,更有甚者,为了成本,装2个7.2k的sata也就完事,再加上Raid1阵列本身就是一种读取性能非常强,但是写入性能相当差的阵列形式。所以对于系统数据库,尤其对tempdb数据库来说是非常不利的,就肯定会对整个SQLServer的性能造成影响。

 所以,将整个系统数据库迁移到性能更加高的阵列上,是一个解决硬件性能瓶颈的基础解决方案。

 具体介绍一下如何将系统数据库迁移到其他分区上(以sql2008 R2为例):

  1,首先迁移master数据库,而且master数据库也是整个SQLServer数据库实例的核心,所有的设置都存放在master数据库,如果master数据库出现问题,整个实例都将瘫痪。

    首先打开SQLServerConfiguration Manager,在左边列表框中选中SQLServerSerrvices节点,然后在左边的列表框找到要迁移的系统数据库的实例的那个SQL Server服务,比如SQLServer(MSSQLSERVER),停止这个实例的服务,然后单击选中最底下的“属性”,并且切换到“方面”标签,如图:

SQL <wbr>Server系统数据库迁移



看到“Startup Parameters”,这里的参数就是需要我们修改的,如图:

SQL <wbr>Server系统数据库迁移


文字整理:

-dC:\Program Files\Microsoft
SQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\master.mdf;
-eC:\Program Files\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;
-lC:\Program Files\Microsoft
SQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.ldf

“-d”后面的就是master数据库文件的位置,“-e”是该SQLServer实例的错误日志所在位置,至于“-l”

就是master数据库日志文件所在的位置。

   修改数据文件和日志文件的路径适当位置,错误日志的位置一般需要做变更,例如:将数据库文件存放到D盘的SQLData文件夹下,日志文件存放到E盘的SQLLog文件夹下,则参数如下:

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

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

  然后需要做的是将master数据库的数据库文件和日志文件剪贴到刚刚“startup parameters”定义的路径中, 接着启动该服务实例的服务。

   注意:

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

 对于tempdb、msdb和model数据库
 1、修改文件路径
  --Move tempdb 
   ALTER DATABASE tempdbMODIFY
FILE(NAME='tempdev',FILENAME='D:\Database\tempdb.mdf'); 
   ALTER DATABASE tempdbMODIFY
FILE(NAME='templog',FILENAME='D:\Database\templog.ldf'); 
--Move model 
   ALTER DATABASE modelMODIFY
FILE(NAME='modeldev',FILENAME='D:\Database\model.mdf'); 
   ALTER DATABASE modelMODIFY
FILE(NAME='modellog',FILENAME='D:\Database\modellog.ldf'); 
--Move msdb 
   ALTER DATABASE msdbMODIFY 
FILE(NAME='MSDBData',FILENAME='D:\Database\msdbdata.mdf'); 
   ALTER DATABASE msdbMODIFY
FILE(NAME='MSDBLog',FILENAME='D:\Database\msdb_log.ldf');

2,停止SQL Server服务;

3,物理移动文件到我们要定义的文件;

4,启动SQL Server 服务;

5,迁移完成。

猜你喜欢

转载自blog.csdn.net/ouyangwanshan/article/details/80046136