数据库由mdf文件恢复-数据库质疑
数据库质疑_BCP修复方法
把查询的结果集全部复制下来,新建一个文本文件取名为“导入.bat”把结果集复制进去并保存,把该文件存放在d盘目录下。
3.运行“导出.bat”(注意:该文件双击即可运行),数据库中的数据会倒出到TESTDB目录中。
4.删除原来的问题数据库,重新建立新的数据库。
5.在查询分析器中选择新建的数据库运行:
在进行操作前,请先备份数据库(备份mdf和log文件)
操作步骤:
1.首先在D盘建立TESTDB目录,并在查询分析器中选择思迅数据库运行:
use hbyjtv6 ---(用问题数据库名代替hbposv6)
select 'bcp 问题数据库..'+name + ' out '+'d:\testdb\'+name+'.txt -c -Usa -S 服务器名小写 -P 数据库SA密码' FROM SYSOBJECTS WHERE TYPE = 'U'
select 'delete '+name FROM SYSOBJECTS WHERE TYPE = 'U'
然后把返回的结果集复制,新建一个查询分析器窗口,把复制的内容粘贴下运行!
6.最后运行“导入.bat” ,倒入成功后就恢复数据库了!
7.最后在查询分析器中选择数据库运行
8.最后检查数据。
注意:a.请根据语句中的汉字提示,进行修改对应内容。如:语句中的“问题数据库”,修改为hbyjtv7
b.此方法适用于索引坏,DBCC不能修复的数据库,另置疑数据库也可用此方法修复!
数据库损坏和置疑修复方法
数据库损坏和置疑修复方法为了修复数据库损坏,可以采取以下方法:1.备份恢复:如果有最新的备份文件,可以通过备份文件进行恢复。
恢复时应注意将损坏的数据库与备份文件进行比对,避免将损坏的数据库文件恢复到备份文件上。
2.日志文件恢复:数据库管理系统通常会有日志文件来记录数据的修改操作,使用日志文件可以恢复损坏的数据库。
通过日志文件,可以找到最近一次正常操作的记录,并恢复到该记录之后的状态。
3.数据库修复工具:数据库管理系统通常都提供了数据库修复工具,可以用于修复损坏的数据库。
修复工具能够检测数据库的完整性,并修复数据文件中的错误或者丢失的数据。
4.数据库重建:如果无法通过备份恢复或通过修复工具修复数据库,可以尝试重建数据库。
重建数据库可以通过创建新的数据库,然后将数据从旧数据库中导出并导入到新数据库中,实现数据的恢复。
5.异地备份:在数据库损坏之前,应该做好数据的备份工作,并将备份数据存储在其他地方。
这样即使数据库发生损坏,也能够通过备份数据进行恢复。
在修复数据库损坏时,需要注意以下几点:1.数据库损坏后,必须立即停止对数据库的操作,以免进一步损坏数据。
2.在使用数据库修复工具时,应该对数据库进行完整备份,以防修复过程中出现意外情况。
3.在修复过程中,应该小心操作,避免进一步损坏数据库文件或数据。
4.在数据库损坏修复完成后,应该对数据库进行全面的测试,以确保数据库的完整性和可用性。
5.定期进行数据库维护和优化工作,以减少数据库损坏的可能性。
总之,数据库损坏是一种常见的情况,但通过备份恢复、日志文件恢复、修复工具、数据库重建等方法,可以有效修复损坏的数据库。
在数据库损坏修复过程中,需要小心操作,避免进一步损坏数据。
同时,定期进行数据库维护和优化工作,可以减少数据库损坏的发生。
用友数据的几种恢复方法
3'把挎备出来的文件复制回原来的位置.
4'通过查询分析器SQL语句附加数据库,或者通过企业管理器/服务器/数据库/右键/附加数据库 来附加数据库。
<例:通过查询分析器SQL语句
--sp_attach_db 'ufsystem','D:\UF2000\Admin\ufsystem.mdf','D:\UF2000\Admin\ufsystem.ldf' //第一行'ufsystem'为系统数据库名,'D:\UF2000\Admin'为物理地址.
1. 引入早期备份的账套数据,如果从前一次都没有进行过数据备份,则可以先通过系统管理建立一套新帐,账套编号及其它参数与原账套保持一致;
2. 停止并退出MS SQLServer 服务器;
3. 停止[控制面版]---[服务]中的---U8管理软件---进程;
4. 将数据库文件ufdata.mdf、 ufdata.ldf复制到系统中账套目录下,覆盖掉通过备份恢复的数据(或通过系统管理新建立的数据); 。
2.如果磁盘上既有数据库文件,又有账套备份的话,那就考虑哪种方法更方便,更有效,更迅速的解决问题.在没有用系统管理做备份,只备份了(zt+帐套号)的的情况下, sql server 数据库与access数据库的恢复数据不同,它不能象access数据库一样直接用原来的.mdb文件覆盖新建的的数据库即可,它需要用sp_detach_db命令从服务器分离新建立的数据库,然后再用原来备份的数据库文件替换新建立的数据库文件,最后用sp_attach_db命令将原来备份的数据库附加到服务器。
第一种情况: 在只有.MDF和.ldf的情况下进行数据库的备份与恢复。 因病毒问题,用友软件无法正常启动.系统管理也不能进入.因此无法正常备份数据,这时就要用到附加数据库了.通过附加数据库使数据库和用友软件相关联,步骤如下:
数据库质疑修复总结
数据库质疑修复总结For SQL Server 2000/2005/2008/2008R2目录1前言 (2)2SQL Server 2000修复步骤 (2)1. 在查询分析器中,运行如下命令将数据库置于紧急模式。
(2)2. 重启SQL Server服务。
(3)3. 如果第二步中重启服务,数据库再次进入suspect模式,请设置数据库紧急模式,使用BCP方式导出数据。
(3)4. 关掉查询分析器,再次打开查询分析器,运行如下语句,查询出问题的数据库的DBID (4)5. 再运行如下命令,检查是否有人在使用当前出问题的数据库,如果有的话,请将他们退出。
(4)6. 然后运行如下命令,将数据库置于单用户使用模式。
如果设置不生效,可以尝试使用企业管理器->数据库属性-> 选项来直接设置. (4)7. 在查询分析器中,运行如下命令,检查数据库是否有损坏。
(4)8. 如果您运行上述命令发现数据库有错误。
此时我们需要根据错误来处理。
接下去有两个方向。
(5)9. 数据库完全恢复正常之后,将数据库置于正常状态,并将单用户模式改成多用户模式。
(5)3SQL Server 2005/2008/2008R2修复步骤 (6)4导数据总结 (7)1. 创建一个空的数据库。
(7)2. 使用脚本禁用所有外键约束。
(7)3. 使用脚本禁用所有触发器。
(9)4.生成脚本并执行启用Identity_Insert。
(10)5. 自动生成脚本导入数据到新的数据库中。
( (10)6. 使用脚本启用所有外键约束,触发器 (10)5附录 (12)1前言本文的步骤基于以下条件:1.SQL Server可以启动。
2.数据库没有做有效的备份。
3.当前用户有Sysadmin权限。
数据库质疑的原因会有多种多样,不同的suspect采用的步骤也会有所不同,以下的步骤不能适用所有的情况,但包括了一些基本的步骤。
数据库suspect是指数据库内部处于不一致的状态,很有可能会有数据丢失。
数据库置疑修复
步骤1:创建一个新的数据库,命名为原来数据库的名字。
步骤2:停止SQL Server步骤3:把老数据库的MDF文件替换新数据库的相应的MDF文件,并把LDF 文件删除。
步骤4:重新启动SQL Server服务,然后运行如下命令:Use MasterGosp_configure 'allow updates', 1reconfigure with overrideGobegin tranupdate sysdatabases set status = 32768 where name = 'db_name'--Verify one row is updated before committingcommit tran步骤5:停止SQL然后重新启动SQL Server服务,然后运行如下命令:DBCC TRACEON(3604)DBCC REBUILD_LOG('db_name','c:\mssql7\data\dbxxx_3.ldf')Go步骤6:停止SQL然后重新启动SQL Server服务,然后运行:use masterupdate sysdatabases set status = 8 where name = 'db_name'Gosp_configue 'allow updates', 0reconfigure with overrideGo步骤7:运行dbcc checkdb(db_name) 检查数据库的完整性注:都要替换成真实的数据库名字。
s ql附加数据库时提示823错误2008-12-26 09:10朋友单位有台电脑的数据库ufdata_001_2008状态为置疑,我断开再附加时提示如下图所示说明,附加时失败,错误823。
原因分析:出现这种情况可能是由于电脑忽然断电或者异常关机造成的。
仅MDF文件数据恢复
1) 先及时把原来的数据库文件(如test.mdf)备份到其他地方。
2) 停掉服务器。
3) 删除这个test.mdf。
4) 重新建立一个test同名数据库。
5) 删除这个新建立的test数据库的test.ldf文件,并用开始备份好test.mdf文件覆盖这个新建立的test.mdf文件。
6) 启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。
.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”。
dbcc checkdb('YTHIS',REPAIR_REBUILD)
进行修复。如果没有错误,可以跳过。
9、恢复成多用户模式
alter database YTHIS set multi_user
或者:
Sp_dboption 'YTHIS', 'single user', 'false'
7) 设置test为紧急修复模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')
此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表
8) 下面执行真正的恢复操作,重建数据库日志文件
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
SQL Server只有MDF文件,无日志LDF文件恢复
SQL Server无日志恢复数据库方法SQL Server是一个关系数据库管理系统,在进行SQL Server数据库操作的过程中难免会出现误删或者别的原因引起的日志损坏,由于SQL Server数据库中数据的重要性,出现了以上的故障之后就必须对数据库中数据进行恢复。
速达软件SQL数据库中的两个备份文件mdf和ldf文件,因误删或者别的原因引起的ldf日志文件被清除,现在只有一个mdf数据文件,怎么样才能恢复原来的帐套数据呢?鉴于SQL Server数据库中日志文件的重要性,我们必须将丢失的日志文件给找回来,下文就为大家介绍一种SQL Server无日志恢复数据库方法。
运软件行环境:SQL SERVER 2000 SP4速达 V5 V3.90 ERP 试用版准备:备份原速达帐套的mdf数据文件(假设原帐套名为:SD001),SD31502_SD001.mdf1、停止SQL SERVER 服务管理器,把数据库的数据文件SD31502_SD001.mdf移走。
2、打开速达软件,新建一个跟原来帐套名称SD001同名的帐套SD001,停掉SQL服务,用原帐套数据mdf文件(SD31502_SD001.mdf)覆盖新建的帐套mdf文件,删除新建帐套的ldf文件(SD31502_SD001_log.ldf)。
3、启动SQL数据库 --- 企业管理器,打开新建的SD001速达数据库,可以看到数据库SD31502_SD001为灰色的“置疑”状态,现在不进行任何操作。
开始:SQL Server无日志恢复数据库1、将SQL数据库设置为“允许对系统目录直接进行修改”,右键(local)(windowsNT)--- 属性 --- 服务器设置,选中“允许对系统目录直接进行修改”;或,运行以下语句,允许对系统目录直接进行修改。
use mastergosp_configure 'allow updates',1goreconfigure with overridego执行结果:DBCC 执行完毕。
sql 2008 r2只有mdf文件修复数据库的方法
4. 停掉SQL Server服务, 将新的MDF重命名掉, 老的MDF命名回原来的名字.
5. 启动SQL Server服务, 这时这个数据库的状态会变为Recovery Pending. 我们开始执行下面的脚本.
alter database contentdb1 set emergency
对于sql 数据库丢失日志文件(ldf)只有数据文件(mdf)的时候使用此方法修复。
我们执行了下面的步骤:
1. 在SQL Server Management Studio中删除状态为Recovery Pending的(即丢失了LDF的)问题数据库.
2. 重命名老的MDF文件.
3. 重建一个新的数据库, 名字跟刚刚删除的数据库完全一样. 注意, 新的MDF的位置跟我们老的MDF的文件的位置相同. 这里的LDF文件的位置选在你想要存放的最终位置上(这个就是你所要的被恢复的LDF文件了).
alter database contentdb1 set single_user with rollback immediate
alter database contentdb1 rebuild log on (name=ContentDB1_log, filename='E:\CDBLOG\contentdb1log.ldf')
ALTER DATABASE Survey SET MULTI_USER go
进行完整性检查,不然程序查询时会报错。 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:126647,但实际为 0:0)。在文件 'D:\DataBase\Survey.mdf' 中、偏移量为 0x0000003dd6e000 的位置对数据库 ID 7 中的页 (1:126647) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因exec sp_who2, 发现我的contentdb1上有个suspend的session, 执行命令kill XY 杀掉这个死掉的session之后, 问题解决.
SQL2000数据库置疑解决方法
--最后完成
SQLSERVER数据库文件损坏处理2例
WINDOWS2000
SQLSERVER2000
这段时间遇到了好几起由于数据库文件损坏,而造成客户系统暂停使用的情况。在恢复过程中查阅参考了几篇网上的技术文章,实际操作过后感觉有必要承前启后一下户报告中午正常使用的系统,下午无法打开,报告的是连接数据库错误。电话中初步判断是数据库启动失败。首先告知客户无法立即恢复,先转成手工操作。
到达客户处,首先检查“事件查看器”,发现系统日志文件损坏,事件查看器无法显示系统日志。只能首先删除清空,并重建事件日志文件。然后再启动sqlserver,这时候就可以在事件查看器中看到sqlserver启动失败的错误信息了。错误大概是说 “启动过程中master数据文件损坏,数据库无法恢复”。由于master是系统数据库,因此SQLSERVER无法启动。
SQL2000数据库置疑解决方法
按下面的步骤处理:
1.新建一个同名的数据库
2.再停掉sql server
3.用备份的数据库MDF的文件覆盖掉这个新建的同名数据库文件
4.再重启sql server
5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
附加数据库错误提示:
“错误3456:未能恢复日志记录(***:***:x)事务 ID(0:***xx)......等等”
怀疑是日志文件损坏,只能寄希望于数据文件没有损坏。删除数据库日志文件,单独附加数据库文件,结果还是失败,报告“日志文件不符”。
由于远程操作过于缓慢,只能将客户数据文件压缩传回本地,再想办法进行修复。
数据库MDF数据文件数据库恢复
进入到命令,格式为: sp_attach_single_file_db @dbname = 'dbname' , @physname = 'physical_name' @dbname @physname 这两个不能改变。 dbname:即要还原的数据库名字。 Physname:即物理文件名。 Physical_name:即.mdf文件路径。 例如:IT2000.mdf文件还原至当前服务器。
网络错误503请刷新页面重试持续报错请尝试更换浏览器或网络环境
数据库 MDF数据文件数据库恢复
.mdf文件是数据库中的一个主要数据文件,它是数据库的起点,指向数据库中文件的其它部分。当电脑出现故障无法备份数据库时,只能通 过SQL命令的方式将.mdf数据文件附加到当前服务器,还原原有的数据。打开查询分析器,点击【确定】连接到服务器(若SA有密码请输入 密码),如下:
MDF文件损坏及没有日志文件恢复的总结
MDF文件损坏及没有日志文件恢复的总结大体思路是这样的:1。
重建日志先建一个同名的数据库,并且对应的文件名也得相同,停掉数据库,然后到建立的这个数据库的目录下将对应的两个文件删除,然后把MDF拷贝到这个目录下。
启动数据库,便看到这个数据库处于置疑状态。
2。
消除置疑状态USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE --表示可以更改系统表GOUPDATE SYSDATABASES SET STA TUS =32768 WHERE NAME='置疑的数据库名'--设置数据库为紧急模式Gosp_dboption '置疑的数据库名', 'single user', 'true' --设置数据库为单用户模式GoDBCC CHECKDB('置疑的数据库名') --检查数据库错误Goupdate sysdatabases set status =28 where name='置疑的数据库名' --恢复数据库为正常模式Gosp_configure 'allow updates', 0 reconfigure with overrideGosp_dboption '置疑的数据库名', 'single user', 'false'Go这里是最好的恢复,MDF没有损坏,上面的语句基本可以满足假如MDF有损坏,并且做DBCC里有N多错误,数据库无法完整修复里可以考虑允许丢失数据修复,方法如下use masterdeclare @databasename varchar(255)set @databasename='要恢复的数据库名称'exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态dbcc checkdb(@databasename,REPAIR_ALLOW_DA TA_LOSS)dbcc checkdb(@databasename,REPAIR_REBUILD)exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态如果顺利的话,应该能解决问题。
数据库置疑的解决办法
MSDB置疑修复方法一:你可以采用以下的语句进行修复:USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb'Gosp_dboption 'msdb', 'single user', 'true'GoDBCC CHECKDB('msdb')Goupdate sysdatabases set status =28 where name='msdb'Gosp_configure 'allow updates', 0reconfigure with overrideGosp_dboption 'msdb', 'single user', 'false'Go方法二:MSDB数据库解决过程难点:由于MSDB数据库不能删除,将其文件拷出来,再次附加数据库,但新的附加数据库不能叫MSDB,也就是不能同名,遇到了困难。
1:先停止整个数据库,将该数据库的文件msdbdata.mdf和msdblog.ldf拷贝粘贴出来到另一个目录下。
2:将以上的文件再拷贝到另一个目录下,也就是说复制两次。
3:选择数据库右击鼠标 --》所有任务--》附加数据库将复制出的一个备份文件附加上去,其中,数据库名称叫MSDB1,用户是SA或ADMINISTRATOR。
4:将MSDB1数据库备份,备份成一个文件,当时我的叫MSDB。
BAK。
5:选择置疑的数据库MSDB,选择恢复数据库,将刚才备份出来的数据库强行恢复到MSDB。
6:问题解决,MSDB库又能正常使用。
完成后赶快将数据库再次备份一次。
速达3000 MDF数据恢复操作
速达3000 如何将.MDF文件恢复速达3000 如何将.MDF文件恢复恢复有风险请在恢复前复制原来的数据文件在SQL Server 2000/2005下测试成功。
2008待测!但建议大家装速达不要装2008 会有问题的!例子数据目录:d:\Data例子数据库MDF文件为:d:\Data\SD303N_001.Mdf设置服务器允许对系统目录进行直接修改use mastergosp_configure 'allow updates',1goreconfigure with override----------------------------------更名d:\Data\SD303N_001.Mdf为d:\Data\SD303N_001_1.Mdf 建立同名数据库CREATE DATABASE SD303N_001ON PRIMARY (NAME='SD303N_001_Data',FILENAME='d:\data\SD303N_001.mdf')LOG ON (NAME='SD303N_001_Log',FILENAME='d:\data\SD303N_001_log.ldf')----------------------------------停止数据库服务器,然后删除上边生成的两个文件然后把d:\Data\SD303N_001_1.Mdf再更名为d:\Data\SD303N_001.Mdf重新启动数据库服务器----------------------------------设置质疑数据库为紧急模式update sysdatabases set status=-32768 wheredbid=DB_ID('SD303N_001')----------------------------------重建数据库日志文件dbccrebuild_log('SD303N_001','D:\Data\SD303N_001_log.ldf') ----------------------------------检查数据完整性dbcc checkdb('SD303N_001')----------------------------------设置数据库为正常状态sp_dboption 'SD303N_001','dbo use only','false'----------------------------------取消服务器允许对系统目录直接修改权限sp_configure 'allow updates',0reconfigure with override----------------------------------整个过程已经完成,您现在应该能正常使用此数据库了。
SQL2000数据库MDF损坏修复
sql server 2000文件中,ldf损坏了,但mdf还在,总结一下恢复方法:1)先及时把原来的数据库文件(如test.mdf)备份到其他地方2)停掉服务器3)删除这个test.mdf4) 重新建立一个test同名数据库5)删除这个新建立的test数据库的test.ldf文件,并用开始备份好的test.mdf文件覆盖这个新建立的test.mdf文件6)启动数据库服务器。
此时会看到数据库test的状态为“置疑”。
这时候不能对此数据库进行任何操作。
.设置数据库允许直接操作系统表。
此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”7)设置test为紧急修复模式update sysdatabases set status=-32768 where dbid=DB_ID('test')此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表8 下面执行真正的恢复操作,重建数据库日志文件dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')执行过程中,如果遇到下列提示信息:服务器: 消息5030,级别16,状态1,行 1未能排它地锁定数据库以执行该操作。
DBCC 执行完毕。
如果DBCC 输出了错误信息,请与系统管理员联系。
说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。
数据库质疑修复语句
update sysdatabases set status=32768 where name='jris8' /* 设置数据库状态 */
go
DBCC REBUILD_LOG ('jris8','D:\Program Files\Microsoft SQL Server\MSSQL\Data\jris8_Log.LDF') /* 重建LDF文件 */
Sp_dboption 'jris8','single User', 'False'
dbcc checkdb(jris8)
sp_dboption 'jris8','single user','true'
dbcc checkdb(jris8,REPAIR_REBUILD)
dbcc checkdb ('jris8',REPAIR_allow_data_loss)/*反复运行*/
原因分析:出现这种情况可能是由于电脑忽然断电或者异常关机造成的。
解决方法:在SQL企业管理器中,新建同名数据库jhotel,新建库后现有数据名称是jris8.mdf和jris8_log.LDF;
停止数据库,把损坏的数据库文件ufdata.mdf和ufdata.LDF修改名称为jris8.mdf和jris8_log.LDF,并覆盖刚才新建数据库目录下的数据,同时删除jris8_log.LDF文件;
go
update sysdatabases set status=0 where name='jris8' /* 重置数据库状态 */
只有mdf和ldf文件,甚至只有mdf文件,如何恢复数据库档
只有mdf和ldf文件,甚至只有mdf文件,如何恢复数据库2010-04-19 10:34只有mdf和ldf文件,甚至只有mdf文件,如何恢复数据库1. 首先确认已经备份了.mdf和.ldf文件。
2. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。
3. 用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。
4. 重新启动SQL Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。
(人品好的话,这个时候数据库就已经恢复正常了,上次xrf的数据库就是这样被我恢复的。
人品不好的话,下面的步骤也不行,我有一次就是找了一个北京做数据恢复的公司才恢复完毕。
)5. 在SQL查询分析器中执行以下命令,以允许更新系统表:use mastergosp_configure ‘allow updates’,1reconfigure with overridego6. 将这个数据库置为紧急模式:update sysdatabases set status = 32768 where name = 'db_name'go7. 使用DBCC CHECKDB命令检查数据库中的错误:DBCC CHECKDB(‘db_name’)GO8. 如果DBCC CHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:sp_dboption 'db_name',’single user’,’true’DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)GO如果在执行DBCC CHECKDB(‘db_name’, REPAI R_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQL Server服务,然后继续尝试。
9. 如果DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:重新执行DBCC CHECKDB(‘db_name’)命令,确认数据库中已没有错误存在。
数据库质疑修复
1、建一个同名的数据库,名称client注:新建的数据库的数据文件名必须修改为client.MDF2、修改服务器设置:允许多系统目录进行直接修改企业管理器==〉服务器右击属性==〉服务器设置==〉服务器行为==〉允许对系统目录直接进行修改不显示系统对象:企业管理器==〉服务器右击==〉编辑sql server注册属性==〉去掉显示系统数据库和系统对象前面的勾==〉确定3、停止SQL Server4、用质疑数据库的mdf文件覆盖新建库的数据库文件5、重启SQL Server(这时新建的数据库应该是置疑)6、将数据库置为紧急状态:update master.dbo.sysdatabases set status = 32768 where name = 'client'7、重建日志:dbcc rebuild_log('SYD2006','d:\data\client.ldf')(可能不需要这一步。
)8、重启SQL Serve,然后再还原数据库状态用以下语句update master.dbo.sysdatabases set status = 16 where name = 'client' 这时数据库已经不是质疑状态,但此时的数据库千万不能使用9、找一家正常使用的门店,拷贝其数据库,清空数据(可留存做为模版,各节点企业数据库有差异不可通用)10、附加清空后的数据库11、导入数据,整个数据库表对导(去掉视图)注意:必须跳过此表T_HEADSTORE导入完毕后,需看清楚是否所有表都导入成功,如果有提示导入错误的表,记下表名,在源数据库中检查此表是否损坏,如损坏进行修复,修复完毕再将导入失败的表重新导入一次,如修复不了,请联系相关人员处理12、如所有表导入成功,将旧数据库分离下来并辈分,将新数据库收缩,分离,然后重新附加为client13、进入软件,执行数据上传与数据下载任务14、核对数据--门店数据库执行select sum(jshj) from fhdzk where kdrq between '当前月份1号' and '当前月份最后一天' union allselect sum(sl) from phkunion allselect sum(sjsl) from ywbalance--总部执行select sum(jshj) from subfhd where kdrq between '当前月份1号' and '当前月份最后一天' and subbh='质疑门店编号'union allselect sum(sl) from subphk where subbh='质疑门店编号'union allselect sum(sjsl) from subywk where subbh='质疑门店编号'必须保证门店三行数据与总部三行数据一致(有四舍五入的,会差一位小数,没有影响)且第二行数据等于第三行数据如无误,门店可使用。
数据库的MDF文件损坏LDF正常恢复方法
9 进行恢复最老的完全备份
1> RESTORE DATABASE test from DISK='D:\Program Files\Microsoft SQL Server\MSSQLBACKUP\test_1.bak' WITH NORECOVERY
恢复完后,再打开log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data
选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.
3)
不要用SQL的备份功能备份,搞不好你的日志就破坏了.
数据库的MDF文件损坏,而LDF正常,恢复方法
方法一:用Log Explorer
打开log explorer file=>attach log file->选择服务器和登陆方式->connect->
选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了
2> go
已处理 96 页,这些页属于数据库 'test' 的文件 'TEST_Data'(位于文件 1 上)。
已处理 1 页,这些页属于数据库 'test' 的文件 'TEST_Log'(位于文件 1 上)。
RESTORE DATABASE 操作成功地处理了 97 页,花费了 0.107 秒(7.368 MB/秒)。
SQL数据库只有MDF文件数据库恢复方法
--停止数据库服务器,然后删除上边生成的两个文件
--然后把d:\Data\SD303N_001_1.Mdf再更名为d:\Data\SD303N_001.Mdf
--重新启动数据库服务器
----------------------------------
--设置质疑数据库为紧急模式
update sysdatabases set status=-32768 where dbid=DB_ID('SD303N_001')
ON PRIMARY (NAME='SD303N_001_Data',FILENAME ='d:\data\SD303N_001.mdf')
LOG ON (NAME='SD303N_001_Log',FILENAME ='d:\data\SD303N_001_log.ldf')
----------------------------------
--取消服务器允许对系统目录直接修改权限
sp_configure 'allow updates',0
reconfigure with override
----------------------------------
--整个过程已经完成,您现在应该能正常使用此数据库了。然后速达帐套即可正常使用!
reconfigure with override
----------------------------------
--更名d:\Data\SD303N_001.Mdf为d:\Data\SD303N_001_1.Mdf
--建立同名数据库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.首先确认已经备份了.mdf和.ldf文件。
2. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。
3. 用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。
4. 重新启动SQL Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。
Go //禁止更新系统表
sp_dboption 'ondb', 'single user', 'false'
Go //取消数据库单用户模式
sp_resetstatus 'ondb' //未用,重置数据库状态
sp_dboption 'ondb ', 'dbo use only ', 'false //未用,取消数据库的紧急模式
3. 启动SQL Server服务,并将数据库置为紧急模式(同上: 步骤5和步骤6)。
4. 停止并重新启动SQL Server服务。
5. 执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名)
DBCC REBUILD_LOG("cas_db", "D:\cas_db\cas_db_Log.LDF")
5. 在SQL查询分析器中执行以下命令,以允许更新系统表:
use mastergosp_configure "allow updates",1reconfigurewithoverridego
6. 将这个数据库置为紧急模式:
update sysdatabases set status = 32768 where name="db_name"go
如果在执行DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQLServer服务,然后继续尝试。
9. 如果DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:
DBCC CHECKDB('ondb')
Go //检查数据库中的错误
update sysdatabases set status =28 where name='ondb'
Go //取消这个数据库置为紧急模式
sp_configure 'allow updates', 0 reconfigure with override
6. 重新将该数据库置为单用户模式。
7. 再次尝试使用DBCC CHECKTABLE或DBCC CHECKDB命令检查并修复数据库中的错误。
7. 使用DBCC CHECKDB命令检查数据库中的错误:
DBCC CHECKDB("db_name")GO
8. 如果DBCC CHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:
sp_dboption "db_name","single user","true"DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)GO
Go //用DBCC CHECKDB命令检查数据库中的错误
sp_dboption 'ondb', 'single user', 'true' //将数据库置为单用户模式
DBCCCHECKDB('ondb',REPAIR_ALLOW_DATA_LOSS)
GO //对其进行修复
STATUS =32768 WHERE NAME='ondb'
Go //将这个数据库置为紧急模式
DBCC REBUILD_LOG(ቤተ መጻሕፍቲ ባይዱondb', 'E:\MSSQL\Data\ondb_Log.LDF')
go //重建数据库日志文件
DBCC CHECKDB('ondb')
10.如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。如果您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了:
1. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。
2. 用原有的ldf文件覆盖新建数据库对应的.mdf文件,将其日志文件(.ldf)删除。
重新执行DBCC CHECKDB("db_name")命令,确认数据库中已没有错误存在。
清除数据库的置疑状态:sp_resetstatus "db_name"
清除数据库的单用户模式状态:sp_dboption "db_name","single user","false"
重新启动SQL Server服务,如果一切正常的话,则数据库已经成功恢复。
打开查询分析器,逐步执行,按F5执行--用户名:sa,密码:on2000或ondb000
USE MASTER
GO //连接数据库
SP_CONFIGURE 'ALLOW UPDATES',
1 RECONFIGURE WITH OVERRIDE
GO //允许更新系统表
UPDATE SYSDATABASES SET