SQL数据库置疑解决方案(原因、预防、修复)附图

SQL数据库置疑解决方案(原因、预防、修复)附图
SQL数据库置疑解决方案(原因、预防、修复)附图

SQL数据库置疑解决方案

一、数据库置疑产生的原因

1、SQL Server所在分区空间是否够?

数据库文件大小是否达到最大文件限制?

FAT32的格式只支持4G以内的文件。

2、数据库文件损坏或被非正常删除时出现这种情况。

3、病毒防火墙的扫描也会引起数据库置疑。

4、当SQL Server启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文件被其他程序占用,或者遗失,数据库将会被标记为置疑。

5、电脑非法关机也会造成数据库置疑。

6、电脑磁盘有坏道有可能造成数据库置疑。

二、数据库置疑的预防

1、数据库存放的盘符,空间是否够大,经常检查盘符的空间。

2、数据库存放的盘符的格式设置为NTFS格式。

3、进行病毒清除时,尽量把SQL服务停掉,再进行检查。

4、尽量减少非正常关机。

5、建议客户购买后备电源。

页脚内容1

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。下面我们讨论一下如何备份、恢复该数据库。

页脚内容2

卸下数据库:sp_detach_db 'pdm'

连接数据库:sp_attach_db 'pdm','C:\Program Files\Microsoft SQL

Server\MSSQL\Data\pdm_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\pdm_log.ldf' sp_attach_single_file_db 'pdm','C:\Program Files\Microsoft SQL Server\MSSQL\Data\pdm_data.mdf'

2、只有mdf文件的恢复技术

由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。

如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者

sp_attach_single_file_db 可以恢复数据库,但是会出现类似下面的提示信息

设备激活错误。物理文件名'C:\Program Files\Microsoft SQL Server\MSSQL\data\pdm_Log.LDF' 可能有误。

已创建名为'C:\Program Files\Microsoft SQL Server\MSSQL\Data\

pdm_log.LDF' 的新日志文件。

但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也

许上述办法就行不通了。你也许会得到类似下面的错误信息

服务器: 消息1813,级别16,状态2,行1 未能打开新数据库'pdm'。

CREATE DATABASE 将终止。

设备激活错误。物理文件名'd:\pdm_log.LDF' 可能有误。

页脚内容3

怎么办呢?别着急,下面我们举例说明恢复办法。现在我从其他机器上拷贝

回来了数据库文件pdm_Data.MDF到本计算机上,存放到了E盘的一个文件夹里

A.我们使用SQL Server企业管理器建立一个供恢复使用的数据库‘pdm’,

)。

存放在E盘(不要与拷贝回来的数据库放到一个文件夹就行

页脚内容4

B.停掉数据库服务器。

C.将刚才生成的数据库的日志文件pdm_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件pdm_data.mdf。

页脚内容5

D.启动数据库服务器。此时会看到数据库pdm的状态为“置疑”。这时候不能对此数据库进行任何操作。

页脚内容6

E.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。

页脚内容7

也可以用‘SQL查询分析器’执行如下语句来实现。use master

go

sp_configure 'allow updates',1

go

reconfigure with override

go

页脚内容8

F.设置pdm为紧急修复模式,运行‘SQL查询分析器’执行如下语句来实现。

update sysdatabases set status=-32768 where dbid=DB_ID('pdm')

页脚内容9

此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表

G.下面执行真正的恢复操作,重建数据库日志文件

dbcc rebuild_log('pdm','E:\pdm_log.ldf')

执行过程中,如果遇到下列提示信息:

页脚内容10

服务器: 消息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使用”。此时可以访问数据库里面的用户表了。

H.验证数据库一致性(数据库较大时会耗费一些时间,此步可省略)

页脚内容11

dbcc checkdb('pdm')

一般执行结果如下:

CHECKDB 发现了0 个分配错误和0 个一致性错误(在数据库'pdm' 中)。DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。

I.设置数据库为正常状态

sp_dboption 'pdm','dbo use only','false'

如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。

页脚内容12

J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。

当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成

sp_configure 'allow updates',0

页脚内容13

go

reconfigure with override

go

会出现以下信息,此时就可以正常使用数据库了。

页脚内容14

SQL数据库置疑的解决方法

SQL2000数据库置疑的解决方法 首先,在任何操作之前,必须要备份数据库(重要) 一、分离数据库 1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 2、展开服务器组,然后展开服务器,选中要分离的数据库 3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口 4、点击确定,该选定的数据库就被分离。 5.分离后,把原数据库里面.MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标盘下,例:D盘下 注意事项,只有“使用本数据库的连接”数为0时,该数据库才能分离。所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。

二、附加数据库 1、在附加数据库之前,首先要移动数据库文件 在附加数据库之前,您必须将与数据库关联的 .MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标硬盘下,或是同一服务器的不同硬盘目录下。这两个文件一般位于C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。 2、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 3、展开服务器组,然后展开服务器 4、右击"数据库",然后选择“所有任务》附加数据库”,弹出窗口 5、输入要附加的数据库的MDF名称。如果不确定文件位于何处,单击浏览("...")搜索。若要确保指定的 MDF 文件正确,请单击"验证"。在"附加为"框内,输入数据库的名称。数据库名称不能与任何现有数据库名称相同。指定数据库的所有者 6、单击"确定"按钮。新附加的数据库的数据库节点即创建在"数据库"文件夹中

数据库置疑_及修复

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' /* 关闭单用户模式*/ 如果问题依然存在,最笨的一个方法就是新建另一个数据库,把 原数据库各个表的数据导出到新建数据库表中。

SQL server 2008 数据库置疑的处理办法

SQL server 2008 数据库置疑的处理办法 1 把问题数据库备份后直接删除 停掉SQLSERVER服务,把服务器上出问题的数据库, 假设名称为ErrorDB的数据库文件及日志文件备份到其他目录,然后直接将其删除,把其数据库文件及日志文件也删除 2 新建同名数据库 启动SQLSERVER服务,新建同名数据库ErrorDB,文件目录和日志和原来一致 3 用备份的数据库文件替换新的数据库文件 停掉SQLSERVER服务,把备份的数据库文件替换新的数据库文件(只替换数据库文件,不替换日志文件) 启动SQLSERVER服务,打开数据库,这时数据库应该是不能访问的 -------------------设置应急模式、单用户模式、检查修复数据,取消单用户模式 ---------------------- 4 将数据库设置为应急状态 alter database ErrorDB set emergency 执行后,为了保险起见,重新停止、开启的SQLSERVER服务 再打开数据库,已经可以看到里面的内容了,如表,视图,存储过程等 数据库名称后有紧急标志,能看到数据库结构,但无法进行备份等操作 5 将数据库设置为单用户模式 ALTER DATABASE ErrorDB SET SINGLE_USER 6 对数据库进行检查修复 dbcc checkdb(EIMSDb,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(EIMSDb,REPAIR_REBUILD) 操作后,仍然停止启动SQLSERVER服务(不确定是否需要,我只是为了想无干扰查看执行后的数据库状况)重新打开数据库,已经是正常状态了,没有应急提示了 7 取消单用户模式 exec sp_dboption EIMSDb, N'single', N'false'

SQL数据库置疑解决方案(原因分析、预防措施、修复方法)附图

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 Files\Microsoft SQL Server\MSSQL\Data\pdm_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\pdm_log.ldf'

sql数据库质疑的一般处理命令

寒山sql数据库修复中心https://www.360docs.net/doc/654851676.html,/ 设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服 务器,按右键,选择"属性",在"服务器设置"页面中将"允许对系统目录直接修改"一项选中。也可以 使用如下语句来实现 */ use ais09 go sp_configure 'allow updates',1 go reconfigure with override go sp_dboption 'ais09','single user','true' go /*设置为紧急修复模式(操作数据库切记切换为master)1077936153/4194328(正常) -32768(只读\脱机\紧急模式) 32768(紧急模式)*/ /*select * from sysdatabases*/ update sysdatabases set status=-32768 where dbid=DB_ID('ais09') go /*执行真正的恢复操作,重建数据库日志文件*/ dbcc checkdb('ais09','REPAIR_REBUILD')/*REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD */ go sp_dboption 'ais09','single user','false' go /*设置数据库为正常状态*/ sp_dboption 'ais09','dbo use only','false' go /*最后一步,我们要将步骤E中设置的"允许对系统目录直接修改"一项恢复。因为平时直接操作系统表 是一件比较危险的事情*/ sp_configure 'allow updates',0 go reconfigure with override go 二种模式: use ais19 exec sp_dboption ais19,'single user',true dbcc checkdb('ais19','repair_rebuild') exec sp_dboption ais19,'single user',false 三种模式: 1. DBCC CHECKDB 重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进

金蝶SQL数据库置疑解决方法

解决由于sql2000日志文件引起的“置疑”。 日志有错误--------重新附加提示日志有错误。 日志文件丢失-----丢失了.ldf文件,只有.mdf文件的数据库重建。 步骤: 一、备份“置疑”数据库的数据文件,因为日志文件.ldf出错,可以只备份.mdf文件。 二、打开企业管理器(SQL Server Enterprise Manager),删除“置疑”数据库,如果提示删除错误,可以重启数据库服务器,然后再试。 三、在企业管理器中,新建同名数据库(假如数据库为test),注意建立的数据库名称,还有数据文件名要保持和原数据库一致。 四、停止数据库服务器。 五、将刚才新建数据库生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库.mdf 文件覆盖刚才生成的数据库数据文件test_data.mdf。 六、启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。 七、设置数据库允许直接操作系统表。此操作可以在企业管理器 (SQL Server Enterprise Manager)里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。 use master go sp_configure 'allow updates',1 go reconfigure with override go 八、设置test为紧急修复模式。 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在企业管理器(SQL Server Enterprise Manager)里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表。 九、下面执行真正的恢复操作,用dbcc rebuild_log命令来重建数据库日志文件(重建路径根据你实际的数据库路径来)。

SQL SERVER数据库置疑后恢复步骤

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 override update sysdatabases set status=32768 where name='yourdata' 4.重建日志文件。 dbcc rebuild_log('yourdata','your data path\newdata_log.ldf') 5.取消紧急模式。

数据库置疑修复

步骤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,

处理数据库置疑的方法

处理数据库置疑的方法 先分离数据库 企业管理器--右键置疑的数据库--所有任务--分离数据库 然后备份你的置疑数据库的文件,再按下面的步骤处理: 1.新建一个同名的数据库 2.再停掉sql server 3.用置疑数据库的文件覆盖掉这个新建的同名数据库,只覆盖mdf文件,日志文件不要覆盖 4.再重启sql server 5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,打开查询分析器执行下面的语句(注意修改其中的数据库名) 重建日志文件,经过修复后数据就可以正常分离并附加了,语句中“C:\置疑的同名数据库名_Log.ldf”是重建日志日志文件存放路径, 在重建日志后,最好将数据库分离并将重新创建的日志文件拷贝到数据库文件所在目录,再重新进行附加。 --重建日志文件,修复损坏的日志 USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的同名数据库名' Go dbcc rebuild_log('置疑的同名数据库名','C:\置疑的同名数据库名_Log.ldf') GO update sysdatabases set status =28 where name='置疑的同名数据库名' Go sp_configure 'allow updates', 0 reconfigure with override Go 6、数据库修复后还需要进行数据库检测,看是否存在一些错误,数据库检测需要用DBCC CHECKDB命令,如下: DBCC CHECKDB('置疑的同名数据库名')

SQL 2000置疑库的修复方法

数据库置疑如何修复 ? ?| ?浏览:748 ?| ?更新:2014-05-29 11:06 注:请将下文中的iccard 替换成相应软件的数据库名。 此处以某进销存软件为例说明: 1.停止SQL Server的服务,备份SQL Server安装目录下的data子目录一个 iccard_log.ldf(也有可能非此命名), 同时查看磁盘 2.启动SQL Server服务(如已停止),创建一个新的数据库,命名为空间是否有足 够的空间;原来数据库的名字。 3.停止SQL Server 4.把老数据库的MDF文件(iccard_data.mdf)替换 新数据库的相应的MDF文件, 并把LDF文件(iccard_log.ldg)删除。 5.重新启动SQL Server服务,然后运行如下命令: Use Master

go sp_configure 'allow updates', 1 reconfigure with override go begin tran update sysdatabases set status = 32768 where name = 'iccard' --Verify one row is updated before committing commit tran go 6.停止SQL然后重新启动SQL Server服务,然后运行如下命令(更换日志文件路径地址): use master go DBCC TRACEON(3604) DBCC REBUILD_LOG

('iccard', 'c:Program FilesMicrosoft SQL ServerMSSQLDataiccard_log.ldf') --在这里,请输入你的数据库的路径 Go 7.停止SQL然后重新启动SQL Server服务,然后运行: use master go update sysdatabases set status = 8 where name = 'iccard' go sp_configure 'allow updates', 0 reconfigure with override go 8.运行dbcc checkdb(iccard) 检查数据库的完整性 9.修复数库 --请在查询分析器中执行下列语句.执行前断开其它

MSDB数据库置疑的解决方法

MSDB数据库置疑的解决方法 问题:我的SQL Server 2000的MSDB数据库,因为不正常关机,造成了置疑状态,请问采用什么方法能够弥补? 解决方法一:你可以采用以下的代码进行修复: USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb' Go sp_dboption 'msdb', 'single user', 'true' Go DBCC CHECKDB('msdb') Go update sysdatabases set status =28 where name='msdb' Go

sp_configure 'allow updates', 0 reconfigure with override Go sp_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,选择恢复数据库,将刚

sqlserver2000 数据库置疑的4种解决方法

sqlserver2000 数据库置疑的4种解决方法 方法一: 1.停止SQL Server的服务,然后备份MS SQL Server的安装目录下的\data子目录. 注意:整个目录目录备份或只备份data目录下置疑数据库的两个文件,一个数据文件dbname_data.mdf,一个dbname_log.ldf(也有可能非此命名),同时查看磁盘空间是否有足够的空间; 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是否恢复。 注:请将dbname 换成你的数据库名称. 方法二 1.查看磁盘空间,保证存放数据库的磁盘有足够的剩余空间; 2.打开SQL Server的查询分析器(Query Analyzer),以用户sa 登录; 3.输入如下指令后点工具栏上的绿色箭头运行(快捷键F5),运行完毕后退出此工具. use master go sp_resetstatus dbname go 4.停止SQL Server 的服务,再重新启动SQL Server 服务. 5.打开SQL Server 的查询分析器(Query Analyzer),以用户sa 登录。输入如下指令后点工具栏上的绿色箭头运行,运行完毕后退出此工具: use master go DBCC DBRECOVER (dbname) go 6.打开SQL Server 的企业管理器(Enterprise Manager),查看database下的dbname是否恢复。注:请将dbname 替换为你的数据库名称. 方法三 如上述两种方法都不能恢复,或出现故障后在SQL Server的企业管理器中的数据库节点下看不到你的数据库,表示你的数据库出现较大的错误或故障,请按下述步骤操作尝试恢复. 1.停止SQL Server 服务. 2.备份数据库文件

sql数据库质疑的修复办法

数据库质疑的修复办法 A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager 里面建立。 B.停掉数据库服务器。 C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf 文件覆盖刚才生成的数据 库数据文件test_data.mdf。 D.启动数据库服务器。此时会看到数据库test的状态为"置疑"。这时候不能对此数据库进行任何*作。 E.设置数据库允许直接*作系统表。此*作可以在SQL Server Enterprise Manager 里面选择数据库服 务器,按右键,选择"属性",在"服务器设置"页面中将"允许对系统目录直接修改"一项选中。也可以 使用如下语句来实现。 use master go sp_configure 'allow updates',1 go reconfigure with override go F.设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在SQL Server Enterprise Manager里面看到该数据库处于"只读\置疑\脱机\紧急模式"可以 看到数据库里面的表,但是仅仅有系统表 G.下面执行真正的恢复*作,重建数据库日志文件 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就可以了。 正确执行完成的提示应该类似于: 警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致

MSSQL数据库置疑的说明及修复方法

MSSQL数据库置疑的说明及修复方法 ?M SSQL 官方对suspect(‘置疑’,SQL2005中文为‘可疑’)状态的解释:“至少主文件组可 疑或可能已损坏。在SQL Server 启动过程中无法恢复数据库。数据库不可用。需要用户另外执行操作来解决问题。” ?S QL Server 数据库置疑通常由于以下几种情况导致: 1、因SQL服务意外退出导致数据库置疑,例如突然断电导致数据库日志文件损坏,下次启动后数据库变 为置疑状态。 2、数据库文件所在的磁盘分区没有可用空间,导致恢复数据库的操作不能完成,数据库变为置疑状态。 3、数据库文件组已满,这种情况通常发生在MSDE或SQL 2005 Express,因为它们对数据库文件限制了 大小,不超过2G或4G;当单个的数据库文件接近2G或4G很容易出现数据库置疑的情况; 另外,当数据库文件所在磁盘分区格式为FAT32时,也有可能出现这种情况,FAT32格式的磁盘分 区单个文件不能超过4G,当单个的数据库文件接近4G很容易出现数据库置疑的情况。 4、数据库文件设置为不自动增长,或设置为自动增长但限制了文件大小。 5、此外,其它非法的操作也有可能导致数据库置疑。 ?以下提供几种解决V3数据库置疑的办法: 解决客户那里出现数据库置疑通常使用第一或第二种方法,解决问题时请根据实际情况处理 提示:按以下方法修复数据库后,还需要用户密切观察一下V3服务器是否能正常运行、服务器是否 有出错;查看服务器是否有出错可以右击服务管理器-‘工具’-‘日志’,在弹出的事件日志窗口 中,查看应用程序日志中是否有OSERVER3的错误信息;如果有出错信息可能会出现数据收集不完整 等问题,请即时联系我们解决。 问题一:SQL 2005 数据库置疑的解决方法 SQL SERVER 2005,数据库置疑,可以尝试通过以下办法解决: --第一步:新建查询,执行以下SQL 语句; USE master GO

用友软件SQL数据库置疑修复文档

用友软件SQL数据库置疑修复说明文档 一,数据库置疑产生的原因 二,数据库置疑的预防 三,数据库置疑的修复

一,数据库置疑产生的原因 1、SQL Server所在分区空间是否够?数据库文件大小是否达到最大文件限制? FAT32的格式只支持四G以内的文件 2、数据库文件损坏或被非正常删除时出现这种情况 3、病毒防火墙的扫描也会引起数据库置疑 4、当SQL Server启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文 件被其他程序占用,或者遗失,数据库将会被标记为置疑。 5、电脑非法关机也会造成数据库置疑 6、电脑磁盘有坏道有可能造成数据库置疑 二,数据库置疑的预防 1、数据库存放的盘符,空间是否够大,经常检查盘符的空间 2、数据库存放的盘符的格式设置为NTFS格式 3、进行病毒清除时,尽量把SQL服务停掉,再进行检查 4、尽量减少非正常关机 5、建议客户购买后备电源 6、给客户实施软件之后一定要做好自动备份 7、建议客户每隔一定时间手动备份一次 三,数据库置疑的修复 1,点击后台登录时,如果提示如下图片就有可能表示数据库置疑了

2,需要确认检查数据库置疑,打开企业管理器中的数据库目录,如下图显示表示置疑 下面所有修复置疑的语法,在没有特别提到时,默认数据库都请选择(Master)数据库) 3,修复置疑(必须在SQL的查询分析器中才能进行数据修复置疑工作) A、打开查询分析器,当数据置疑之后在查询分析器中是看不到置疑的数据 库名称的,所以进入查询分析器之后,所选数据库默认(Master)数据库即可。(复制下面置疑语法到查询分析器中执行。 --修复数据库置疑的语法 SP_configure 'allow update',1 go RECONFIGURE WITH OVERRIDE go update sysdatabases set status=-32768 where name='zmsoftpos_cs'--数据库名称 go dbcc rebuild_log('zmsoftpos_cs','D:\zmsoftpos_cs_log')--重新建立日志 Go update sysdatabases set status=26 where name='zmsoftpos_cs' Go Sp_configure 'allow update',0 Go Reconfigure with override GO

SQL Server数据库置疑的处理方法

SQL Server数据库错误9003(LSN无效)的处理方法 万华数据 国内一些ERP、财务软件一般后台都使用SQL Server的数据库,SQL Server作为一个中大型数据库是不应该在桌面系统上运行的,小规模企业一般不使用专用服务器,大部分直接使用XP系统+桌面引擎MSDE作为SQL数据库的后台服务。这种方案当然就谈不上什么稳定性和可靠性了,最糟的是在死机、重启或意外掉电后数据库会出现打不开的现象,其中错误9003:LSN(xx:xx:x)无效是最常见的问题。 这种情况是数据库的日志文件(LDF)数据不同步造成的,可以根据数据库MDF文件重建日志文件修复。 以下是详细步骤,有颜色标注的部分应该按本机的实际名称进行修改。 假设损坏的数据库名称是MYDB_001,对应的数据库名称是MyDB_Data.MDF,日志文件是MyDB_Log.LDF,数据库所在文件夹为D:\MYDATA\; 1、先把损坏的数据库对应的文件MyDB_Data.MDF和MyDB_Log.LDF备份到别的地方; 2、在SQL Server和企业管理器中创建一个与损坏数据库同名的数据库,对应的数据库 文件名称也是MyDB_Data.MDF和MyDB_Log.LDF; 3、停止SQL Server服务; 4、删除第2步新建数据库产生的MyDB_Log.LDF文件; 5、用损坏的数据库数据文件MyDB_Data.MDF覆盖第2步新建数据库产生的 MyDB_Data.MDF文件

6、启动SQL Server服务; 7、进入企业管理器,刷新数据库状态,此时数据库MYDB_001状态为“置疑”; 8、在SQL Server服务器属性中设置SQL Server数据库服务器“允许对系统目录直接修改” 9、从SQL企业管理器的“工具”菜单启动“SQL 查询分析器”; 10、输入以下代码并运行使MYDB_001数据库进入紧急修复模式: update sysdatabases set status=-32768 where dbid=DB_ID('MYDB_001') 这句语句执行后,刷新企业管理器,MYDB_001数据库的状态变成“只读\置疑\脱机\紧急模式”。

SQL Server2000数据库置疑的解决方法

6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办 法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了。 SQL Server数据库文件恢复技术: SQL Server数据库备份有两种方式,一种是使用BACKUP DATABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式。下面将主要讨论一下后者的备份与恢复。本文假定您能熟练使用SQL Server Enterprise Manager(SQL Server 企业管理器)和SQL Server Quwey Analyser(SQL Server查询分析器) 1、正常的备份、恢复方式 正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。 卸下数据库的命令: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是数 据库日志文件。 例子: 假设数据库为test,其数据文件为test_data.mdf,日志文件为test_log.ldf。下面 我们讨论一下如何备份、恢复该数据库。 卸下数据库:sp_detach_db 'test' 连接数据库:sp_attach_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf'

用友软件数据库置疑修复办法

用友软件数据库置疑修复办法 https://www.360docs.net/doc/654851676.html, 数据库置疑和一致性错误解决办法 软件无法登录,提示登录失败或者无法连接到数据库,打开SQL数据库企业管理器,发现在UFDATA_001_2011数据库后面有‘置疑’字样,那么SQL数据库置疑是什么原因产生的呢?又该如何处理解决呢? 一、原因分析 SQL数据库置疑是数据库日志文件LDF错误或异常造成的,一般有以下几种原因引起的: 1、突然断电,非正常关机,造成日志和事务错误; 2、硬件问题,特别是硬盘问题,造成日志和数据文件错误; 3、硬盘的空间不够,如日志文件过大。 二、SQL数据库置疑解决办法 1、首先停止SQLSERVER服务,把软件安装目录UFSMART下admin中置疑的帐套数据库源文件MDF和LDF备份出来到其他地方去,因为修复不一定成功。 2、将置疑数据库的ufdata.ldf文件删除或者重命名为ufdata1.ldf,然后启动SQL数据库服务。将以下脚本语句复制到查询分析器中, 如下为修复数据库置疑脚本(账套号:001年度:2011为例)。 说明:如数据库存放路径为:D:\UFSMART\Admin\ZT001\2011,执行脚本前先停止数据库服务,然后删除此路径下的ufdata.ldf文件,再启用数据库服务执行脚本。 usemaster go sp_configure'allowupdates',1

go reconfigurewithoverride go updatesysdatabasessetstatus=-32768wheredbid=DB_ID('UFDATA_001_201 1') go dbccrebuild_log('UFDATA_001_2011','D:\UFSMART\Admin\ZT001\2011\UF DATA.LDF') go sp_dboption'UFDATA_001_2011','dbouseonly','false' go sp_configure'allowupdates',0 go reconfigurewithoverride go 3、执行完置疑修复脚本后,如上图提示,数据库'UFDATA_001_2011'的日志已重建,这表示修复置疑成功,如果没有这个提示,则可能是无法修复。到SQL 企业管理器中确认发现数据库UFDATA_001_2011后面的‘置疑’字样已经没有了。

SQL数据库置疑修复

SQL数据库置疑修复说明文档 一,数据库置疑产生的原因 二,数据库置疑的预防 三,数据库置疑的修复

一,数据库置疑产生的原因 1、SQL Server所在分区空间是否够?数据库文件大小是否达到最大文件限制? FAT32的格式只支持四G以内的文件 2、数据库文件损坏或被非正常删除时出现这种情况 3、病毒防火墙的扫描也会引起数据库置疑 4、当SQL Server启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文 件被其他程序占用,或者遗失,数据库将会被标记为置疑。 5、电脑非法关机也会造成数据库置疑 6、电脑磁盘有坏道有可能造成数据库置疑 二,数据库置疑的预防 1、数据库存放的盘符,空间是否够大,经常检查盘符的空间 2、数据库存放的盘符的格式设置为NTFS格式 3、进行病毒清除时,尽量把SQL服务停掉,再进行检查 4、尽量减少非正常关机 5、建议客户购买后备电源 6、给客户实施软件之后一定要做好自动备份 7、建议客户每隔一定时间手动备份一次 三,数据库置疑的修复 1,点击后台登录时,如果提示如下图片就有可能表示数据库置疑了

2,需要确认检查数据库置疑,打开企业管理器中的数据库目录,如下图显示表示置疑 下面所有修复置疑的语法,在没有特别提到时,默认数据库都请选择(Master)数据库) 3,修复置疑(必须在SQL的查询分析器中才能进行数据修复置疑工作) A、打开查询分析器,当数据置疑之后在查询分析器中是看不到置疑的数据 库名称的,所以进入查询分析器之后,所选数据库默认(Master)数据库即可。(复制下面置疑语法到查询分析器中执行。 --修复数据库置疑的语法 SP_configure 'allow update',1 go RECONFIGURE WITH OVERRIDE go update sysdatabases set status=-32768 where name='zmsoftpos_cs'--数据库名称 go dbcc rebuild_log('zmsoftpos_cs','D:\zmsoftpos_cs_log')--重新建立日志 Go update sysdatabases set status=26 where name='zmsoftpos_cs' Go Sp_configure 'allow update',0 Go Reconfigure with override GO

相关主题
相关文档
最新文档