MSSQLSERVER系统数据库的迁移

sqlserver安装完成后自带的四个系统数据库:master、model、msdb、tempdb;
其迁移过程与用户自己创建的数据库迁移有所区别:
用户创建的数据库可以通过分离,迁移数据库文件,附加的方式来达到迁移数据库的目的;
但是系统数据库是没有分离一说的,另外这四个数据库的迁移也不尽相同。
系统数据库迁移说明:

  1. 备份系统数据库;
    这些数据库很重要,尤其是master数据库,迁移时一定是采购拷贝的方式,别剪切,慎重操作。等最终完成操作后,再把这些文件剪切到其他文件夹备份起来。
  2. 迁移model、msdb、tempdb;
    执行SQL脚本:

    --Move tempdb
     ALTER DATABASE tempdb MODIFY FILE(NAME='tempdev',FILENAME='D:\OADB\MSSQL\DATA\tempdb.mdf'); 
     ALTER DATABASE tempdb MODIFY FILE(NAME='templog',FILENAME='D:\OADB\MSSQL\DATA\templog.ldf'); 
     --Move model 
     ALTER DATABASE model MODIFY FILE(NAME='modeldev',FILENAME='D:\OADB\MSSQL\DATA\model.mdf'); 
     ALTER DATABASE model MODIFY FILE(NAME='modellog',FILENAME='D:\OADB\MSSQL\DATA\modellog.ldf'); 
     --Move msdb 
     ALTER DATABASE msdb MODIFY FILE(NAME='MSDBData',FILENAME='D:\OADB\MSSQL\DATA\msdbdata.mdf'); 
     ALTER DATABASE msdb MODIFY FILE(NAME='MSDBLog',FILENAME='D:\OADB\MSSQL\DATA\msdblog.ldf');

    参数说明:
    NAME:数据库文件逻辑名称,可以通过数据库属性查看文件的逻辑名称,不同的数据库版本,逻辑名称稍微有些差别;
    FILENAME:数据库文件绝对路径(要迁移的目的地,新路径);
    如下图:
    MSSQLSERVER系统数据库的迁移
    脚本执行完成后提示重新启动SQL Server (MSSQLSERVER)服务才会生效,无需理会,继续执行后面的操作即可。

  3. 打开Sql Server Configuration Manager
  4. 选择Sql Server服务选项卡;
  5. 停止SQL Server (MSSQLSERVER)服务;
  6. 右键点击SQL Server (MSSQLSERVER)服务,选择属性
  7. 选择高级选项卡,修改转储目录,如下图;
    MSSQLSERVER系统数据库的迁移
  8. 选择启动参数选项卡,修改master数据库相关文件的路径,如下图;
    MSSQLSERVER系统数据库的迁移
    参数说明:
    -d:master数据库文件的位置;
    -e:SQLServer实例的错误日志所在位置;
    -l:master数据库日志文件所在的位置。
  9. 将四个系统数据库及错误日志对应的文件拷贝到新指定的文件夹,并对文件夹配置读写控制权限,确保SQL Server可以正常访问文件夹下的文件;
    如有SQL Server服务无法启动的情况,请确保配置的路径无误,NTFS权限已开启。
    具体问题可以通过事件查看器查看最近的应用日志错误信息,然后对症下药。
  10. 启动SQL Server (MSSQLSERVER)服务,测试数据库是否正常。

操作过程中,出现问题不可怕,就怕情急之下做出不恰当的举动,最好先看下事件查看器,确定问题所在,再谋而后动。

相关推荐