对于事务 ID (0:233626),无法在数据库 'master' (数据库 ID 为 1)的页 (1:86) 上重做日志记录 (5053:264:5)。页: LSN = (5048:200:11),类型 = 1。日志: 操作码 = 4,上下文 2,上一页的 LSN: (5053:224:5)。请从数据库备份还原该数据库,或者修复它。
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
前几天因为处理T3的事儿,要装SQL2005,因为“master”数据库被损坏的事儿,可是咋也不能修复,如果你也整好看到这篇文章,那恭喜你,别浪费感情了,抓紧安装一个一样的系统,一个一样的sql,替换master数据即可,其中,别无他法;那就来说说这次的事儿吧;先啦看看错误;
说说“master”数据库
master库对于SQLServer来说,是很重要的系统数据库,保存着所有Sqlserver的用户信息、数据库信息等,当数据库崩溃时,master数据库的恢复成功与否起着重要的作用。这就跟Oracle的System表空间一样,非常的重要。
“master”数据库损坏解决方案
网上提供了很多解决方案,有的说将服务的账号改成本地账号、sql server 安装目录把“压缩以释放空间”选项勾选去掉都没解决问题,根据N种方式来解决,所有都是白扯,最后的最后最后,还是通过将另一个正常启动的数据库的master库的mdf和ldf文件拷贝覆盖掉就正常了,这证实了master数据库坏了。数据库安装路径根据自己数据库的版本和系统定。 查询自己数据库的版本再此 微软SQL Server对应内部数据库版本号(515、539、611、612、661、665、706、782、869)(sql版本号查询)
“master”数据库恢复方法:
备份数据前期准备:
(1)在备用机准备好和生产机器一样的sql2005数据库环境(注意数据库版本要一致)
(2)准备好备份恢复所需的数据,将生产机bak文件全部copy到备用机其他备份文件夹下即可;
1、停止数据库服务。
2、将需要恢复的数据库文件复制到另外的位置。
3、最后,在Sql Server Configuration Manager中启动SQL Server服务成功。启动数据库服务。
我这里提供两个sql2005数据库的master库,一个是X68一个是X64 到时候自主选择即可;
Microsoft SQL Server Management Studio 9.00.1399.00
Microsoft Analysis Services 客户端工具 2005.090.1399.00
Microsoft 数据访问组件 (MDAC) 6.1.7601.17514 (win7sp1_rtm.101119-1850)
Microsoft MSXML 3.0 6.0
Microsoft Internet Explorer 9.11.9600.19377
Microsoft .NET Framework 2.0.50727.8806
操作系统 6.1.7601
延伸阅读:(看到一个略微写的有效的,就截图了一下)
其他杂项延伸阅读:
在用SQL Server 2005进行一项测试:如何一次删除所有用户数据库时,没注意到当前数据库是master,结果,把这里的一些表都给删除了,从而,数据库引擎可以正常使用,但如果右击任一数据库,都会出现查找master里的一个表的操作(对象名 master.dbo.spt_values' 无效。 (Microsoft SQL Server,错误: 208)),而这个表被我删除了,所以就运行不成功了,想压缩数据库还行用SQL语句,很麻烦。
在网上找的大都是SQL Server 2000 master数据库重建帖子,关于SQL Server 2005 重建master的帖子基本上都是只有提问的,没有回答的,于是在国外网站上搜索了下,发现一个,但也很不好使,后来顺着他的关键词:rebuid sql Server 2005 master找到了微软的网站,没想到微软早就解决这问题了,按他说的做了一遍,OK,成功,在写这文章时又把他的MSDN地址改了下,看看有没有中文版的,没想到还真有,可怜的搜索引擎呀,这么好的东西我怎么在baidu及google里都找不到呢。
虽然问题是解决了,不过还有一个问题,就是:重建后相当于数据库重新安装了一次,所有的登录用户,数据库都没了(听说数据都在master里,master被重建了里面的数据库相关信息当然没了。数据库文件还在,没被删除。),所以重建或者说修复好后,你还得把每个数据库都附加进来,并建相关用户。
微软官方解决方法:
start /wait <CD or DVD Drive>\setup.exe /qn INSTANCENAME=<InstanceName> REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=<NewStrongPassword>
举例:
start /wait L:\Servers\setup.exe /qn INSTANCENAME="MSSQLSERVER" REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=www_yongfa365_com
在某些偶然的情况下,会引起SQL Server 2005数据库日志文件的损坏,比如:硬件故障、计算机非正常重启或关机。
当SQL Server 2005数据库日志文件损坏时,可能会出现以下情况:
1、在SQL Server Management Studio中显示数据库处于置疑(suspect)状态。
2、事件日志可能会出现如下错误信息:
Could not redo log record (21737:686:9), for transaction ID (0:2334886), on page (1:37527), database 'Test' (database ID 15). Page: LSN = (21735:299:5), type = 2. Log: OpCode = 3, context 19, PrevPageLSN: (21737:615:1). Restore from a backup of the database, or repair the database.
During redoing of a logged operation in database 'Test', an error occurred at log record ID (76116:286:2). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.
3、无法分离数据库
4、用CREATE DATABASE DBName ON ( FILENAME = N'DBFile' ) FOR ATTACH_REBUILD_LOG附加数据库时出现提示:The log cannot be rebuilt because the database was not cleanly shut down.
问题:
前几天生产工控机上启动SQL Server 的时候出现“Windows 不能在 本地计算机 启动 SQL Server (MSSQLSERVER)。有关更多信息,查阅系统事件日志。如果这是非 Microsoft 服务,请与服务厂商联系,并参考特定服务错误代码 3417”
恢复方法:
1、停止数据库服务。
2、将需要恢复的数据库文件复制到另外的位置。
3、启动数据库服务。
4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL Server Management Studio中删除要恢复的数据库。
5、新建同名的数据库(数据库文件名也要相同)。
6、停止数据库服务。
7、用第2步中备份的.mdf文件覆盖新数据库的同名文件。
8、启动数据库服务。
9、运行alter database dbname set emergency,将数据库设置为emergency mode
10、运行下面的命令就可以恢复数据库:
最后,在Sql Server Configuration Manager中启动SQL Server服务成功。
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!