食通天SQL SERVER数据库置疑及修复

合集下载

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

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是数据库日志文件。

数据库置疑_及修复

数据库置疑_及修复

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

SQLServer2000数据库置疑的解决方法

SQLServer2000数据库置疑的解决方法

SQLServer2000数据库置疑的解决方法sql2000中MSDB数据库置疑状态的解决方法问题:我的SQL Server 2000的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。

SQL数据库置疑的解决方法

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、单击"确定"按钮。

新附加的数据库的数据库节点即创建在"数据库"文件夹中重启双机1.此时数据库分离,附加完成,必须重启一次双机修复置疑1,双机重启后,数据库置疑下面所有修复置疑的语法,在没有特别提到时,默认数据库都请选择(Master)数据库)2,修复置疑(必须在SQL的查询分析器中才能进行数据修复置疑工作)A、打开查询分析器,当数据置疑之后在查询分析器中是看不到置疑的数据库名称的,所以进入查询分析器之后,所选数据库默认(Master)数据库即可。

sql server数据库被置疑解决方法(The SQL Server database is the solution to doubt)

sql server数据库被置疑解决方法(The SQL Server database is the solution to doubt)

sql server数据库被置疑解决方法(The SQL Server database is thesolution to doubt)First, make sure that you have backed up the.Mdf and.Ldf files.2. create a database with the same name in SQL Server, and then stop the SQL Server service.3. overwrite the.Mdf and.Ldf files of the new database with the original.Mdf and.Ldf files.4. restart the SQL Server service, which should see the database in doubt (Suspect) state.5. in the SQL query analyzer, execute the following command to allow updating of the system tables:Use masterGoSp_configure 'allow updates', 1Reconfigure with overrideGo6. place this database as an emergency mode:Update, sysdatabases, set, status = 32768, where, name='db_name'Go7. check the errors in the database using the DBCC CHECKDB command:DBCC CHECKDB ('db_name')GO8. if the DBCC CHECKDB command fails, go to the tenth step, or you will first set the database in a single user mode, and then try to fix it:Sp_dboption'db_name',' single user ',' true 'DBCC CHECKDB ('db_name', REPAIR_ALLOW_DATA_LOSS)GOIf the DBCC CHECKDB ("db_name", "REPAIR_ALLOW_DATA_LOSS") command is prompted to indicate that the database is not in a single user mode, restart the SQL Server service, and then proceed with the attempt.9. if the DBCC CHECKDB ('db_name', REPAIR_ALLOW_DATA_LOSS) command fails, go to the tenth step, otherwise the database error will be repaired successfully:Rerun the DBCC CHECKDB ('db_name') command to make sure there are no errors in the database.Clear the query status of the database:sp_resetstatus'db_name'Clear the single user mode state of the database:sp_dboption'db_name',' single user ',' false 'Restart the SQL Server service and, if everything is OK, the database has been successfully restored.10. if the above steps do not solve the problem, please refer to the document in the attached file and try to restore the data in the database by rebuilding the transaction log.If you have only MDF files, the problem is more complex, and we need to rebuild the transaction log directly:1. create a database with the same name in SQL Server, and then stop the SQL Server service.2. overwrite the new.Mdf file with the original LDF file and delete the log file (.Ldf).3. start the SQL Server service and set the database as an emergency mode (ibid.: steps 5 and 6).4. stop and restart the SQL Server service.5. perform the following commands to rebuild the database log file: (here is an example that you will need to use your actual database name)DBCC REBUILD_LOG ('cas_db','D:\cas_db\cas_db_Log.LDF')6. reset the database to a single user mode.The Sql Server database is the solution to doubtEnvironment WIN2000, SQL, server2kProblem: when a database is generally updated, queries are suddenly "doubted" and cannot be used any moreYou can't solve the problem by dealing with it yourself:1, close the SQL Server database, the corresponding database.Mdf.Ldf file moved to other directories, delete the original database2. Start the SQL Server database and create a new database with the same name,3, close the SQL Server database, with the original database.Mdf.Ldf file overwrite new database corresponding file. The problem still exists, it doesn't work.Search for information and solve problems through results online:1, close the SQL Server database, will be questioned database file (.Mdf.Ldf) copy back up.2. Open the SQL Server database and create a new database with the same name,3, close the SQL Server database and overwrite the new database's same name file with the backup.Mdf file4. Open the SQL Server database and execute the following statement in the query analyzer, allowing direct modification of the system directoryUse masterGoSp_configure,'allow, updates', 1GoReconfigure with overrideGoUpdate, sysdatabases, set, status=-32768, where, dbid=DB_ID ('newdb')5. Rebuild the new database logDBCC rebuild_log ('newdb','C:\Program, Files\Microsoft, SQL, Server\MSSQL\Data\newdb_log.ldf')With this step in progress, you may find that the data is ina read-only / offline / state, and proceed to the following operation6, DBCC checkDBCC CHECKDB ('newdb')When you go to this section, you may find that there are errors. You can look at some of the data tables of the prompt. If it is not a critical table, you can let go first.7, set the database as a normal stateSp_dboption,'newdb','dbo, use, Only','false'8, close the database directly modify permissions, do not allow direct modification of the system directorySp_configure,'allow, updates', 0GoReconfigure with overrideGoOf course, my data did not recover at the first step. I've done it all over again, and my database has been restored to normal, and I feel very happy.Total feel, personal feeling, the database was questioned,should be because the database log is too large, the database log has reached 15G. But I'm not sure yet. Keep studying.Come on.SQL2000 database query solution 2009-03-21 09:12 follows the following steps:1. create a new database with the same name2. stop SQL server again3. overwrite the new database file with the same name by using the backup database MDF file4. restart SQL Server5., when you open the enterprise manager, the new database of the same name will appear doubt, first ignore, execute the following statement (pay attention to modify the database name)USE MASTERGOSP_CONFIGURE,'ALLOW, UPDATES', 1, RECONFIGURE, WITH, OVERRIDEGO"UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='database name'GoSp_dboption 'database name', ''single user' ',''true''GoDBCC CHECKDB ('database name')Go"Update sysdatabases set status =28 where name='database name'GoSp_configure,'allow, updates', 0, reconfigure, with, overrideGoSp_dboption 'database name', ''single user' ',''false''GoDatabase query recovery classic/********************************************************** ******** this kind of fault is usually caused by disk read and write problems.* the following statement is the SQL that fixes the database of the headquarters. If you need to fix the database of the segment, change'hbposv5'to'hbposv5_branch'* supermarket star system is implemented directly* shortcut, Invoicing series, pleasechange'hbposv5'to'isd2001v3', and if it is subsection, change to'isd2001v3_branch'* business series, please change'hbposv5'to'isd2001v4', if the segment, changed to'isd2001v4_branch'*********************************************************** *******/Please perform the following statements in the query analyzer. Disconnect all other database connections before execution. It's better to disconnect the network cableUSE masterGoSingle user modeEXEC, sp_dboption,'hbposv5','single, user','TRUE'Go-- database checkingDBCC CHECKDB ('hbposv5')Go- if you return the result with a red prompt text that indicates an error in the database, you need to fix it-- database repairDBCC CHECKDB ('hbposv5', repair_rebuild)GoAgain, database check, and if there is no red prompt text in the return result, the repair is successful;DBCC CHECKDB ('hbposv5')GoOtherwise it means higher levels of repair are required. Try changing the'repair_rebuild'of the repair statementto'repair_allow_data_loss', and then check the database again.- if there are any errors that have not been repaired,Before you quit, be sure to execute the following statement and return to the multi-user modeEXEC, sp_dboption,'hbposv5','single, user','FALSE'GoDatabase query processingStep 1:Create a new database named as the name of the original database.Step 2:Stop SQL ServerStep 3:Replace the old database's MDF file with the corresponding MDF file of the new database and delete the LDF file.Step 4:Restart the SQL Server service, and then run the following command:Use MasterGoSp_configure,'allow, updates', 1Reconfigure with overrideGoBegin tranUpdate, sysdatabases, set, status = 32768, where, name='hbposv5'--Verify, one, row, is, updated, before, committingCommit tranStep 5:Stop SQL and restart the SQL Server service,Then run the following command:DBCC TRACEON (3604)DBCC REBUILD_LOG('db_name','c:\mssql7\data\hbposv5_log.ldf')GoStep 6:Stop SQL, then restart the SQL Server service, and then run: Use masterUpdate, sysdatabases, set, status = 8, where, name ='hbposv5'GoSp_configure,'allow, updates', 0Reconfigure with overrideGoStep 7:Run DBCC CHECKDB (hbposv5) to check the integrity of the databaseNote: all must be replaced with the actual database name.。

SQL置疑数据库处理方法

SQL置疑数据库处理方法

SQL置疑数据库处理方法:1.新建一个同名的数据库。

2.停掉sql server(注意不要分离数据库)。

3.用原数据库(质疑的那个)的数据文件覆盖掉这个新建的数据库文件。

(以上1、2、3步骤是针对把质疑数据库文件放到另外的计算机处理的情况,如果就在本机处理,可以省略,但在处理前一定要注意备份数据库文件。

)4.再重启sql server。

5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)。

USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS =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'Go6.完成后一般就可以访问数据库中的数据了;这时,数据库本身一般还要问题,解决办法是利用数据库的脚本创建一个新的数据库,并将数据导进去就行了,或者把数据库导成一个新库来代替旧库,先把数据导出,然后重启计算机后再导入就OK了。

步骤如下:企业管理器--右键你的数据库--所有任务--导出数据(导入数据)--目标标数据库选择新建--选择"在两个sql数据库之间复制对象和数据"--把"包含扩展属性"选上,其他的根据需要选择--最后完成。

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

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

s q l s e r v e r2000数据库置疑的4种解决方法本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.Marchsqlserver2000 数据库置疑的4种解决方法方法一:1.停止SQL Server的服务,然后备份MS SQL Server的安装目录下的\data 子目录.注意:整个目录目录备份或只备份data目录下置疑数据库的两个文件,一个数据文件,一个(也有可能非此命名),同时查看磁盘空间是否有足够的空间;2.启用SQL Server的服务。

打开查询分析器(Query Analyzer)的工具,以用户sa登录;3.输入如下指令后点工具栏上的绿色箭头运行(快捷键F5),use mastergosp_resetstatus dbnamego4.运行完毕后退出此工具,停止SQL Server的服务.5.在MS SQL Server的安装目录下,有一个\data子目录,其中存放数据文件,包括SQL Server和本系统的数据文件,删除置疑数据库的日志文件(也有可能非此命名).6.启动SQL Server的服务.7.打开企业管理器(Enterprise Manager)的工具,查看数据库(database)节点下的dbname是否恢复。

注:请将 dbname 换成你的数据库名称.方法二1.查看磁盘空间,保证存放数据库的磁盘有足够的剩余空间;2.打开SQL Server的查询分析器(Query Analyzer),以用户 sa 登录;3.输入如下指令后点工具栏上的绿色箭头运行(快捷键F5),运行完毕后退出此工具.use mastergosp_resetstatus dbnamego4.停止SQL Server 的服务,再重新启动SQL Server 服务.5.打开SQL Server 的查询分析器(Query Analyzer),以用户 sa 登录。

sql server 数据库质疑(挂起)修复步骤

sql server 数据库质疑(挂起)修复步骤

数据库修复步骤
1.将已破坏的老数据库更名如Baddb_Data.Mdf ==>Baddb_Data.Md_ ,并在原来位置新建一同
名数据库如Baddb_Data.Mdf .
2. 停止SQL, 将新数据库更名(Baddb_Data.Mdf ==> Baddb_Data.Md2),
待修复老数据库更名为原先名称Baddb_Data.Md_ ==> Baddb_Data.Mdf
3.启动SQL , 并进入查询分析器中, 执行如下命令:
USE MASTER
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = 'Baddb'
4. 把LDF文件改名,再执行
DBCC REBUILD_LOG ('Baddb', 'E:\posdb\Baddb_Log.LDF' )
5. 恢复数据库紧急模式
update sysdatabases set status = 0 where name = 'Baddb'
6. 执行
restore database Baddb WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override
7. 检查数据库看看有没有错误, 应该可以看到数据了
DBCC CHECKDB ('Baddb')
如以上还是不行,试把数据库设为紧急模式,再把数据导出到一个新的数据库(如有坏区)。

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

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。

SQL Server数据库故障及修复方法

SQL Server数据库故障及修复方法

SQL Server数据库故障及修复方法
对于计算机专业的大学生来说,SQL Server数据库肯定不陌生吧,SQL Server数据库作为目前使用相对广泛的数据库管理系统,被很多企业所使用,给大家带来了很多的方便。

对于企业来说,SQL Server数据库的稳定性至关重要,一旦发生问题,将会带来不可估量的损失。

当SQL Server数据库出现故障时,大家该如何解决问题呢?
SQL Server数据库常见故障:
1)SQL数据库置疑
2)SQL数据库无法附加或附加报错
3)SQL数据表查询错误
4)MDF文件损坏
5)SQL数据库备份文件损坏
6)SQL数据库被标记为可疑
7)SQL数据库被误删除
8)分区被格式化,SQL数据库被恢复后还是坏的
9)一致性错误
10)错误823等等
从上面大家可以了解到,SQL Server数据库的常见故障非常多,很可能用户一个错误操作就可能造成SQL Server数据库损坏或数据丢失,当出现这些问题时,用户不要盲目对数据库进行任何操作,因为用户的错误操作可能会造成数据库进一步损坏,对于不确定的情况,用户应该将数据库交给那些专业的数据库恢复人才进行恢复,这样才能保证数据库的安全。

数据库损坏和置疑修复方法

数据库损坏和置疑修复方法

数据库损坏和置疑修复方法目录前言 (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'再试,之后再次检查数据库。

SQL数据库置疑解决方法

SQL数据库置疑解决方法

SQL数据库置疑解决方法
一、SQL数据库置疑
1.数据库安全问题
为了保护数据库,需要确保数据库中的信息不被恶意攻击、篡改或盗窃,从而避免造成不可挽回的损失。

2.数据库可靠性问题
可靠性是指数据库系统必须在不同的时间片段可靠运行,即使是在发生系统故障的情况下,用户也能够一直获取服务。

只有数据库系统可靠性良好,才能够实现数据库系统的高安全性要求。

3.数据库性能问题
要满足用户的需求,必须保证数据库服务器能够达到最佳性能,避免出现数据库访问运行缓慢的问题,以及查询数据库时出现的查询延时、查询次数多等问题。

4.数据库维护问题
数据库系统是一个复杂的系统,在日常运行中难免会出现数据库系统故障、业务变更需求等情况。

数据库系统维护对于保证系统可靠性,提高系统性能至关重要。

1.数据库安全问题
(1)做好安全设置,为数据库设置正确的授权,只允许拥有访问权限的用户进行访问,并设置访问日志,记录访问和更改的用户,以及操作的时间等信息。

(2)定期备份数据库,将备份数据存放到安全的位置。

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

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 mastergosp_resetstatus dbnamego4.运行完毕后退出此工具,停止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 mastergosp_resetstatus dbnamego4.停止SQL Server 的服务,再重新启动SQL Server 服务.5.打开SQL Server 的查询分析器(Query Analyzer),以用户sa 登录。

输入如下指令后点工具栏上的绿色箭头运行,运行完毕后退出此工具:use mastergoDBCC DBRECOVER (dbname)go6.打开SQL Server 的企业管理器(Enterprise Manager),查看database下的dbname是否恢复。

SQLSERVER数据库置疑的原因及恢复数据库

SQLSERVER数据库置疑的原因及恢复数据库

sp_configure 'allow updates',0
go
reconfigure with override
搞定,查看数据库中的数据,已经完全恢复。
3.硬盘的空间不够,比如日志文件过大;
找到一些解决办法,但具体过程稍有不同现总结如下:
A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。
B.停掉数据库服务器。
H.验证数据库一致性(可省略)
dbcc checkdb('test')
PS:执行后出现错误,果然在导入数据表部分出错;
一般执行结果如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test&#与系统管理员联系。
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
PS:此步骤未通过,执行'allow updates',1报错,跳过;
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')

怎样修复SQLSERVER数据库置疑问题(doc 8页)

怎样修复SQLSERVER数据库置疑问题(doc 8页)

怎样修复SQLSERVER数据库置疑问题(doc 8页)你可以看到在SQLSERVER 的ERROR LOG 和OS的应用程序日志中应该有1105的错误信息:SQL Server事务日志可能会被填满,这会阻止之后的数据库操作,包括UPDATE,DELETE,INSERT 和CHECKPOINT。

事务日志填满会导致1105错误:Can't allocate space for object syslogs in database dbname becausethe logsegment is full。

If you ran out of space in syslogs,dumpthe transaction log。

Otherwise use ALTER DATABASE orsp_extendsegment to increase the size of the segment。

这种现象可能出现于任何一个数据库中,包括Master和TempDB。

一些难以预见的因素可能消耗日志空间。

例如:一个大型事务,尤其像批量数据更新、插入或删除。

一个未提交的事务。

检查点处理程序截除时所需的带宽过大。

截除时超过阈值上述各种条件互相作用的结果。

用于发布的标记事务没有被日志读取程序读走下面是修复的步骤和收缩日志的步骤:1.在命令提示符下运行以下命令启动SQL Server:SQLSERVER -f -m备注:-m 开关以单用户模式启动SQL Server。

在单用户模式下,只能成功建立一个连接。

请注意是否有任何其他客户机或服务可能会在您通过SQL Server 查询分析器建立连接前使用那个连接。

2. 重置置疑数据库的状态。

sp_resetstatus 'database_name')GO--更改该数据库以添加一个1GB 大小的新日志文件ALTER DATABASE db_nameADD LOG FILE( NAME = db_name_log2,FILENAME = 'F:MSSQLDatadb_name_log2.ldf',SIZE = 1000MB,FILEGROWTH = 20MB),GO4. 停止并重新启动SQL Server:用新的数据文件或日志文件所提供的额外空间,SQL Server 应该能完成数据库的恢复。

SqlServer数据库被置疑解决方法

SqlServer数据库被置疑解决方法

Sql Server数据库被置疑解决方法首先确认已经备份了.mdf和.ldf文件。

2.在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。

3.用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。

4.重新启动SQL Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。

5.在SQL查询分析器中执行以下命令,以允许更新系统表:use mastergosp_configure‘allow updates’,1reconfigure with overridego6.将这个数据库置为紧急模式:update sysdatabases set status=32768where 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’, REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQL Server服务,然后继续尝试。

9.如果DBCC CHECKDB(‘db_name’,REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:重新执行DBCC CHECKDB(‘db_name’)命令,确认数据库中已没有错误存在。

清除数据库的置疑状态:sp_resetstatus'db_name'清除数据库的单用户模式状态:sp_dboption'db_name',’single user’,’false’重新启动SQL Server服务,如果一切正常的话,则数据库已经成功恢复。

sql数据库置疑修修复语句

sql数据库置疑修修复语句

SQL数据库置疑修复是一个复杂且细致的过程,需要数据库管理员具备丰富的经验和技能。

当数据库置疑时,通常意味着数据库的结构或数据可能已损坏,因此需要使用特定的修复语句和步骤来尝试恢复。

以下是一个关于SQL数据库置疑修复的详细指南,包括可能使用的修复语句和步骤。

修复前的准备备份数据库:在进行任何修复操作之前,务必先备份置疑的数据库。

这是为了防止进一步的数据丢失,如果修复操作不成功,还可以从备份中恢复数据。

评估损坏程度:使用DBCC CHECKDB命令检查数据库的完整性,并确定损坏的程度。

例如:sqlDBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS;这个命令会返回有关数据库中任何错误或不一致性的信息。

修复过程根据损坏的程度和类型,可以尝试以下修复步骤:使用REPAIR_REBUILD修复:如果损坏的是索引,可以使用REPAIR_REBUILD选项尝试修复。

例如:sqlDBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);这个命令会尝试重建损坏的索引。

可以多次执行此命令,直到没有更多的修复动作为止。

2. 使用REPAIR_ALLOW_DATA_LOSS修复:如果REPAIR_REBUILD无法解决问题,或者存在更严重的数据损坏,可以使用REPAIR_ALLOW_DATA_LOSS选项。

但请注意,这个选项可能会导致数据丢失。

例如:sqlDBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);在执行此命令之前,请务必确保已经备份了数据库,并且了解可能的数据丢失风险。

3. 其他修复方法:如果上述方法均无法解决问题,可能需要考虑更复杂的修复策略,如恢复备份、使用第三方工具或寻求专家的帮助。

sqlserver数据库出现可疑错误修复方法

sqlserver数据库出现可疑错误修复方法
一、主数据库出现可疑修复方法:
第一种方法:
当数据库发生这种操作故障时,可以按如下操作步骤可处理此要领,打开数据库里的
Sql
查询编辑器式
ALTER DATABASE 数据库名 SET EMERGENCY
?
使数据库变为单用户模式
启动服务
再次,打开
Sql Server 2005
时被标记为“可疑”的数据库已还原正常状态
第二种方法:
如果有数据库全备份,在其他SqlServer机器上先建一个和可疑数据库名称一样的数据库,将全备份还原到先建的数据库,再把新建数据库的ldf和mdf文件拷到可以数据库的目录下。
二、msdb系统数据库可疑
ALTER DATABASE 数据库名 SET SINGLE_USER
?
修正数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对 象不正确。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修正报告的不正确。但是,这些修正可能会导致一些数据丢失。命令:DBCC CheckDB (数据库名 , REPAIR_ALLOW_DATA_LOSS)
如果复制过来是单个用户,那么右键点这个库的属性-选项-限制访问改成MULTI_USER就可以了,目前还没出现问题,建议备份后尝试
?
使数据库变回为多用户模式
ALTER DATABASE 数据库名 SET MULTI_USER
?
开始->
运行->
输入cmd
打开DOS命令窗口,输入以下命令重启数据库服务
Net stop mssqlserver --

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

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

常规SQL SERVER数据库置疑后恢复步骤--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:\mscsql\mssql\data\prs_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','true'GoDBCC CHECKDB('置疑的数据库名')Goupdate sysdatabases set status=28 where name='置疑的数据库名' Gosp_configure 'allow updates',0GOreconfigure with overrideGosp_dboption '置疑的数据库名', 'single user','false'Go关于SQL数据库置疑的修复方法发布日期:2008/11/17 18:10:22 来源:作者:点击:1078斑竹广告联盟问题现象:数据库后面有“置疑”字样,查看系统事务日记出现以下错误:错误1---------------------------------------------错误: 823,严重度: 24,状态: 2I/O error 23(数据错误(循环冗余检查)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步骤6:
停止SQL然后重新启动SQL Server服务,然后运行:
use master
update sysdatabases set status = 8 where name = 'hbfsv8'
Go
sp_configure 'allow updates', 0
reconfigure with override
USE master
Go
--单用户模式
EXEC sp_dboption 'hbfsv8', 'single user', 'TRUE'
go
--数据库检查
DBCC CHECKDB ('hbfsv8')
Go
--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
--数据库修复
DBCC CHECKDB ('hbfsv8',repair_rebuild)
食通天SQL SERVER数据库置疑及修复
数据库置疑处理
提要:在数据库置疑或者修复的处理过程中,须先将文中的数据库更改为真实的数据库名称.
数据库置疑修复处理完成后,需执行第二步骤,使用DBCC语句对数据库进行检测并修复错误.
对于损坏的数据库,可参照数据库修复处理方法进行处理.
步骤1:
停止SQL服务管理器,将原数据文件拷贝出来进行备份,然后将原数据库删除,使用思迅数据库安装程序创建一个新的数据库。
Go
begin tran
update sysdatabases set status = 32768 where name = 'hbfsv8'
--Verify one row is updated before committing
commit tran
步骤5:
停止SQL然后重新启动SQL Server服务,然后运行如下命令:
步骤2:
停止SQL Server服务管理器
步骤3:
用备份出来的老数据库的MDF文件替换新数据库相应的MDF文件,并把LDF文件删除。
步骤4:
重新启动SQL Server服务,然后运行如下命令:
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
DBCC TRACEON(3604)
DBCCREBUILD_LOG('db_name','C:\ProgramFiles\MicrosoftSQL Server\MSSQL\Data\hbfsv8_log.ldf')
Go
--注:此处的db_name一定要更换为需要修复的数据库名称,比如此实例中的hbfsv8
Go
步骤7:
运行dbcc checkdb(hbfsv8)检查数据库的完整性
数据库修复
/*****************************************************************
*本语句可以多次执行,一直到没有红色文字出现,则修复成功
*这类故障是一般是由于磁盘读写问题造成的。
* 'hbfsv8据库的SQL,如需要修复分部的数据库,请将'hbfsv8'改为'hbfsv8_branch'
******************************************************************/
--请在查询分析器中执行下列语句.执行前断开其它所有数据库连接,最好是断开网线
--退出前请一定要执行以下语句返回到多用户模式
EXEC sp_dboption 'hbfsv8', 'single user','FALSE'
go
Go
--再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;
DBCC CHECKDB ('hbfsv8')
Go
--否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。
--如果还有错误未修复,
相关文档
最新文档