服务器文件路径的例子,完整SQL Server实例迁移案例

1.确认备用服务器的SQL

Server和原版本一致(select

@@version返回的号码必须一模一样)--因为要恢复系统数据库,要保证恢复的master和msdb和原库一致,否则SQL Server不能正常工作。

2.停止SQL

Server服务,并以单用户模式启动

a4c26d1e5885305701be709a3d33442f.png

3.Sqlcmd工具连接SQL

Server实例

a4c26d1e5885305701be709a3d33442f.png

4.还原master数据库

RESTOREDATABASEmaster

FROMDISK='C:\backup\master.bak'

withreplace,

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'

a4c26d1e5885305701be709a3d33442f.png

5.由于恢复的master数据库里记载的其他数据库路径和现在的不一致,这时候重新启动SQL

Server会失败,必须要用跟踪标志3608来启动

a4c26d1e5885305701be709a3d33442f.png

6.Sqlcmd连接SQL

Server

a4c26d1e5885305701be709a3d33442f.png

7.在原实例上查找各系统数据库文件路径

selectdb_name(database_id),name,physical_name

fromsys.master_files

a4c26d1e5885305701be709a3d33442f.png

8.修改其他系统数据库的正确路径

a4c26d1e5885305701be709a3d33442f.png

--resource数据库

ALTERDATABASEmssqlsystemresource

MODIFYFILE(NAME=DATA,FILENAME='C:\Program

Files\Microsoft SQL

Server\MSSQL.4\MSSQL\Data\mssqlsystemresource.mdf')

GO

ALTERDATABASEmssqlsystemresource

MODIFYFILE(NAME=LOG,FILENAME='C:\Program

Files\Microsoft SQL

Server\MSSQL.4\MSSQL\Data\mssqlsystemresource.ldf')

GO

--msdb数据库

ALTERDATABASEmsdb

MODIFYFILE(NAME=MSDBData,FILENAME='C:\Program

Files\Microsoft SQL

Server\MSSQL.4\MSSQL\Data\msdbdata.mdf')

GO

ALTERDATABASEmsdb

MODIFYFILE(NAME=MSDBLog,FILENAME='C:\Program

Files\Microsoft SQL

Server\MSSQL.4\MSSQL\Data\msdblog.ldf')

GO

--model数据库

ALTERDATABASEmodel

MODIFYFILE(NAME=modeldev,FILENAME='C:\Program

Files\Microsoft SQL

Server\MSSQL.4\MSSQL\Data\model.mdf')

GO

ALTERDATABASEmodel

MODIFYFILE(NAME=modellog,FILENAME='C:\Program

Files\Microsoft SQL

Server\MSSQL.4\MSSQL\Data\modellog.ldf')

GO

--tempdb数据库

ALTERDATABASEtempdb

MODIFYFILE(NAME=tempdev,FILENAME='C:\Program

Files\Microsoft SQL

Server\MSSQL.4\MSSQL\Data\tempdb.mdf')

GO

ALTERDATABASEtempdb

MODIFYFILE(NAME=templog,FILENAME='C:\Program

Files\Microsoft SQL

Server\MSSQL.4\MSSQL\Data\templog.ldf')

GO

9.停止SQL

Server服务,再以正常模式启动

a4c26d1e5885305701be709a3d33442f.png

--恢复model数据库

RESTOREDATABASEmodel

FROMDISK='c:\lab\model.bak'3WITH

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 DATABASEmsdb

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:为什麽resource数据库跟tempdb数据库不用还原呢?resource:包含SQLSERVER附带的所有系统对象副本的只读数据库,resource数据库是不能备份的,而且在SSMS里是看不见的

tempdb:用于保存临时或中间结果集的工作空间。每次启动SQLSERVER实例时SQLSERVER都会根据model数据库为蓝本重新创建此数据库。

服务器实例关闭时,将永久删除tempdb数据库中的所有数据

10.修改服务器名称

迁移到新服务上后需修改master里记录的原服务器名

usemaster

go

select@@servername

selectserverproperty('servername')

IFserverproperty('servername')<>@@servername

BEGIN

DECLARE@server

SYSNAME

SET@server=@@servername

EXECsp_dropserver@server=@server

SET@server=cast(serverproperty('servername')ASSYSNAME)

EXECsp_addserver@server=@server,@local='LOCAL'

END

ELSE

PRINT'实例名与主机名一致,无需修改!'

运行完上面语句,重启SQL Server服务,再运行SSELECT@@servername

12.恢复所有用户数据库

第11步完成后,所有用户数据库都处于置疑状态,因为本地没有数据文件,后续就是恢复所有用户数据库即可

USE[master]

RESTOREDATABASE[test_shrink]

FROMDISK=N'C:\backup\test.bak'WITHFILE=1,

MOVEN'test_shrink'TON'C:\Program

Files\Microsoft SQL

Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test_shrink.mdf',

MOVEN'test_shrink_log'TON'C:\Program

Files\Microsoft SQL

Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test_shrink_log.ldf',NOUNLOAD,STATS=5

GO

--直接对应数据库上右击还原,重定位路径即可。

13.迁移完毕检查

检查原来所有login是否能成功登陆,linked

server、数据库触发器、端点及job等对象是否迁移成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值