master数据库损坏的解决办法有哪些

SQL Server 2008 master数据库损坏后,SQL SERVER服务启动失败,查看错误日志,你会看到下面错误信息:

2015-10-27 10:15:21.01 spid6s      Starting up database 'master'.
2015-10-27 10:15:23.01 spid6s      错误: 9003,严重性: 20,状态: 1。
2015-10-27 10:15:23.01 spid6s      The log scan number (227:418:1) passed to log scan in database 'master' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.
2015-10-27 10:15:23.01 spid6s      Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.

如果是数据库版本是中文版,你会看到类似下面的错误信息:

传递给数据库 'master' 中的日志扫描操作的日志扫描号 (227:418:1) 无效。此错误可能指示数据损坏,或者日志文件(.ldf)与数据文件(.mdf)不匹配。如果此错误是在复制期间出现的,请重新创建发布。否则,如果该问题导致启动期间出错,请从备份还原。

此时解决master数据库的损坏的方法大致有三种:

1: 从备份还原master数据库

还原master数据库的前提是你的master有做备份。千万谨记,master也必须备份。很多时候,有些人备份时会忽略这些系统数据库。 一般master、msdb备份是必须的。

2: 复制master数据库模板

如果你没有master备份,那么退而求次,选择从安装目录的Templates拷贝master数据库文件到对应的目录。如果你SQL SERVER安装在C盘,没有修改过安装路径,那么可能就是C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates

3:重建master数据库

找到SQL Server 2008的安装介质(插入光盘或拷贝介质到对应目录),在命令窗口将目录更改为setup.exe文件所在目录,然后运行下面命令(具体结合实际情况修改相关参数)

setup.exe
/QUIET
/ACTION=REBUILDDATABASE
/INSTANCENAME=instance_name
/SQLSYSADMINACCOUNTS= accounts
[/SAPWD=password]
[/SQLCOLLATION=collation_name]

当然有很多细节,如果数据库安装后打过补丁,做过升级,可能需要重新应用这些补丁。

以上内容是关于master数据库损坏的解决办法,希望对大家有所帮助。

(0)

相关推荐

  • mysql数据库索引损坏及修复经验分享

    mysql表索引被破坏的问题及解决 下午上班,惊闻我的dedecms的网站出问题了,访问一看,果然全屏报错,检查mysql日志,错误信息为: Table '.\dedecmsv4\dede_archives' is marked as crashed and should be repaired 提示说cms的文章表dede_archives被标记有问题,需要修复.于是赶快恢复历史数据,上网查找原因.最终将问题解决.解决方法如下: 找到mysql的安装目录的bin/myisamchk工具,在命令

  • 如何恢复SQL Server 2000损坏的数据库文件

    SQL Server2000中,如果数据库文件(非系统数据库文件)遇到错误的时候,我们该怎么办.以下是笔者以前的笔记.仅适用于非master,msdb的数据库. 说明如下: 1 建一个测试数据库test(数据库类型为完全)2 建一个表,插入点记录 create table a(c1 varchar(2))goinsert into a values('aa')goinsert into a values('bb')go 3 作完全备份,到文件test_1.bak4 在作一点修改 insert i

  • 修复断电等损坏的SQL 数据库

    如数据库名为:FreeHost 首先是设置为单用户模式,然后修复,最后是恢复多用户模式. ALTER DATABASE [FreeHost] SET SINGLE_USER GO DBCC CHECKDB('FreeHost',repair_allow_data_loss) WITH TABLOCK GO ALTER DATABASE [FreeHost] SET MULTI_USER GO --CHECKDB 有3个参数: --REPAIR_ALLOW_DATA_LOSS -- 执行由 REP

  • 快速修复损坏的MySQL数据库

    1.myisamchk 使用 myisamchk 必须暂时停止 MySQL 服务器.例如,我们要检修 discuz 数据库.执行以下操作: # service mysql stop (停止 MySQL ): # myisamchk -r /数据库文件的绝对路径/*MYI # service mysql start myisamchk 会自动检查并修复数据表中的索引错误. 2.mysqlcheck 使用 mysqlcheck 无需停止 MySQL ,可以进行热修复.操作步骤如下: # mysqlc

  • MySQL数据库INNODB表损坏修复处理过程分享

    突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了.innodb表损坏不能通过repair table 等修复myisam的命令操作.现在记录下解决过程,下次遇到就不会这么手忙脚乱了. 处理过程: 一遇到报警之后,直接打开错误日志,里面的信息: InnoDB: Database page corruption on disk or a failed InnoDB: file read of page 30506. InnoDB: You may have t

  • master数据库损坏的解决办法有哪些

    SQL Server 2008 master数据库损坏后,SQL SERVER服务启动失败,查看错误日志,你会看到下面错误信息: 2015-10-27 10:15:21.01 spid6s      Starting up database 'master'. 2015-10-27 10:15:23.01 spid6s      错误: 9003,严重性: 20,状态: 1. 2015-10-27 10:15:23.01 spid6s      The log scan number (227:

  • oracle数据库ORA-01196错误解决办法分享

    上一篇文章中我们了解到oracle常见故障类别及规划解析,接下来,我们看看oracle数据库ORA-01196错误解决的相关内容,具体如下: 问题现象 在使用shutdown abort停DataGuard备库后,备库不能open,报ORA-01196错误. 发现一备库不能应用日志,查看备库日志没发现报错,怀疑是备库应用日志服务停止,于是尝试重启备库: 可能因为备库是读业务比较繁忙,在shutdown immediate关闭备库时等时间过长,于是使用了shutdown abort命令: 但后面在

  • Linux 初始化MySQL 数据库报错解决办法

     Linux 初始化MySQL 数据库报错解决办法 在Linux   CentOS 5 中安装完MySQL (server.devel)之后进行初始化 service mysqld  start ,执行命令报错: Neither host 'localhost.localdomain' nor 'localhost' could be looked up with /usr/bin/resolveip Please configure the 'hostname' command to retu

  • mybatis-plus实体类中出现非数据库映射字段解决办法

    在使用mybatis 或者其它mybatis的二次开发框架时(例如mybatis-plus),有时候数据库中的字段和实体类中的字段可能不一致.例如数据库中只有3个字段,而实体类中除了数据库中对应映射的三个字段以外还有多余的其余字段,例如实体类中有5个字段.那么运行就会报错 如果需要在mybatis映射实体类中加入非数据库映射字段.那么可以使用@TableField(exist = false)进行标识对应字段不属于数据库的映射字段即可. 当然可以点击进入@TableField(exist = f

  • MyEclipse连接MySQL数据库报错解决办法

    我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助. 一般MySQL连接不上,可能有两大原因:1.MyEclipse配置错误 2.MySQL配置不当. 一.我们一般的连接步骤如下: 1.在MyEclipse中连接MySQL数据库:依次点击window-->show view-->other-->MyEclipse Database-->DB Browser 图一:

  • 关于系统重装后Oracle数据库完全恢复的解决办法

    昨日,服务器一磁盘意外故障,c盘数据丢失,重新安装操作系统后,完全还原意外前的数据方法: 完全按照原配置(安装路径.实例名.用户名.密码)重新安装oracle后,将之前留下的oracle文件夹完全拷贝覆盖当前新安装的oracle,启动数据库管理器,数据库完好如初,数据毫发未损,包括之前的job都完全恢复,而且系统代码配置也完全不需要修改,非常省事.

  • SQL 2005 ERROR:3145 解决办法(备份集中的数据库备份与现有的数据库不同)

    出现错误3145备份集中的数据库备份与现有的数据库不同 网上解决办法不少,测试下来都是半吊子,错误还是存在 摸索中,解决了 1.新建一个与现有数据库重名的数据库 2.在查询窗口运行如下语句: 复制代码 代码如下: use master restore database AdventureWorks from disk = 'E:\databasebackup\AdventureWorks.bak' with replace, MOVE N'AdventureWorks_Data' TO N'C:

  • Oracle数据库ORA-12560错误问题的解决办法

    官网中关于ORA-12560的解释: ORA-12560: TNS:protocol adapter error Cause: A generic protocol adapter error occurred. Action: Check addresses used for proper protocol specification. Before reporting this error, look at the error stack and check for lower level

  • 当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法

    最近同事反映,在使用pt-heartbeat监控主从复制延迟的过程中,如果master down掉了,则pt-heartbeat则会连接失败,但会不断重试. 重试本无可厚非,毕竟从使用者的角度来说,希望pt-heartbeat能不断重试,直到重新连接上数据库.但是,他们发现,不断的重试会带来内存的缓慢增长. 重现 环境: pt-heartbeat v2.2.19,MySQL社区版 v5.6.31,Perl v5.10.1,RHEL 6.7,内存500M 为了避免数据库启停对pt-heartbea

  • mssql server 数据库附加不上解决办法分享

    错误15105,从网上找了一些解决方案,一般都是说文件的权限不足的问题, 当然附加的时候必须是有数据库附加权限才可以操作的. 解决办法1:给相应的MDF文件给Full Control的权限,如果不知道是什么用户可以去Sql Server的配置中心去找 但是我遇到这个用上述方法就不可以. 解决方法2:换个用户试试,我原数据库是用sa登陆的,我试着用sa登陆一下,附加成功了!~ 如果反复的用sa登陆却登陆失败,可能是没有开权限. 权限可以在登陆用户的选项中设置,允许登陆即可. 验证模式则可以在服务器

随机推荐