新浪博客

完整SQL Server实例迁移案例

2017-06-25 15:30阅读:
假设dba遇到以下窘境:
  • 原先服务器出现硬件故障无法启动,需要将整套SQL Server实例迁移到一台备用服务器上
  • 备用服务器和原服务器不同名,连SQL Server安装路径、文件路径都不一样
  • 手头有比较完整的备份,除用户数据库外还有master、msdb和model的完整备份
那么这就涉及到sqlserver完整实例的迁移,包含实例的login及password、各个数据库的用户、所有job、linked servers、端点等所有数据库对象。下面是完整的迁移过程:
1.确认备用服务器的SQL Server和原版本一致(select @@version返回的号码必须一模一样)--因为要恢复系统数据库,要保证恢复的mastermsdb和原库一致,否则SQL Server不能正常工作。
2.停止SQL Server服务,并以单用户模式启动
完整SQL <wbr>Server实例迁移案例


3.Sqlcmd工具连接SQL Server实例
完整SQL <wbr>Server实例迁移案例

4.还原master数据库
RESTORE DATABASE master
FROM DISK = 'C:\backup\master.bak'
with replace,
MOVE 'master' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\master.mdf',
MOVE 'mastlog' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\mastlog.ldf'
完整SQL <wbr>Server实例迁移案例
5.由于恢复的master数据库里记载的其他数据库路径和现在的不一致,这时候重新启动SQL Server会失败,必须要用跟踪标志3608来启动
完整SQL <wbr>Server实例迁移案例
6.Sqlcmd连接SQL Server

完整SQL <wbr>Server实例迁移案例
7.在原实例上查找各系统数据库文件路径
select db_name(database_id),name,physical_name from sys.master_files
完整SQL <wbr>Server实例迁移案例

8.修改其他系统数据库的正确路径
完整SQL <wbr>Server实例迁移案例
--resource数据库
ALTER DATABASE mssqlsystemresource MODIFY FILE(NAME=DATA,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\mssqlsystemresource.mdf')
GO
ALTER DATABASE mssqlsystemresource MODIFY FILE(NAME=LOG,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\mssqlsystemresource.ldf')
GO
--msdb数据库
ALTER DATABASE msdb MODIFY FILE(NAME=MSDBData,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\msdbdata.mdf')
GO
ALTER DATABASE msdb MODIFY FILE(NAME=MSDBLog,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\msdblog.ldf')
GO

--model数据库
ALTER DATABASE model MODIFY FILE(NAME=modeldev,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\model.mdf')
GO
ALTER DATABASE model MODIFY FILE(NAME=modellog,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\modellog.ldf')
GO

--tempdb数据库
ALTER DATABASE tempdb MODIFY FILE(NAME=tempdev,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\tempdb.mdf')
GO
ALTER DATABASE tempdb MODIFY FILE(NAME=templog,FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\templog.ldf')
GO

9.停止SQL Server服务,再以正常模式启动

完整SQL <wbr>Server实例迁移案例
--恢复model数据库
RESTORE DATABASE model FROM DISK='c:\lab\model.bak'3 WITH
move 'modeldev' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\model.mdf',
move 'modellog' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\modellog.ldf' ,REPLACE
--恢复msdb数据库
RESTORE DATABASE msdb FROM DISK='c:\lab\msdb.bak'3 WITH
move 'MSDBData' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\MSDBData.mdf',
move 'MSDBLog' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data\MSDBLog.ldf' ,REPLACE
Ps:

我的更多文章

下载客户端阅读体验更佳

APP专享