
server
2005
数据库中,一次误 *** 作,分离数据库后,直接将日志文件删除掉了,后进行附加出错,无法附加上去,经过如下解决方案,数据库附加成功, *** 作如下:
第一步:先建立一个同名数据库,停止sql
server2005,将原来的.mdf数据库文件覆盖刚新建的.mdf数据库文件,重新启动数据库。
第三步:在查询分析器中运行如下代码:
alter
database
你的.mdf文件名
set
emergency
'--将数据库设置为紧急状态use
masterdeclare
@databasename
varchar(255)
set
@databasename='你的.mdf文件名'
'--你的.mdf文件文件名
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'--将目标数据库置为多用户状态
1、把mdf文件和ldf文件拷贝到数据库的默认路径C:\ProgramFiles\Microsoft
SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA里;
2、在sqlserver里新建个查询,执行下面代码;
1
USE
master
2
GO
3
CREATE
DATABASE
NewFile
4
ON
(FILENAME
=
'C:\Program
Files\Microsoft
SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\File.mdf'),
5
(FILENAME
=
'C:\Program
Files\Microsoft
SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\File_log.ldf')
6
FOR
ATTACH
7
GO
3、刷新数据库,就出现了新的数据库NewFile;
根据mdf文件和ldf文件还原成功,就这么简单。我用的是sqlserver2008
可以,1、你先建一个同名的数据库,然后关闭数据库服务,用原来的mdf文件覆盖新建的数据库同名文件
2、执行以下命令,记得将DB_NAME设置为你的数据库文件名
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE DB_NAME SET EMERGENCY
GO
sp_dboption 'DB_NAME', 'single user', 'true'
GO
DBCC CHECKDB('DB_NAME','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE DB_NAME SET ONLINE
GO
sp_configure 'allow updates',0 reconfigure with override
GO
sp_dboption 'DB_NAME', 'single user', 'false'
GO
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)