您的位置:首页 > 数据库

仅从.mdf恢复MSSQL数据库方法

2015-08-13 09:28 274 查看
SQL SERVER 2000

1.开启数据库

2.从企业管理器,建一个同名的数据库

3.停止sql server

4.用原mdf文件覆盖新建库的数据库文件

5.重启sql server(这时数据库应该是置疑)

6.修改服务器设置:允许对系统目录进行直接修改

sp_configure 'allow updates',1 reconfigure with override

7.将数据库置为紧急状态:

update master.dbo.sysdatabases set status = 32768 where name = '数据库名'

8.删除新的ldf文件,重建日志:

dbcc rebuild_log('数据库名', 'f:/数据库名_log_new.ldf')--假设把新日志在f盘

9.update master.dbo.sysdatabases set status = 16 where name = '数据库名'

10.修改服务器设置:取消 允许对系统目录进行直接修改

sp_configure 'allow updates', 0 reconfigure with override

11.再使用检查工具修复错误

use [数据库名]

alter database [数据库名] set single_user with rollback immediate

dbcc checkdb ('数据库名',REPAIR_ALLOW_DATA_LOSS)

alter database [数据库名] set multi_user

执行完毕之后,如果还有错误,重复执行,直到没有错误为止。

SQL SERVER 2005(2008)

只有mdf文件的数据恢复方法

1.新建SharePoint_Config 数据库

2.停止SQL SERVER 2005,将原来的SharePoint_Config .mdf数据库文件覆盖刚新建的SharePoint_Config .mdf数据库文件,重新启动数据库,此时数据库中的表不能正常读取。

3.将数据库设置为紧急状态:

alter database SharePoint_Config set emergency

此时数据处于紧急状态,库中的表可以读取

4.执行如下代码:

use master

declare @databasename varchar(255)

set @databasename='SharePoint_Config' - 设置变量为数据名

exec sp_dboption @databasename, N'single', N'true' - 将数据库置为单用户状态

dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)

dbcc checkdb(@databasename,REPAIR_REBUILD)

exec sp_dboption @databasename, N'single', N'false' - 将目标数据库置为多用户状态

数据库正常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: