数据库置疑的处理步骤(以数据库'shop07'为例)

来源:互联网 发布:数据库管理系统产品 编辑:程序博客网 时间:2024/05/16 12:49

–数据库置疑的处理步骤(以数据库’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

0 0