关于无法恢复 master 数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于无法恢复 master 数据库相关的知识,希望对你有一定的参考价值。

我的电脑是服务器,用E城金山毒霸升级后,重启后扫描发现很多病毒清除后重启。重启过种中出现一个蓝色屏幕,蓝色屏幕里是英文字母还有数字,但始终是如此,我就按了主机重启,重启之后发现服务管理器启动不了,查看了事件查看器,显示:17052:无法恢复 master 数据库。正在退出。
我又发现我以前备份的数据库居然也没了。
我希望我的服务管理器启动得了(它显示:已停止),也希望数据没库没被毁。请帮一下,这对我来说,毁了数据库,比毁我生命更可怕。请你们了。求求你们了。
数据库还在,备份的数据库也还在,那么服务管理器怎么启动不了,事件查看器里就是显示:无法恢复 master 数据库。正在退出。怎么使服务管理器连接到数据库。
sql查询分析器打不开,如这提示:无法连接到服务器ZZDTYY,sql server 不存在或访问被拒绝。

--重建 master 数据库

1)关闭SQLServer 2000,然后运行 Rebuildm.exe。
该程序位于 Program Files\Microsoft SQL Server\80\Tools\Binn 目录中。
2)在"重建 Master"对话框中单击"浏览"按钮。
3)在"浏览文件夹"对话框中,选择 SQL Server 2000 光盘上或用于安装 SQL Server 2000 的共享网络目录中的 \Data 文件夹,然后单击"确定"按钮。
4)单击"设置"按钮。在"排序规则设置"对话框中,验证或更改用于 Master 数据库或其它数据库的设置。
最初,显示的是默认排序规则设置,但这些设置有可能与安装期间选择的排序规则不匹配。可以选择与安装期间使用的排序规则相同的设置,也可以选择新的排序规则设置。完成后单击"确定"按钮。
5)在"重建 Master"对话框中单击"重建"按钮以启动进程。
参考技术A 兄弟,这可能要麻烦
我分析是中病毒时间长了,破坏了很多.exe和数据文件导致的.由于杀毒时已经不能把病毒文件分离出来,破坏了很多文件,导致系统的崩溃和数据的丢失.

建议:如果数据真的很重要的话.去专业的数据恢复公司找正规公司的技术人员做恢复.
兄弟,我就这水平了,就这种办法了.你最好别自己乱弄硬盘,如果自己瞎弄.没弄好再去数据恢复公司恢复的话,恐怕很难100%恢复了.慎重啊!!!

你用的是什么数据库啊?
如果你能保证数据都在的话,备分出来,重做一下服务器吧,或者重装数据库的软件.
参考技术B 5.把数据库设成紧急状态:
在SQL查询分析器中逐条执行以下语句
sp_configure 'allow',1
reconfigure with override
update sysdatabases set status=32768 where name='kmjxc'

6.重建日志文件(请将路径换成你的数据文件路径)
其中“D:\MSSQL$PROD\Data\”为存放数据库文件的路径
“KMJXC_log.ldf”为一个新的不存在的文件,在执行以下语句时将自动建立
dbcc rebuild_log('kmjxc','D:\MSSQL$PROD\Data\KMJXC_log.ldf')
7.逐条执行以下语句,取消紧急模式
update sysdatabases set status=0 where name='kmjxc'
restore database kmjxc with recovery
sp_configure 'allow',0
reconfigure with override
8.重起sql server

1、在SQL查询分析器中执行以下语句:(注以下所用的dbname为数据库名称,请客户手工改为自己的数据库名)
use dbname
dbcc checkdb
2、查看查询结果,有很多红色字体显示,最后结果有这样的提示:
CHECKDB 发现了x个分配错误和 x 个一致性错误(在数据库 'dbname' 中)。
一般情况下,引起分配错误的原因是磁盘损坏或突然停电;一致性错误可能是数据库中的表或索引坏,一般都可修复。
3、查看红色字体,并把有错误的数据库表名记录下来,或把索引损坏的表名记录下来。
4、把数据库设置为单用户模式,直接在查询分析器中执行以下语句即可:
EXEC sp_dboption 'dbname', 'single user', 'TRUE'.
5、进入查询分析器执行如下语句:
use kmjxcv3
dbcc checkdb(’dbname’,repair_allow_data_loss)-------修复数据库
dbcc checkdb ('dbname',REPAIR_REBUILD)----------------修复数据库索引
6、再执行:dbcc checkdb,检测数据库,出现结果为:
CHECKDB 发现了0个分配错误和 0个一致性错误(在数据库 'dbname' 中)。
数据库已经修复完毕。
7、取消单用户模式,即直接在查询分析器中执行以下语句即可:
EXEC sp_dboption 'dbname', 'single user','FALSE'
现在可以正常使用了!
参考技术C 建议:如果数据真的很重要的话.去专业的数据恢复公司找正规公司的技术人员做恢复.
兄弟,我就这水平了,就这种办法了.你最好别自己乱弄硬盘,如果自己瞎弄.没弄好再去数据恢复公司恢复的话,恐怕很难100%恢复了.慎重啊!!!

1、在SQL查询分析器中执行以下语句:(注以下所用的dbname为数据库名称,请客户手工改为自己的数据库名)
use dbname
dbcc checkdb
2、查看查询结果,有很多红色字体显示,最后结果有这样的提示:
CHECKDB 发现了x个分配错误和 x 个一致性错误(在数据库 'dbname' 中)。
一般情况下,引起分配错误的原因是磁盘损坏或突然停电;一致性错误可能是数据库中的表或索引坏,一般都可修复。
3、查看红色字体,并把有错误的数据库表名记录下来,或把索引损坏的表名记录下来。
4、把数据库设置为单用户模式,直接在查询分析器中执行以下语句即可:
EXEC sp_dboption 'dbname', 'single user', 'TRUE'.
5、进入查询分析器执行如下语句:
use kmjxcv3
dbcc checkdb(’dbname’,repair_allow_data_loss)-------修复数据库
dbcc checkdb ('dbname',REPAIR_REBUILD)----------------修复数据库索引
6、再执行:dbcc checkdb,检测数据库,出现结果为:
CHECKDB 发现了0个分配错误和 0个一致性错误(在数据库 'dbname' 中)。
数据库已经修复完毕。
7、取消单用户模式,即直接在查询分析器中执行以下语句即可:
EXEC sp_dboption 'dbname', 'single user','FALSE'
现在可以正常使用了!
参考技术D 把数据先拷贝出来,然后做下系统,重新做下服务器,再把数据拷贝回去,连接下就可以了。

正确的话,请加分!

以上是关于关于无法恢复 master 数据库的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER数据库master数据库恢复

记一次线上mysql主从架构异常的恢复经历

北亚数据恢复中心关于硬盘固件区损坏的数据恢复方案书

Consul集群故障恢复

SQL恢复master数据库方法 只有mdf文件的数据库如何恢复

北亚数据恢复关于服务器存储MDisk重建的数据恢复方法的研究