–数据库置疑的处理步骤(以数据库’shop07’为例)
select * from sysdatabases
–1.停掉SQL Server服务(在运行中执行以下命令):
NET STOP MSSQLSERVER
–2.把原始数据库的文件shop07_DAT.MDF,shop07_LOG.LDF剪切走;
–3.启动SQL Server服务(在运行中执行以下命令):
NET START MSSQLSERVER
–4.在企业管理器中fenli置疑数据库shop07;
–5.在企业管理器中新建一个同名的数据库(数据库名字,数据库文件及存放位置一定要与原来的一样);
–6.设置数据库运行在单用户的模式:
USE MASTER
GO
ALTER DATABASE hydtp SET SINGLE_USER
GO
–7.停掉SQL服务(在运行中执行以下命令):
NET STOP MSSQLSERVER
–8.把原来的数据文件(shop07_DAT.MDF)再覆盖回来,并删除日志文件(*_log.ldf);
–9.启动SQL Server服务(在运行中执行以下命令):
NET START MSSQLSERVER
(10-12在Master中执行)
–10.设置数据库为紧急模式:
Use Master
GO
sp_configure ‘allow updates’, 1
reconfigure with override
GO
UPDATE sysdatabases SET status = 32768 where name = ‘hydtp’
GO
–11.重建日志(将其中的e:\data\改为数据库的真实路径):
–(任务管理器关掉)
dbcc rebuild_log (‘hydtp’,’d:\data\hydtp_log.ldf’)
–12.数据库完整性检测:
DBCC CHECKDB(‘shop07’)
–13.如果是一致性错误,则针对相应的表做索引重建:
dbcc dbreindex(‘rep_goods_sale’)
单单的一致性错误 连接中断
truncate table rep_goods_sale
–14.如果是分配性错误,则针对相应的表做允许丢失数据的低级修复:
dbcc checktable(‘rep_goods_sale’,REPAIR_ALLOW_DATA_LOSS)
丢失性修复
—–DBCC CHECKDB(‘shop07’,REPAIR_ALLOW_DATA_LOSS)——
–15.修复完成后,恢复数据库为多用户模式:
USE MASTER
GO
ALTER DATABASE hydtp SET MULTI_USER
GO
–16.恢复SQLSERVER原始的配置:
USE MASTER
GO
UPDATE sysdatabases SET status = 4194320 where name = ‘hydtp’
GO
–17.配置SQLSERVER不允许更新系统表:
USE MASTER
GO
sp_configure ‘allow updates’, 0
reconfigure with override
GO
–18.重新启动MSSQLSERVER服务:
–最好重新启动操作系统
–19.备份数据库:
–可以通过SQLSERVER企业管理器或T-SQL.需要备份MASTER和shop07