数据库置疑_及修复
恢复数据库(数据库置疑)

挽救数据库损坏的方法条件:原库的.mdf 文件是完好的即可。
请在SQL Server的查询分析器中按以下步骤执行假设数据库名为:kmjxc (如果您的数据库名不是kmjxc,需要更改以下语句中相应的kmjxc为您的数据库名称)0.先用KM db_setup.exe建立一个空库,然后将有数据的.mdf文件复制过来覆盖现有的空库的.mdf文件。
1.把数据库设成紧急状态:然后在SQL查询分析器中,选到master数据库,输入以下语句执行(一条一条执行)sp_configure 'allow',1reconfigure with overrideupdate sysdatabases set status=32768 where name='kmjxc'2.重建日志文件(请将路径换成你的数据文件路径)D:\MSSQL$PROD\Data\为存放数据库文件的路径KMJXC_log2.ldf为一个新的不存在的文件,在执行以下语句时将自动建立dbcc rebuild_log('kmjxc','D:\MSSQL$PROD\Data\KMJXC_log2.ldf')3.取消紧急模式(一条一条执行)update sysdatabases set status=0 where name='kmjxc'restore database kmjxc with recoverysp_configure 'allow',0reconfigure with override4.重起sql server5.oksp_configure 'allow',1reconfigure with overrideupdate sysdatabases set status=32768 where name='kmjxc_pro'dbcc rebuild_log('kmjxc_pro','D:\KMData\KMJXC_log2.ldf')update sysdatabases set status=0 where name='kmjxc_pro'restore database kmjxc_pro with recoverysp_configure 'allow',0reconfigure with overrideuse kmjxc_prodbcc checkdbEXEC sp_dboption 'kmjxc_pro', 'single user', 'TRUE'dbcc checkdb ('kmjxc_pro',repair_allow_data_loss)-------修复数据库dbcc checkdb ('kmjxc_pro',REPAIR_REBUILD)----------------修复数据库索引EXEC sp_dboption 'kmjxc_pro', 'single user','FALSE'。
SQL数据库置疑解决方案(原因、预防、修复)附图

S Q L数据库置疑解决方案(原因、预防、修复)附图-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANSQL数据库置疑解决方案一、数据库置疑产生的原因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_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是数据库日志文件。
用友软件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)改为要修复的数据库名称,然后点击修复即可。
数据库损坏和置疑修复方法

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

SQl数据库状态为置疑,只读\脱机\紧急模式时的解决办法SQl数据库状态为置疑,只读\脱机\紧急模式时的解决办法2010-05-08 18:44这是SQL2000常遇到的错误,楼主按照以下方法修复,修复完,检查一下数据库是否已完全修复,没完全修复时最低都可导出数据,要用数据库生成一个空库脚本,把修复数据库的数据用DTS导入到新库。
A.建立一个供恢复使用的数据库我们使用默认方式建立一个供恢复使用的数据库(如iBusinessWork)。
可以在SQL Server Enterprise Manager 里面建立。
B.停掉数据库服务器。
C.调整数据库与日志文件.将刚才生成的数据库的日志文件iBusinessWork_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件iBusinessWork_data.mdf。
D.启动数据库服务器。
此时会看到数据库iBusinessWork的状态为“置疑”。
这时候不能对此数据库进行任何操作。
E.设置数据库允许直接操作系统表。
use mastergosp_configure 'allow updates',1goreconfigure with overridegoF.设置iBusinessWork为紧急修复模式update sysdatabases set status=-32768 where dbid=DB_ID('iBusinessWork')关闭打开企业管理器,此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表G.下面执行真正的恢复操作,重建数据库日志文件dbcc rebuild_log('iBusinessWork','E:\Microsoft SQL Server\Data\iBusinessWork_log.ldf')执行过程中,如果遇到下列提示信息:服务器: 消息5030,级别16,状态1,行 1未能排它地锁定数据库以执行该操作。
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)数据库损坏的常规修复处理方法 (1)数据库损坏的灾难性修复方法—BCP处理方案 (2)数据库置疑的修复处理方法 (3)前言Sql Server数据库本身依赖于操作系统、文件读写存储等环境,数据库经常因为操作系统、异常关机、异常终止退出或者SQL Server数据库本身的机制问题均会导致数据库无故损坏,其中数据库损坏的主要原因如下:1.事务日志问题。
比如事务日志文件丢失;事务日志文件在操作过程中被误删;事务日志文件被损坏以及事务日志文件过大,导致硬盘的空间不足等。
2.意外掉电或异常强制关机,造成数据文件损坏,主要数据库正在被读写过程中异常关机。
3.数据库的表被破坏或索引等被破坏,或者数据库的其他对象被破坏或丢失等。
4.删除了数据文件,或者更改了它的名字。
5.硬盘损坏,造成数据和日志文件读写错误。
6.感染病毒或者其他人为因素破坏。
7.其他文件读写、存储等原因。
数据库损坏的常规修复处理方法以商业之星7为例:1.一般数据库的损坏,修复数据库按如下步骤操作:--请在查询分析器中执行下列语句.执行前断开其它所有数据库连接,最好是断开网线--如果不是该数据库名,请将数据库改为要修复的数据库USE masterGo--单用户模式sp_dboption 'hbposv7', 'single user', 'TRUE'go--数据库检查DBCC CHECKDB ('hbposv7')Go--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复--数据库修复DBCC CHECKDB ('hbposv7','repair_rebuild')Go--再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;DBCC CHECKDB ('hbposv6_branch')Go--否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 master
exec 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' /* 关闭单用户模式*/
如果问题依然存在,最笨的一个方法就是新建另一个数据库,把
原数据库各个表的数据导出到新建数据库表中。
下面是修复语句:
补充说明:用上面的六步把数据库置疑的问题解决了,但是数据库表里还有损坏的表,下面是简单修复语句
修复数据库:
在查询分析器里运行:
---检查数据库,dbname 数据库名,注意更换
use kmcyv51
dbcc checkdb --检查表:checktable(’表名’)
如果在最后结果有这样的提示:
CHECKDB 发现了x个分配错误和x 个一致性错误(在数据库'dbname' 中)
使用下面语句简单修复:
sp_dboption 'kmcyv51', 'single user', 'true'
--修复库:下面三句可以反复执行
DBCC CHECKDB ('kmcyv51',repair_fast) --快速修复
dbcc checkdb ('kmcyv51',repair_rebuild) --重建修复
dbcc checkdb ('kmcyv51',repair_allow_data_loss) --有损坏修复命令
use kmcyv51
--修复表
DBCC checktable ('tab_name',repair_fast)
DBCC CHECKTable ('tab_name',repair_rebuild)
DBCC CHECKTable ('tab_name',repair_allow_data_loss)
sp_dboption 'kmcyv51', 'single user', 'false'
再次检查数据库
Use kmcyv51
Dbcc checkdb
如果修复后还存在x个分配错误和x 个一致性错误无法修复,只能找专业的机构修复!
建议将其中档案数据导出,新建一个数据库,将资料导入!。