MS Sql Server无日志数据库恢复办法
2007-08-03 09:52
447 查看
很多情况下,我们在备份数据库的时候只Copy了数据文件(.mdf文件),误删除日志文件或者是数据库日志出现异常。都需要只根据数据文件恢复数据库。
一、2000下的解决办法:
1.新建一个同名的数据库
2.再停掉sql server(注意不要分离数据库)
3.用原数据库的数据文件覆盖掉这个新建的数据库
4.再重启sql server
5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='要恢复的数据库名称'
Go
sp_dboption '要恢复的数据库名称', 'single user', 'true'
Go
DBCC CHECKDB('要恢复的数据库名称')
Go
update sysdatabases set status =28 where name='要恢复的数据库名称'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption '要恢复的数据库名称', 'single user', 'false'
Go
二、2005下的解决办法:
1、停止数据库服务。
2、将需要恢复的数据库文件复制到另外的位置。
3、启动数据库服务。
4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL Server Management Studio中删除要恢复的数据库。
5、新建同名的数据库(数据库文件名也要相同)。
6、停止数据库服务。
7、用第2步中备份的.mdf文件覆盖新数据库的同名文件。
8、启动数据库服务。
9、运行alter database dbname set emergency,将数据库设置为emergency mode
10、运行下面的命令就可以恢复数据库:
use master
declare @databasename varchar(255)
set @databasename='要恢复的数据库名称'
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'--将目标数据库置为多用户状态
一、2000下的解决办法:
1.新建一个同名的数据库
2.再停掉sql server(注意不要分离数据库)
3.用原数据库的数据文件覆盖掉这个新建的数据库
4.再重启sql server
5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='要恢复的数据库名称'
Go
sp_dboption '要恢复的数据库名称', 'single user', 'true'
Go
DBCC CHECKDB('要恢复的数据库名称')
Go
update sysdatabases set status =28 where name='要恢复的数据库名称'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption '要恢复的数据库名称', 'single user', 'false'
Go
二、2005下的解决办法:
1、停止数据库服务。
2、将需要恢复的数据库文件复制到另外的位置。
3、启动数据库服务。
4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL Server Management Studio中删除要恢复的数据库。
5、新建同名的数据库(数据库文件名也要相同)。
6、停止数据库服务。
7、用第2步中备份的.mdf文件覆盖新数据库的同名文件。
8、启动数据库服务。
9、运行alter database dbname set emergency,将数据库设置为emergency mode
10、运行下面的命令就可以恢复数据库:
use master
declare @databasename varchar(255)
set @databasename='要恢复的数据库名称'
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'--将目标数据库置为多用户状态
相关文章推荐
- MS sql server 数据库日志文件清除(压缩)和恢复日志文件的方法
- MS SQL Server 2005无数据库日志恢复
- MS SQL SERVER 数据库日志压缩方法与代码
- sql server数据库恢复挂起的解决办法
- MS SQL Server 2005 数据库损坏之数据恢复绝对经典
- MS SQL SERVER 数据库日志压缩方法与代码
- 转摘--MS SQL Server 2000 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
- MS Sql Server查询磁盘的可用空间,数据库数据文件及日志文件的大小及利用率
- MS sql server数据库设置自动清除事务日志的方法
- ms sqlserver 清除数据库日志脚本
- 转帖:MS SQL Server 2000 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
- MS SQLServer 数据库日志文件收缩
- MS SQL SERVER SUSPECT数据库置疑/可疑状态后处理办法
- 压缩日志及数据库文件大小(ms SQL SERVER)
- ms sql server 2005数据库日志文件过大,需要清除或者清空
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SQLPERF提供所有数据库的事务日志空间使用情况统计信息
- ms sql server 2005数据库日志文件过大,需要清除或者清空
- MS SQL Server数据库清理错误日志的方法
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SHRINKFILE收缩当前数据库的指定数据或日志文件的大小
- Ms Sql Server数据库的灾难恢复