master 数据库还原新问题
--1.版本问题
问题描述:
在新服务器上还原老服务器的master数据库:
RESTOREDATABASEMASTER
FROMDISK='C:/TMP/SQLSYS20050516.BAK'
WITHFILE=1
出现以下错误:
服务器:消息3168,级别16,状态1,行1
无法还原设备C:/TMP/SQLSYS20050516.BAK上的系统数据库备份,因为创建该数据库的服务器版本(134218488)与此服务器的版本(134217922)不同。
服务器:消息3013,级别16,状态1,行1
RESTOREDATABASE操作异常终止。
问题原因:
必须保证新服务器的版本和要还原的master数据库的版本完全一致,包括补丁的版本
--2.系统数据库目录问题
问题描述:
还原过程是正常结束的,系统提示:
已成功地还原了master数据库。正在关闭SQLServer。
SQLServer正在终止此进程。
然后启动MSSQLSERVER服务,系统提示:在本地计算机无法启动MSSQLSERVER服务。服务并未返回错误。这可能是一个WINDOWS内部错误或服务内部错误。
问题分析:
不能启动有很多种可能,由于还原的提示是成功的,所以估计数据库备份没有什么问题,应该从启动过程着手去分析问题。下面逐步验证猜想和查找问题原因
--a.验证master备份文件的正确性
将master备份文件还原为普通数据为,结果一切正常:
RESTOREDATABASEa
FROMDISK='C:/TMP/SQLSYS20050516.BAK'
WITHFILE=1,
MOVE'master'TO'c:/a.mdf',
MOVE'mastlog'TO'c:/a.ldf',
REPLACE
GO
USEa
GO
EXECsp_msforeachtable'select*from?'
GO
DROPDATABASEa
--b.检查SQLServer服务的启动信息
在命令提示符下执行:
sqlservr-c-m
收到的启动信息中,与不能启动SQLServer服务相关的错误信息如下:
2005-05-2614:51:47.11spid5启动数据库“model”。
2005-05-2614:51:47.11spid5udopen:创建/打开物理设备C:/ProgramFiles/MicrosoftSQLServer/MSSQL$ERP/data/model.mdf时发生操作系统错误3(系统找不到指定的路径。)。
2005-05-2614:51:47.16spid5FCB::Openfailed:未能为虚拟设备号(VDN)1打开设备C:/ProgramFiles/MicrosoftSQLServer/MSSQL$ERP/data/model.mdf。
可以看出启动时是按老服务器的数据库安装路径来打开数据库,而新服务器的数据库安装路径与老服务器是不同的,这就是master还原后不能启动sqlserver的原因
--c.解决方法分析
model数据库的数据文件信息保存在master数据库的系统表sysdatabases和sysdevices中,只需要想办法修改这两个表中的目录信息,使其符合新的服务器目录要求即可。
--d.解决示例
--===========================================================
--1.还原master数据库的备份为普通数据库
--===========================================================
RESTOREDATABASEa
FROMDISK='C:/TMP/SQLSYS20050516.BAK'
WITHFILE=1,
MOVE'master'TO'c:/a.mdf',
MOVE'mastlog'TO'c:/a.ldf',
REPLACE
GO
--===========================================================
--2.修改sysdatabases和sysdevices表各系统数据库的目录为新服务器的目录
--我的电脑中,sql数据库目录(d:/ProgramFiles/MicrosoftSQLServer/MSSQL/data--如果有需要的话,其他系统数据库也做类似的修改(修改前,可以查询这两个表中的值,以决定如何修改)
--===========================================================
EXECsp_configure'allowupdates',1
RECONFIGUREWITHOVERRIDE
GO
UPDATEa.dbo.sysdatabasesSET
filename='d:/ProgramFiles/MicrosoftSQLServer/MSSQL/data/model.mdf'
WHERENAME='model'
UPDATEa.dbo.sysdevicesSET
phyname='d:/ProgramFiles/MicrosoftSQLServer/MSSQL/data/modellog.ldf'
WHERENAME='modellog'
GO
EXECsp_configure'allowupdates',0
RECONFIGUREWITHOVERRIDE
GO
--===========================================================
--3.份修改后的数据库
--===========================================================
BACKUPDATABASEa
TODISK='C:/TMP/SQLSYS20050516.BAK'
WITHINIT
GO
--===========================================================
--4.在新服务器上,以单用户模式启动sql,然后执行类似下面的恢复语句以恢复master数据库
--===========================================================
RESTOREDATABASEMASTER
FROMDISK='C:/TMP/SQLSYS20050516.BAK'
WITHFILE=1
CSDN社区帖子地址
分享到:
相关推荐
恢复master数据库时错误“必须以单用户模式使用restore database”处理办法
当MS SQL 2000 数据库遭到破毁时,如何恢复master数据库
sql_2005Master数据库重建过程。
本存储过程存放在Master数据库中,作用删除所有使用此数据库的进程,用于还原数据库操作, 使用方式是在master数据库中运行一下此数据库的创建,然后再master数据库中执行此数据库即可。 eg:EXEC KILLSPID 'HELLO...
本文将为大家介绍在SQL Server2000中恢复Master数据库的两种方法。
主要为大家详细介绍了SQL Server通过重建方式还原master数据库的相关资料,需要的朋友可以参考下
由于sqlserver 2008 master数据库损坏导致sqlserver服务启动失败,本文给大家master数据库损坏的解决办法,感兴趣的朋友一起参考下
1、还原Master数据库 如果系统配置丢失或Master出现问题,可以进入单用户模式进行还原;如果出现下列情况,必须重新生成损坏的 master 数据库:A. master 数据库的当前备份不可用。B. 存在 master 数据库备份,但...
sql下master数据库分析,了解下master数据库主要是做什么用的
DBCHM-master_数据库文档生成工具,支持SqlServerMySQLOraclePostgreSQLDB2SQLite数据库
Spring Cloud 实战项目 刘兆明 paascloud数据库脚本 github地址:https://github.com/paascloud/paascloud-master
如果这是非 Microsoft 服务,请与服务厂商联系,并参考特定服务错误代码 3417”,一般都是因为数据库目录下的Master数据库坏了,解决方法直接找个正常的SQL,找到SQL安装目录下面的Master数据库覆盖即可启动数据库。...
命题教师:北京邮电大学世纪学院计算机科学与技术系段爱玲一、单项选择题(总分75) ...A: master 数据库 B: model 数据库 C: tempdb 数据库 D: pubs 数据库序号:533 难度:1 考查点:SQL Server 数据库的管理
首先迁移master数据库,master数据库是整个SQL Server实例的核心,所有的设置都存放在master数据库里,如果master数据库出现问 题,整个实例都将瘫痪。首先打开SQL Server Configuration Manager,在左边的列表框中...
数据库-Mongodb的master-slave模式与master-master模式实验.rar
master数据库中包含了以下的⼀些内容: 所有⽤户的登录信息 ⽤户所在的组 所有系统的配置选项 服务器中本地数据库的名称和信息 SQL Server的初始化⽅式等 master数据库保存系统表⽤于系统的总体控制。如在新建⼀个...
查询连接数据库时间最多和最长的在master运行查询连接数据库时间最多和最长的在master运行查询连接数据库时间最多和最长的在master运行查询连接数据库时间最多和最长的在master运行查询连接数据库时间最多和最长的在...
其中master数据库是重要的数据库,存储的是SQL Server系统的所有系统级别信息,包括磁盘空间,文件分配和使用、系统级的配置参数。同时还记录了所有的登录帐户信息、初始化信息和其他数据库信息。一旦master数据库...