
2、使数据库变为单用户模式ALTER DATABASE Stock SET SINGLE_USER
3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。DBCC CheckDB (Stock, REPAIR_ALLOW_DATA_LOSS)
4、使数据库变回为多用户模式ALTER DATABASE Stock SET MULTI_USER1:重新建立一个,一样的数据库,路径名称,文件都一样哈!
就是还原数据库吧,可以参考如下 *** 作:首先,当然是要备份好一份SQL的数据文件通常我们讲的还原数据库是指文件到数据库,而在这里,SQL2000,备份的文件可以还原到高版本的SQL server上,而高版备份文件却还原不了低版本的SQL server下面我们来 *** 作一次给大家看,因为我的备份文件很大,20G左右,有点慢
登陆SQL Server Management Studio管理器,然后右击数据库-选择还原数据库:
这里首先写好数据库名-选择源设备-文件-添加数据库文件(文件名是以.bak结尾的备份文件);然后确定:
这里便可以看这个备份文件的基本内容;备份日期,备份类型,数据库名等;
然后我们下一步完成还原;这里通常会有一个报错,超过所有数据库大小达到10G会还原失败,我查了一下资料:
解决办法:
1、选中该数据库“右键”选择【属性】;
2、在d出的对话框中选择【选项 】,然后在右侧列表找到【状态】下的【限制访问】:将状态值改为“Multiple”或者“MULTI_USER” ,点击【确定】保存就可以了!
主要步骤如下:1. 查询被标记的数据库
USE master
GO
SELECT NAME,STATE_DESC FROM SYS.DATABASES
WHERE STATE_DESC='SUSPECT'
GO
2. 设置为紧急状态EMERGENCY,此时数据库可以有一个用户连接。由于本次数据库比较大,就没有继续向下 *** 作,我的做法是写了脚步,把数据逐个的导出到另外一个库。
有部分表,数据不全,查询失败,通过限制条件,逐步把可以查询出来的导出来。
USE master
GO
ALTER DATABASE BPO SET EMERGENCY
GO
3.检查数据库
DBCC CHECKDB (BPO)
GO
4. 设置用户
ALTER DATABASE BPO SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
5. 修复
DBCC CHECKDB (BPO, REPAIR_ALLOW_DATA_LOSS)
GO
6. 设置用户
ALTER DATABASE BPO SET MULTI_USER
GO
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)