




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MSDB置疑修复方法一:你可以采用以下的语句进行修复: USE MASTERGOSP_CONFIGURE ALLOW UPDATES,1 RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME=msdbGosp_dboption msdb, single user, trueGoDBCC CHECKDB(msdb) Goupdate sysdatabases set status =28 where name=msdbGosp_configure allow updates, 0 reconfigure with overrideGo sp_dboption msdb, single user, falseGo方法二:MSDB数据库解决过程难点:由于MSDB数据库不能删除,将其文件拷出来,再次附加数据库,但新的附加数据库不能叫MSDB,也就是不能同名,遇到了困难。1:先停止整个数据库,将该数据库的文件msdbdata.mdf和msdblog.ldf拷贝粘贴出来到另一个目录下。2:将以上的文件再拷贝到另一个目录下,也就是说复制两次。3:选择 数据库右击鼠标 -所有任务-附加数据库 将复制出的一个备份文件附加上去,其中,数据库名称叫MSDB1,用户是SA或ADMINISTRATOR。4:将MSDB1数据库备份,备份成一个文件,当时我的叫MSDB。BAK。5:选择置疑的数据库MSDB,选择恢复数据库,将刚才备份出来的数据库强行恢复到MSDB。6:问题解决,MSDB库又能正常使用。完成后赶快将数据库再次备份一次。呵呵。另附:SQL SERVER数据库置疑后恢复步骤1 恢复步骤: a.将smlog_log.ldf文件备份到其它目录下; b.将源目录下的smlog_log.ldf文件改名为smlog_log_bak.ldf; c.执行以下语句修改数据库的状态: use Master go update sysdatabases set status=32768 where name=数据库名称 -修改状态 go shutdown with nowait -停止数据库服务器 go d.退出SQL并在命令行模式中通过下面的代码重新启动SQL: sqlservr -c -T3608 -T4022 -安全模式启动SQL SERVER e.在查询分析器中执行以下语句来查看刚刚修改过状态的数据库状态: select Name,Status from sysdatabases where Name= 数据库名称 f.执行以下代码新建日志文件: dbcc traceon(3604) -跟踪 dbcc rebuild_log(数据库名称,日志文件名称) -文件名要有全路径和扩展名 g.将数据库置回正常状态: update sysdatabases set status=0 where name=数据库名称 h.重新启动数据库后执行以下语句检查数据库: DBCC CHECKDB -如果执行完有错误用以下语句修复 i.要修复数据库必需将数据库改为单用户模式: Exce sp_dboption 数据库名称,single user,true(false恢复多用户) j.执行以下语句修复数据库: DBCC CHECKDB(数据库名称,REPAIR_ALLOW_DATA_LOSS) REPAIR_ALLOW_DATA_LOSS:是比较高级的修复方式 REPAIR_FAST:是简单快速的修复方式 相似问题:系统重装,忘记了备份SQL,然后又通过数据恢复工具找回了mcdb_data.mdf 和mcdb_Log.LDF,在企业管理器上用附加数据库时提示错误9004,日志错误,在网上找了诸多方法,也试过建个同名空数据库然后停止SQL SERVER然后覆盖掉MDF。这是详细步骤.1. 先建一个与你要恢复的数据库名称一样的数据库。 2.停止sql server,把你的数据库替换这个数据库。 3.重启sql server,把数据库设置为紧急状态。 sp_configure allow,1 reconfigure with overirde update sysdatabases set status=32768 where name=yourdata 4.重建日志文件。 dbcc rebuild_log(yourdata,your data pathnewdata_log.ldf) 5.取消紧急模式。 update sysdatabases set status=0 where name=yourdata restore sysdatabases yourdata with recovery sp_configure allow,0 reconfigure with override 6.重起sql server 7.ok22:09:21 |只看该作者 |倒序浏览 SQL数据库置疑解决方案一、数据库置疑产生的原因1、SQL Server所在分区空间是否够?数据库文件大小是否达到最大文件限制?FAT32的格式只支持4G以内的文件。2、数据库文件损坏或被非正常删除时出现这种情况。3、病毒防火墙的扫描也会引起数据库置疑。4、当SQL Server启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文件被其他程序占用,或者遗失,数据库将会被标记为置疑。5、电脑非法关机也会造成数据库置疑。6、电脑磁盘有坏道有可能造成数据库置疑。二、数据库置疑的预防1、数据库存放的盘符,空间是否够大,经常检查盘符的空间。2、数据库存放的盘符的格式设置为NTFS格式。3、进行病毒清除时,尽量把SQL服务停掉,再进行检查。4、尽量减少非正常关机。5、建议客户购买后备电源。6、给客户实施软件之后一定要做好自动备份。7、建议客户每隔一定时间手动备份一次。三、数据库置疑的修复1、正常的备份、SQL数据库恢复方式 正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。 卸下数据库的命令:Sp_detach_db 数据库名 连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db s_attach_db dbname = dbname, filename1 = filename_n ,.16 sp_attach_single_file_db dbname = dbname, physname = physical_name 使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。 例子: 假设数据库为pdm,其数据文件为pdm_data.mdf,日志文件为pdm_log.ldf。下面我们讨论一下如何备份、恢复该数据库。 卸下数据库:sp_detach_db pdm 连接数据库:sp_attach_db pdm,C:Program FilesMicrosoft SQL ServerMSSQLDatapdm_data.mdf,C:Program FilesMicrosoft SQL ServerMSSQLDatapdm_log.ldf sp_attach_single_file_db pdm,C:Program FilesMicrosoft SQL ServerMSSQLDatapdm_data.mdf 2、只有mdf文件的恢复技术 由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。 如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db 可以恢复数据库,但是会出现类似下面的提示信息 设备激活错误。物理文件名 C:Program FilesMicrosoft SQL ServerMSSQLdatapdm_Log.LDF 可能有误。 已创建名为 C:Program FilesMicrosoft SQL ServerMSSQLDatapdm_log.LDF 的新日志文件。但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上述办法就行不通了。你也许会得到类似下面的错误信息 服务器: 消息 1813,级别 16,状态 2,行 1 未能打开新数据库 pdm。CREATE DATABASE 将终止。 设备激活错误。物理文件名 d:pdm_log.LDF 可能有误。 怎么办呢?别着急,下面我们举例说明恢复办法。现在我从其他机器上拷贝回来了数据库文件pdm_Data.MDF到本计算机上,存放到了E盘的一个文件夹里 A我们使用SQL Server企业管理器建立一个供恢复使用的数据库pdm,存放在E盘(不要与拷贝回来的数据库放到一个文件夹就行)。 2011-11-22 22:00:23 上传下载附件 (25.95 KB) B停掉数据库服务器。2011-11-22 22:00:24 上传下载附件 (33.47 KB) 2011-11-22 22:00:25 上传下载附件 (28.62 KB) C将刚才生成的数据库的日志文件pdm_log.ldf删除,用要恢复的数据库 mdf文件覆盖刚才生成的数据库数据文件pdm_data.mdf。 2011-11-22 22:00:25 上传下载附件 (21.97 KB) 2011-11-22 22:00:26 上传下载附件 (15.86 KB) D启动数据库服务器。此时会看到数据库pdm的状态为“置疑”。这时候不 能对此数据库进行任何操作。 2011-11-22 22:00:26 上传下载附件 (40.04 KB) E设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。2011-11-22 22:00:27 上传下载附件 (44.77 KB) 2011-11-22 22:00:28 上传下载附件 (39.61 KB) 也可以用SQL查询分析器执行如下语句来实现。 use master go sp_configure allow updates,1 go reconfigure with override go 2011-11-22 22:00:28 上传下载附件 (40.88 KB) F设置pdm为紧急修复模式 ,运行SQL查询分析器执行如下语句来实 现。2011-11-22 22:00:29 上传下载附件 (34.47 KB) update sysdatabases set status=-32768 where dbid=DB_ID(pdm) 2011-11-22 22:00:30 上传下载附件 (31.17 KB) 此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读 置疑脱机紧急模式”可以看到数据库里面的表,但是仅仅有系统表 2011-11-22 22:00:31 上传下载附件 (31.9 KB) G下面执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log(pdm,E:pdm_log.ldf) 2011-11-22 22:00:31 上传下载附件 (49.06 KB) 执行过程中,如果遇到下列提示信息: 服务器: 消息 5030,级别 16,状态 1,行 1 未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了pdm库的系统表,那么退出SQL Server Enterprise Manager就可以了。 正确执行完成的提示应该类似于: 警告: 数据库 pdm 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。 2011-11-22 22:00:32 上传下载附件 (30.86 KB) H验证数据库一致性(数据库较大时会耗费一些时间,此步可省略) dbcc checkdb(pdm) 一般执行结果如下: CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 pdm 中)。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。I设置数据库为正常状态 sp_dboption pdm,dbo use only,false 2011-11-22 22:00:33 上传下载附件 (32.38 KB) 如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。 2011-11-22 22:00:33 上传下载附件 (32.01 KB) J最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成 sp_configure allow updates,0 go reconfigure with override go会出现以下信息,此时就可以正常使用数据库了。2011-11-22 22:00:34 上传下载附件 (46.72 KB) 18.jpg (33.04 KB, 下载次数: 93) 2011-11-22 22:00:23 上传下载次数: 93SQL数据库置疑,解决过程 复制链接 heyer heyer 当前离线 性别保密推广0 魅力12 个人主页金币14 威望12 精华0主题6帖子15积分98阅读权限10在线时间3 小时最后登录2011-12-16注册时间2009-12-6UID184338IP卡 狗仔卡 正式员工正式员工, 积分 98, 距离下一级还需 402 积分魅力12 推广0 金币14 威望12 帖子15积分98阅读权限10UID184338 串个门 加好友 打招呼 发消息电梯直达 1# 发表于 2010-7-2 14:06:49 |只看该作者 |倒序浏览 问题描述: sqlserver数据库被质疑 产生原因: 数据库质疑 解决方法: :请根据实际情况修改db_name1、在SQL查询分析器中执行以下命令,以允许更新系统表:use mastergosp_configure allow updates,1reconfigure with overridego2 将这个数据库置为紧急模式:update sysdatabases set status = 32768 where name = db_namego3. 使用DBCC CHECKDB命令检查数据库中的错误:DBCC CHECKDB(db_name)GO4. 先将数据库置为单用户模式,再尝试对其进行修复:sp_dboption db_name,single user,trueDBCC CHECKDB(db_name, REPAIR_ALLOW_DATA_LOSS)GO如果在执行DBCC CHECKDB(db_name, REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQL Server服务,然后继续尝试。5、若成功修复了数据库中的错误:重新执行DBCC CHECKDB(db_name)命令,确认数据库中已没有错误存在。清除数据库的置疑状态:sp_resetstatus db_name清除数据库的单用户模式状态:sp_dboption db_name,single user,false重新启动SQL Server服务,如果一切正常的话,则数据库已经成功恢复。6、修改数据库的标志update sysdatabases set status=28 where name =db_name( db_name表示相应的数据库名字)数据库置疑操作过程(转) 复制链接 naojin naojin 当前离线 性别男真实姓名帝国战士推广54 魅力2628 个人主页金币86118 威望9707 精华18主题75帖子1882积分118561阅读权限70在线时间1593 小时最后登录2012-8-31注册时间2008-12-16UID125567IP卡 狗仔卡 高级会计师高级会计师, 积分 118561, 距离下一级还需 881439 积分魅力2628 推广54 真实姓名帝国战士金币86118 威望9707 帖子1882积分118561阅读权限70UID125567 串个门 加好友 打招呼 发消息电梯直达 1# 发表于 2009-10-30 16:56:12 |只看该作者 |倒序浏览 下列文件名均为假设,实际过程中需要对应替换-1 恢复步骤:-a.将smlog_log.ldf文件备份到其它目录下;-b.将源目录下的smlog_log.ldf文件改名为smlog_log_bak.ldf;-c.执行以下语句修改数据库的状态:use Mastergoupdate sysdatabases set status=32768 where name=数据库名称 -修改状态,設為緊急狀態goshutdown with nowait -停止数据库服务器go-d.退出SQL并在(COMMAND)命令行模式中通过下面的代码重新启动SQL:sqlservr -c -T3608 -T4022 -安全模式启动SQL SERVER-e.在查询分析器中执行以下语句来查看刚刚修改过状态的数据库状态:select Name,Status from sysdatabases where Name=数据库名稱-f.执行以下代码新建日志文件:dbcc traceon(3604)-跟踪dbcc rebuild_log(数据库名称,日志文件全路徑) -文件名要有全路径和扩展名-dbcc rebuild_log(prs_msc,d:mscsqlmssqldataprs_msc_log.ldf-g.将数据库置回正常状态:update sysdatabases set status=0 where name=数据库名称-h.重新启动数据库后执行以下语句检查数据库:DBCC CHECKDB -如果执行完有错误用以下语句修复-i.要修复数据库必需将数据库改为单用户模式:Exce sp_dboption 数据库名称,single user,true-(false恢复多用户)-j.执行以下语句修复数据库:DBCC CHECKDB(数据库名称,REPAIR_ALLOW_DATA_LOSS)REPAIR_ALLOW_DATA_LOSS:是比较高级的修复方式REPAIR_FAST:是简单快速的修复方式/*處理状态就为置疑的數據庫备份数据文件,然后按下面的步骤处理:1.新建一个同名的数据库(数据文件与原来的要一致)2.再停掉sql server(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sql server5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了.*/USE MASTERGOSP_CONFIGURE ALLOW UPDATES,1GORECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME=置疑的数据库名Gosp_dboption 置疑的数据库名,single user,trueGoDBCC CHECKDB(置疑的数据库名) Goupdate sysdatabases set status=28 where name=置疑的数据库名Gosp_configure allow updates,0GOreconfigure with overrideGo sp_dboption 置疑的数据库名, single user,falseGo/*只有mdf文件的恢复技术由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库,但是会出现类似下面的提示信息设备激活错误。物理文件名 C:Program FilesMicrosoft SQL ServerMSSQLdatatest_Log.LDF 可能有误。已创建名为 C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.LDF 的新日志文件。但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上述办法就行不通了。你也许会得到类似下面的错误信息服务器: 消息 1813,级别 16,状态 2,行 1未能打开新数据库 test。CREATE DATABASE 将终止。设备激活错误。物理文件名 d:test_log.LDF 可能有误。怎么办呢?别着急,下面我们举例说明恢复办法。*/-A我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。-B停掉数据库服务器。-C将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。-D启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。-E设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右-键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。use mastergosp_configure allow updates,1goreconfigure with overridego-F设置test为紧急修复模式-在查询管理器里设置如下命令:update sysdatabases set status=-32768 where dbid=DB_ID(test)-此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读置疑脱机紧急模式”可以看到数据库里面的表,但是仅仅有系统表-G下面执行真正的恢复操作,重建数据库日志文件dbcc rebuild_log(test,C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.ldf)/*执行过程中,如果遇到下列提示信息:服务器: 消息 5030,级别 16,状态 1,行 1未能排它地锁定数据库以执行该操作。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。正确执行完成的提示应该类似于:警告: 数据库 test 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。*/-H验证数据库一致性(可省略)dbcc checkdb(test)/*一般执行结果如下:CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 test 中)。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。*/-I设置数据库为正常状态sp_dboption test,dbo use only,false-如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。-J最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成sp_configure allow updates,0goreconfigure with overridego-日志文件出现问题(丢失或文件格式非法),怎么使数据库恢复正常-如果用sp_attach_single_file TEST,C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.mdf失败则需要用下列步骤完成-1.将置疑的数据库分离,将mdf文件移走或改名!sp_detach_db TEST-2.重新在原来目录下建立同名的数据库TEST-3.停掉SQL Service,将先前的mdf文件拷贝回来覆盖(或改名),删除原来的log文件(或改名)-4.启动SQL Service(否则下面的语句没办法运行)-5.将数据库设成紧急模式(status=32768)sp_configure allow
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025跟单员考试基础理论:合同与订单的生效要素
- 《2025舞蹈培训机构教练聘请合同》
- 2025年短期外债借款合同范本
- 公猪采购合同范本
- 低价出租摊位合同范本
- 电缆施工总价合同范本
- 简单燃气工程合同范本
- 土地托管协议合同范本
- 有房子出租合同范本
- 特级保姆服务合同范本
- 体检中心沟通技巧课件
- 工作交接表模板
- 佛吉亚卓越体系知识手册
- 3.2 歌曲《牧童之歌》课件(9张)
- 可穿戴设备可靠性优化技术
- 小升初分班考必刷题(试题)-2023-2024学年六年级下册数学人教版
- 数据治理与数据中台建设方案
- NBT 33018-2015 电动汽车充换电设施供电系统技术规范
- 《科技英语翻译方法》课件
- DL-T5455-2012火力发电厂热工电源及气源系统设计技术规程
- 公司自行车管理制度
评论
0/150
提交评论