sql server 2012中的一个数据库日志文件坏了,如何还原数据库?

nbjed 2013-05-17 11:19:28
我百度gg了一下资料,类似的情况有介绍,如
恢复方法:
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'--将目标数据库置为多用户状态


但这个脚本在sql server 2012下运行不了,出错的,请教sql2012下,这个脚本如何改写?
或者有其它方法,能在sql server 2012 下,恢复日志文件损坏的数据库
...全文
458 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
最爱午夜 2013-05-17
  • 打赏
  • 举报
回复
如果需要数据库日志文件,按以下操作: 1、导出数据库的结构,重建一个数据库, 2、将数据导入到这个数据库, 3、把名字改成旧数据库的名字。 注意:做以上步骤前最好备份数据库。
最爱午夜 2013-05-17
  • 打赏
  • 举报
回复
不要日志文件,直接分离,然后删除日志文件,然后再附加,数据库会自动配置一个日志文件。
最爱午夜 2013-05-17
  • 打赏
  • 举报
回复
不会吧,我记得在2005上面都可以操作啊。
daiyueqiang2045 2013-05-17
  • 打赏
  • 举报
回复
也可以尝试一下 sp_attach_single_file_db @dbname= 'bs_Data', @physname= 'F:\bs_Data.mdf'
KevinLiu 2013-05-17
  • 打赏
  • 举报
回复
如果数据库不是干净的分离是无法重建LOG的 http://blog.csdn.net/smithliu328/article/details/7983002
daiyueqiang2045 2013-05-17
  • 打赏
  • 举报
回复
引用 11 楼 nbjed 的回复:
[quote=引用 10 楼 daiyueqiang 的回复:] http://www.cnblogs.com/ATree/archive/2010/05/16/Sqlserver2005-mdf-ldf.html
55555~~~~~ sql 2012 不支持函数 Sp_dboption[/quote] lz 你尝试一下这个呢 CREATE DATABASE DB_NAME ON (FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\DBName.MDF') FOR ATTACH_REBUILD_LOG ; GO
nbjed 2013-05-17
  • 打赏
  • 举报
回复
引用 10 楼 daiyueqiang 的回复:
http://www.cnblogs.com/ATree/archive/2010/05/16/Sqlserver2005-mdf-ldf.html
55555~~~~~ sql 2012 不支持函数 Sp_dboption
daiyueqiang2045 2013-05-17
  • 打赏
  • 举报
回复
http://www.cnblogs.com/ATree/archive/2010/05/16/Sqlserver2005-mdf-ldf.html
nbjed 2013-05-17
  • 打赏
  • 举报
回复
引用 7 楼 jack11430 的回复:
如果再不行,那就建一个新的数据库,把旧数据库的结构复制过去,然后倒入数据
问题时,损坏日志的数据库我已经分离备份,所以现在老数据库我根本进不去了,也无法再次附加。 所以你的第二种方式,目前我已经无法进行了
nbjed 2013-05-17
  • 打赏
  • 举报
回复
引用 6 楼 jack11430 的回复:
晕倒,你直接分离数据库,然后删除日志文件,然后再附加数据库,就可以了啊,
对sql 2012无效,老版本是否可以我不确定
最爱午夜 2013-05-17
  • 打赏
  • 举报
回复
如果再不行,那就建一个新的数据库,把旧数据库的结构复制过去,然后倒入数据
最爱午夜 2013-05-17
  • 打赏
  • 举报
回复
晕倒,你直接分离数据库,然后删除日志文件,然后再附加数据库,就可以了啊,
nbjed 2013-05-17
  • 打赏
  • 举报
回复
sql 2012 不会自动重建日志的
Q315054403 2013-05-17
  • 打赏
  • 举报
回复
重建日志也不行???
nbjed 2013-05-17
  • 打赏
  • 举报
回复
引用 1 楼 jack11430 的回复:
不要日志文件,直接分离,然后删除日志文件,然后再附加,数据库会自动配置一个日志文件。
没用,没有日志文件,根本无法附加数据库上去

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧