失而复得——数据库日志文件丢失后的恢复
上一篇 /
下一篇 2012-08-22 09:28:02
/ 个人分类:数据库
?*c#KDD#n_j0 前几天听英语用到虚拟光驱装resseta stone,没想到各种不顺,把我的本本给整瘫痪了。后来重整旗鼓,装了云端,总算是把它搞定了,由于瘫痪来的很突然,所以我的一些数据不小心丢了一些。我新建的数据库日志文件就悲催的丢啦。其实新建一个数据库完全可以,只是觉得现在碰到了,而且也不是没有时间,可以查找一下解决方案,以备以后自己和他人遇到一些类似的情况不必再犯难。
e p7L6Jns,Z0*tv1gd4I-c0 下面来说一下恢复方法:
{'H"C7L;EHK{051Testing软件测试网 M_+B3XY ] 如果你的数据还在数据库服务器中,请执行以下三步
Yntz$K&M9K051Testing软件测试网+_m+f xr 1、停止数据库服务。
!D:Je |^E$J051Testing软件测试网gp]#B9?(X!Fe@ 2、将需要恢复的数据库文件复制到另外的位置,然后在SQLServerManagement Studio中删除要恢复的数据库。51Testing软件测试网8m`v`B6C
51Testing软件测试网b^7Tm8WMk5W 3、启动数据库服务。51Testing软件测试网3o`0^*Ld-Z3[0\S6u
3O)BW4x^B9f~D0 接下来
/o a6sN})Te
V051Testing软件测试网XdvO.f-rv 1、新建同名的数据库(数据库文件名也要相同)。
2cU?s8uK9n7Pq051Testing软件测试网'gT KvtF P 2、停止数据库服务。51Testing软件测试网;@vgSb$V1P
"B\y}Mp} D
Hk V0 3、用备份的.mdf文件覆盖新数据库的同名文件。51Testing软件测试网/E#Sz)F PX z
._2Y5ket+Wru!["e1o0 4、启动数据库服务。51Testing软件测试网K,lSJRwE1e
u#cE"?+@@w(\bs I0 5、在查询分析器中:运行如下代码将数据库设置为紧急状态
;eM+k9h,bb0alter database dbname set emergency |
)Iw5H/v"Kw7@0 例如恢复的数据库名为:MRcharge,图如下
]_'jQ%[|0
IP1\8\1n:M2JhQCO0 6、然后再查询中输入如下语句就可以恢复数据库了:
[1JTH#f051Testing软件测试网P7g5F;S-c use master /C$]4},wy@W051Testing软件测试网 k I9x,A;u#ku_declare @databasename varchar(255) 51Testing软件测试网B l0}7a!H P? 51Testing软件测试网'~_{T0}9BaV"R.Fset @databasename='MRcharge' 51Testing软件测试网.e
h2Z USRS2JzN$zX 51Testing软件测试网QJ#D%Sg1VN}exec sp_dboption @databasename, N'single', N'true'
--将恢复数据库置为单用户状态 51Testing软件测试网k:{h?$ox d"I2@4x9A`0dbcc checkdb('MRcharge',REPAIR_ALLOW_DATA_LOSS) 51Testing软件测试网)~0t,]r5F0_ 51Testing软件测试网T$hk,E| ndbcc checkdb('MRcharge',REPAIR_REBUILD) h3jc?4f^ Q
R051Testing软件测试网.^
O}A5j&g.?pexec sp_dboption 'MRcharge', N'single', N'false' --最后再将恢复数据库置为多用户状态 51Testing软件测试网 T3nr-GgaF} |
注意:这种方法恢复必须保证你建立数据库和恢复数据库用的是统一版本,即:都是sql server 2000,或者 2005,或者2008。51Testing软件测试网~$s4N2Uu
我曾想用sql server 2008恢复2005的数据库,结果提示版本过低,无法打开,需要升级,于是我在建数据库的时候特意把兼容级别改成2005的,结果还是一样。51Testing软件测试网}XJG(l/z}
跨版本恢复待求解,请指点。51Testing软件测试网,JjjB bw-x
收藏
举报
TAG: