12.28 樱町数据灾难记

2007年12月18日对樱町来说是一个可怕的日子,这一天,樱町再次遭受到了数据库灾难。
事情的起因估计是因为一次停电。在YT斑竹Q群里我说过,最近由于百色电力网络结构调整,而我家处于非城市边缘,难免遭受停电袭击。于是,在12月28日早上的那一次停电,数据库就遭到了损害。
YT当时使用的是貌似数据库2005[1],大约是中午的时候电力供应恢复,接着中午开机。到下午5点多的时候,包子研究员发现了论坛发生了错误,然后就告诉我。我登录上去以后发现网站首页的论坛帖子调用出现了问题,本应是帖子列表的地方现在变成了一堆错误信息。而我进入论坛一看,果然是数据库连接出错了,输出了我自定义的错误信息。当时显示的是“无法打开登录所请求的数据库 "******"[2],登录失败。”当时我就认为是因为一系列乱七八糟的原因导致连接到SQLServer的时候出了什么问题。接下来我为了确定这个问题,又登录了其他没有使用MSSQL而使用了MySQL的站点看看以获取更多信息。可是当我登录那个使用MySQL的站点的时候却登录不上了,回过头来刷新YT也有结果了。我就以为,服务器的网络连接又出什么问题了,当然也有可能又停电了。
接下来的时间里我就往家里打电话,可没想到的是家里没人。后来到了晚上大约9点多的时候终于有人回来了,并且带回一个消息。实际上并没有停电,而是百色电信出了什么问题,导致网络断掉了。
到了大约10点的时候,网络恢复了,我直接3389过去看看到底是怎么回事。打开SQL Managment以后,我惊讶地发现YT的那个数据库不能打开了,被标记为Suspect状态,也就是质疑状态。这下可麻烦了,导出数据不行,备份也不行,总之里面的数据无法读出了。这下子可麻烦了。我检查了一下备份记录,发现最近的备份是在10月31日14时的,距离现在近2个多月,这可怎么半啊,这两个多月来的数据可多了,如果不能恢复的话可要怎么半哪。
接下来我就一直在寻找解决方法,苦苦寻找到了29日凌晨3点多的时候终于撑不住了,思维开始模糊了,而数据仍然没有能恢复,只好先去睡觉。不过在这个过程中,我已经了解到了不少有关数据库质疑状态的东西。
第二天,早上11点多起来,继续想办法恢复数据。在进行了小小的尝试之后,仍然无法恢复数据库。从昨晚到现在,我尝试过了修改系统表将数据库设为紧急状态、附加数据库、替换数据库文件等方法,可是还是无法解决。在我几乎黔驴技穷的时候看到了一个帖子,说SQL的向下兼容一向是很不错的,有看到有人说可以试试用SQLServer2000来恢复数据。于是,我就开始寻找SQLServer2000,下载……
下载是漫长的,在等待下载的过程中,我就顺便和白水山言提了这事。言子果然厉害啊,问了我相关情况以后竟然一下子就百度到了解决方法了,方法很简单,用一条SQL语句就可以把数据库设为紧急状态[3],这条语句我之前竟然一直都没有找到,是不是我RP太差了?
接下来的事就简单了,把数据库设为紧急状态以后,执行修复操作,在丢失了28日当天部分帖子和部分短消息的极小数据之后,数据库成功地修复了,接下来把数据库设为正常状态,好了,一切正常,YT又能访问了。
这就是12.28YT数据灾难记,最大的功劳非言子莫属,否则的话现在的数据可能真的是10月31日的了[4]

———————————偶是注释的分隔线———————————

[1] 也就是MSSQL,MS是貌似的意思,所以就叫做貌似数据库了
[2] 数据库名可不能随便说出来的
[3] 执行这条SQL语句:ALTER DATABASE dbname SET EMERGENCY
[4] 对于SQLServer2000能不能恢复数据我并没有太大信心,因为不知道能不能在Windows2003下安装SQLServer2000,如果不能的话也已经没有时间在虚拟机里先装个Windows2000了,30日就是开始元旦假期了,29日晚开始人就会很多的,这个时候YT是一定要开放的

本文发表于 零零散散,并添加了 , , , , 标记。保存永久链接到书签。

发表评论

电子邮件地址不会被公开。