暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL Server恢复master数据库

原创 maoxiang123 2023-08-31
326


源端

目标端

服务器名

SERVER1

WIN-QBVGAD1A6T0

数据库版本

Microsoft SQL Server 2008 R2 (SP3-GDR) (KB4057113) - 10.50.6560.0 (X64)

Microsoft SQL Server 2008 R2 (SP3-GDR) (KB4057113) - 10.50.6560.0 (X64)

master、msdb、model数据库路径

D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA

D:\SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA

tempdb数据库路径

D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA

D:\SQLServer\DATA

用户数据库路径

D:\DATA

D:\SQLServer\DATA

--查询源端和目标端数据库版本(小版本要相同才能还原master数据库) select @@version --以下操作均在目标端进行 --cmd下停止数据库服务 net stop mssqlserver --以单用户模式启动数据库 net start mssqlserver /m --使用sqlcmd连接到数据库,WIN-QBVGAD1A6T0为计算机名 sqlcmd -E -S WIN-QBVGAD1A6T0 --还原master数据库 restore database master from disk ='D:\SQLServer\Backup\master.bak' with replace go --由于恢复的master数据库里记载的其他数据库路径和现在的路径不一致,重新启动SQLServer会失败。必须要用跟踪标志3608来启动 net start mssqlserver /f /m /T3608 --再次使用sqlcmd连接数据库 sqlcmd -E -S WIN-QBVGAD1A6T0 --修改MSDB数据库路径 alter database msdb modify file(name=MSDBData,filename='D:\SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MSDBData.mdf') alter database msdb modify file(name=MSDBLog,filename='D:\SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MSDBLog.ldf') --修改MODEL数据库路径 alter database model modify file(name=modeldev,filename='D:\SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\model.mdf') alter database model modify file(name=modellog,filename='D:\SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\modellog.ldf') --修改TEMPDB数据库路径 alter database tempdb modify file(name=tempdev,filename='D:\SQLServer\DATA\tempdb.mdf') alter database tempdb modify file(name=templog,filename='D:\SQLServer\DATA\templog.ldf') go exit --停止数据库服务 net stop mssqlserver --正常启动数据库 net start mssqlserver --停止SQLServerAgent服务,如果是启动状态的话 net stop SQLSERVERAGENT --使用ssms连接到目标端数据库,注意连接用的账号默认数据库最好是master --还原msdb数据库 restore database msdb from disk='D:\SQLServer\Backup\msdb.bak' with replace, move 'MSDBData' to 'D:\SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MSDBData.mdf', move 'MSDBLog' to 'D:\SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MSDBLog.ldf' --还原model数据库 restore database model from disk='D:\SQLServer\Backup\model.bak' with replace, move 'modeldev' to 'D:\SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\model.mdf', move 'modellog' to 'D:\SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\modellog.ldf' --tempdb数据库无需还原 --查询服务器名 select @@servername --修改服务器名,SERVER1是源端服务器名 Sp_dropserver 'SERVER1' Go Sp_addserver 'WIN-QBVGAD1A6T0','local' Go --重启数据库 net stop mssqlserver net start mssqlserver --再次查询服务器名 select @@servername --最后依次还原用户数据库
最后修改时间:2023-08-31 08:49:31
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论