数据库置疑修复
sql2000数据库置疑修复

方法一:
1.停止SQL Server的服务,然后备份MS SQL Server的安装目录下的\data子目录. 注意:整个目录目录备份或只备份data目录下置疑数据库的两个文件,一个数据文件dbname_data.mdf,一个dbname_log.ldf(也有可能非此命名),同时查看磁盘空间是否有足够的空间;
8.运行dbcc checkdb(db_name) 检查数据库的完整性 修复数库
注:都要把 dbname 替换成真实的数据库名字。
2.启用SQL Server的服务。打开查询分析器(Query Analyzer)的工具,以用户sa登录;
3.输入如下指令后点工具栏上的绿色箭头运行(快捷键F5), use master go sp_resetstatus dbname go
4.运行完毕后退出此工具,停止SQL Server的服务.
5.在MS SQL Server的安装目录下,有一个\data子目录,其中存放数据文件,包括SQL Server和本系统的数据文件,删除置疑数据库的日志文件dbname_log.ldf(也有可能非此命名).
6.启动SQL Server的服务.
7.打开企业管理器(Enterprise Manager)的工具,查看数据库(database)节点下的dbname是否恢复。
4.停止SQL Server 的服务,再重新启动SQL Server 服务.
5.打开SQL Server 的查询分析器(Query Analyzer),以用户 sa 登录。输入如下指令后点工具栏上的绿色箭头运行,运行完毕后退出此工具: use master go DBCC DBRECOVER (dbname) go
数据库置疑_及修复

Sqlserver 数据库823错误(置疑)的解决方案一、SQL-Server数据库置疑:1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。
2、异常分析:关于823错误的SQL-SERVER 中的帮助:================================错误823严重级别24消息正文在文件%4的偏移量,%3的索引,%2过程中,检测到I/O 错误%1。
解决办法:准备工作:①停止sql server服务,找到置疑库的mdf,ldf文件复制出来,这里假设叫kmcyV51_data.mdf(ldf),并与企业管理器中删除该数据库;②用KM安装包下db_setup.exe建立一个空库(名称和质疑数据库名一致kmcyv51),选择服务器节点,右键停止数据库服务,把损坏的数据库文件kmcyv51_Data.mdf覆盖刚才新建数据库目录下,同时删除kmcy_v51_log.LDF文件;右键节点启动数据库服务,发现数据库名kmcyv51后面有“置疑”字样。
打开SQL自带查询分析器,在master数据库分别执行如下SQL语句:(注意更改数据库名)use masterexec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打开修改系统表开关*/update sysdatabases set status=32768 where name = 'kmcyv51' /* 设置紧急状态*/sp_dboption 'kmcyv51', 'single user', 'true' /*启用单用户*/DBCC REBUILD_LOG ('kmcyv51','E:\km软件_data\KmcyV51_Log.LDF') /* 重建LDF文件*/update sysdatabases set status=28 where name= 'kmcyv51' /* 设置正常状态*/--或者update sysdatabases set status = 16 where name = 'kmcyv51'RESTORE DATABASE kmcyv51 WITH RECOVERY /* 恢复数据库*/exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭修改系统表开关*/sp_dboption 'kmcyv51', 'single user', 'false' /* 关闭单用户模式*/如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库各个表的数据导出到新建数据库表中。
用友软件SQL数据库置疑修复文档

用友软件SQL数据库置疑修复文档背景2021年4月,发现公司用友软件的SQL数据库出现了一些置疑的情况,例如数据表数据不一致等问题。
经过初步调查,发现是由于数据库在一段时间内没有正常备份导致的问题。
因此,需要对数据库进行修复工作,以确保数据的完整性和准确性。
修复步骤1. 备份数据库在进行修复工作前,首先要备份数据库,以免操作失误导致数据丢失。
可以使用SQL Server Management Studio等工具来进行数据库备份。
2. 查找问题点查找问题点是修复工作的核心。
可以通过以下步骤进行操作:1.使用SQL Server Management Studio查看数据表的结构和数据;2.比对不同时间点的数据表数据,查找数据不一致的点;3.查看SQL Server的日志文件,查找异常的SQL语句。
通过以上步骤可以发现置疑的数据表以及具体出现问题的时间点和SQL语句。
3. 进行修复操作修复操作需要严格按照以下步骤进行:1.暂停所有与数据库相关的应用程序;2.使用SQL Server Management Studio等工具,逐条运行SQL语句,对数据表进行修复;3.重启所有与数据库相关的应用程序。
在进行修复工作前,需要对每一条SQL语句进行仔细的检查和确认,确保语句正确无误,否则可能导致数据更加混乱。
4. 检查修复效果修复操作完成后,需要进行检查,以确保修复效果符合预期。
可以通过以下步骤进行操作:1.使用SQL Server Management Studio查看数据表的结构和数据;2.比对不同时间点的数据表数据,查看修复效果;3.重启所有与数据库相关的应用程序,查看是否存在问题。
如果修复后仍存在问题,则需要重新查找问题点,并进行修复操作,直到修复效果符合预期。
注意事项在进行数据库修复工作时,需要注意以下几点:1.备份数据库是重要的保证,不能忽视;2.SQL语句需要仔细检查,以免操作失误导致数据问题更加严重;3.修复操作需要停止所有与数据库相关的应用程序,确保数据准确性。
数据库置疑修复方法

数据库置疑修复方法
1.使用数据库置疑修复语句进行修复
当数据库出现置疑情况时,可以使用置疑修复语句来进行修复(置疑修复语句见附件)。
将置疑修复语句全选复制到查询分析器中,将修复语句中所有的Kgtmis2008改为要修复的数据库名称(如fdbmis、fdbpos等),然后一行行执行,在执行到DBCC Checkdb(*)时,有可能会报错,不必理会,继续执行其他语句,直到语句执行完毕,然后再单独执行DBCC Checkdb(*)若还报错,则此时可以使用方象数据库修复工具来进行数据库修复。
若修复成功,请留意修复工具的修复日志,日志中可以看到是哪些表无法修复及无法修复的原因,之后再根据具体的原因来做具体的后续处理。
2.单文件附加数据文件
单文件附加数据库是解决数据库置疑的另外一种方法,单此方法只适用于日志文件有问题的情况,若是主库文件有问题,附加有可能会报错,此时还是建议使用修复语句进行置疑修复。
单文件附加之前,需要先分离数据库,分离后,在数据库文件路径下找到分离后的数据库文件,将日志文件剪切出去(后缀为.ldf的文件),然后数据库右键 附加数据库。
3.数据库修复工具的使用方法
打开数据库修复工具后,将下方的数据库名称(默认是DBMain)改为要修复的数据库名称,然后点击修复即可。
修复数据库(置疑)

先分离数据库企业管理器--右键suspect(被置疑的数据库)数据库--所有任务--分离数据库然后备份你的suspect数据库的文件,再按下面的步骤处理:-/1.新建一个同名的数据库us2.再停掉sql server o3.用suspect数据库的文件覆盖掉这个新建的同名数据库^b4.再重启sql server-wDm5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)©《USE MASTER pGOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE G; (*使能修改数据库)GO©UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的同名数据库名'I (*将数据库改为紧急模式)Go©sp_dboption '置疑的同名数据库名', 'single user', 'true',+(*设为单用户)GoDBCC CHECKDB('置疑的同名数据库名') ":(*分析数据库)Goupdate sysdatabases set status =28 where name='置疑的同名数据库名' (*将数据库由紧急模式改为正常模式)Go©sp_configure 'allow updates', 0 reconfigure with override% (*使系统数据库不能更改)Gosp_dboption '置疑的同名数据库名', 'single user', 'true'JG (*设有多用户)Go6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了注、若数据库为ICSF,所要备份的数据库通常为两个数据库文件(C:\Program Files\Microsoft SQL Server\MSSQL\Data中的ICSF.LOG 和ICSF.MDF)。
数据库损坏和置疑修复方法

数据库损坏和置疑修复方法为了修复数据库损坏,可以采取以下方法:1.备份恢复:如果有最新的备份文件,可以通过备份文件进行恢复。
恢复时应注意将损坏的数据库与备份文件进行比对,避免将损坏的数据库文件恢复到备份文件上。
2.日志文件恢复:数据库管理系统通常会有日志文件来记录数据的修改操作,使用日志文件可以恢复损坏的数据库。
通过日志文件,可以找到最近一次正常操作的记录,并恢复到该记录之后的状态。
3.数据库修复工具:数据库管理系统通常都提供了数据库修复工具,可以用于修复损坏的数据库。
修复工具能够检测数据库的完整性,并修复数据文件中的错误或者丢失的数据。
4.数据库重建:如果无法通过备份恢复或通过修复工具修复数据库,可以尝试重建数据库。
重建数据库可以通过创建新的数据库,然后将数据从旧数据库中导出并导入到新数据库中,实现数据的恢复。
5.异地备份:在数据库损坏之前,应该做好数据的备份工作,并将备份数据存储在其他地方。
这样即使数据库发生损坏,也能够通过备份数据进行恢复。
在修复数据库损坏时,需要注意以下几点:1.数据库损坏后,必须立即停止对数据库的操作,以免进一步损坏数据。
2.在使用数据库修复工具时,应该对数据库进行完整备份,以防修复过程中出现意外情况。
3.在修复过程中,应该小心操作,避免进一步损坏数据库文件或数据。
4.在数据库损坏修复完成后,应该对数据库进行全面的测试,以确保数据库的完整性和可用性。
5.定期进行数据库维护和优化工作,以减少数据库损坏的可能性。
总之,数据库损坏是一种常见的情况,但通过备份恢复、日志文件恢复、修复工具、数据库重建等方法,可以有效修复损坏的数据库。
在数据库损坏修复过程中,需要小心操作,避免进一步损坏数据。
同时,定期进行数据库维护和优化工作,可以减少数据库损坏的发生。
数据库损坏和置疑修复方案

数据库损坏和置疑修复方案一、数据库置疑和损坏产生原因Sql Server数据库本身依赖于操作系统、文件读写存储等环境,数据库经常因为操作系统、异常关机、异常终止退出或者SQL Server数据库本身的机制问题均会导致数据库无故损坏,其中数据库置疑或者损坏的主要原因如下:1.数据库主文件和日志文件被移除或者更改了名称,数据库目录下找不到数据库物理文件2.事务日志问题,日志文件误删除,或者日志文件过大,磁盘空间不足3.突然断电或者数据库读写过程中强制关机,导致数据文件损坏4.硬盘损坏,导致数据读写错误5.病毒,或者其他原因造成数据库置疑二、数据库置疑和损坏修复方案以方象3000主数据fdbmis为例1.数据库主文件和日志文件被移除或者更改了名称,数据库目录下找不到数据库物理文件,导致数据库置疑3000数据库文件存在目录一般为:D:\DATA文件下的FDbMis_Data.MDF和FDbMis_Log.LDF,现在,先将两个文件移除D:\DATA文件夹,当前情况下启动网络服务程序报错如下启动软件报错进行正确设置后,还是重复这个错误。
这时进入企业管理器发现fdbmis显示置疑状态,然后用数据库分离和附加数据库。
去数据库目录下查找发现没有FDbMis_Data.MDF和FDbMis_Log.LDF。
或者更改为其他名称了。
这时的解决办法是:找到被移除的物理文件,拷贝到正确的目录下,或者将更改了的名称改回来,放到正确的目录下之后,然后将sql server服务管理器停止,重新启动一下就可以了。
2.事务日志问题,日志文件误删除,或者日志文件过大,磁盘空间不足,导致数据库置疑(1)磁盘空间不足,可通过释放磁盘空间暂时解决。
日志文件过大,可以先将sql server服务管理器停止,然后将日志文件删除,启动sql server服务管理器。
这时fdbmis数据库显示置疑状态。
下面设置数据库允许直接操作系统表。
用以下语句实现:use mastergosp_configure 'allow updates',1goreconfigure with overridego(2)设置fdbmis为紧急修复模式update sysdatabases set status =-32768 where dbid=db_id('fdbmis')此时,可以在企业管理器中看到数据库为“紧急模式”。
SQL数据库置疑解决方案(原因、预防、修复)附图

SQL数据库置疑解决方案一、数据库置疑产生的原因1、SQL Server所在分区空间是否够?数据库文件大小是否达到最大文件限制?FAT32的格式只支持4G以内的文件。
2、数据库文件损坏或被非正常删除时出现这种情况。
3、病毒防火墙的扫描也会引起数据库置疑。
4、当SQL Server启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文件被其他程序占用,或者遗失,数据库将会被标记为置疑。
5、电脑非法关机也会造成数据库置疑。
6、电脑磁盘有坏道有可能造成数据库置疑。
二、数据库置疑的预防1、数据库存放的盘符,空间是否够大,经常检查盘符的空间。
2、数据库存放的盘符的格式设置为NTFS格式。
3、进行病毒清除时,尽量把SQL服务停掉,再进行检查。
4、尽量减少非正常关机。
5、建议客户购买后备电源。
页脚内容16、给客户实施软件之后一定要做好自动备份。
7、建议客户每隔一定时间手动备份一次。
三、数据库置疑的修复1、正常的备份、SQL数据库恢复方式正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。
卸下数据库的命令:Sp_detach_db 数据库名连接数据库的命令:Sp_attach_db或者sp_attach_single_file_dbs_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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步骤1:
创建一个新的数据库,命名为原来数据库的名字。
步骤2:
停止SQL Server
步骤3:
把老数据库的MDF文件替换新数据库的相应的MDF文件,并把LDF 文件删除。
步骤4:
重新启动SQL Server服务,然后运行如下命令:
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
begin tran
update sysdatabases set status = 32768 where name = 'db_name'
--Verify one row is updated before committing
commit 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 master
update sysdatabases set status = 8 where name = 'db_name'
Go
sp_configue 'allow updates', 0
reconfigure with override
Go
步骤7:
运行dbcc checkdb(db_name) 检查数据库的完整性
注:都要替换成真实的数据库名字。
s ql附加数据库时提示823错误
2008-12-26 09:10
朋友单位有台电脑的数据库ufdata_001_2008状态为置疑,我断开再附加时提示如下图所示说明,附加时失败,错误823。
原因分析:出现这种情况可能是由于电脑忽然断电或者异常关机造成的。
解决方法:在SQL企业管理器中,新建同名数据库ufdata_001_2008,
新建库后现有数据名称是ufdata_001_2008.mdf和
ufdata_001_2008_log.LDF;
停止数据库,把损坏的数据库文件ufdata.mdf和ufdata.LDF修改名称为ufdata_001_2008.mdf和ufdata_001_2008_log.LDF,并覆盖刚才新建数据库目录下的数据,同时删除ufdata_001_2008_log.LDF文件;
启动数据库服务,发现数据库名ufdata_001_2008后面有“置疑”字样;
打开SQL自带查询分析器,执行如下SQL语句:
use master
go
exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打开修改系统表的开关 */
go
update sysdatabases set status=32768 where
name='ufdata_001_2008' /* 设置数据库状态 */
go
DBCC REBUILD_LOG
('ufdata_001_2008','E:\ufdata\ufdata.LDF') /* 重建LDF文件 */
go
update sysdatabases set status=0 where
name='ufdata_001_2008' /* 重置数据库状态 */
go
restore database ufdata_001_2008 WITH
RECOVERY /* 恢复数据库 */
go
exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭打开修改系统表的开关 */
执行以上语句后,ufdata_001_2008没有了置疑状态,数据可以正常读取了。