综合
首页 > 学术社区 > 文章 > 正文

连错库误删100多张表


评论(0)|2017-05-29|发布:andazon |收藏

作者: AnySQL.net, 转载时请务必以超链接形式标明文章原始出处和作者信息.
链接: http://www.anysql.net/aulmydul/fast_recover_100_tables.html

炎炎厦日, 容易让人头脑发晕, 做错事情. 某地某位开发人员连错了数据库, 本来要连到测试库进行表重建的, 连到了产品库, 过了几分钟后, 猛然惊醒, 已发现删除了一百来张表, 业务立马被中止, 一堆人被拖到惊惶失措中.

在事件发生后, 立马联系本站, 决定用AUL去恢复数据, 事发情景如下:

1, 事发后立马停止数据库.
2, 数据库在归档方式下, 删表归档文件还在.
3, 开发人员可以提供准确的重建表的语句.
4, 数据文件有十多GB, 有五万个存放在LOB中的图片.

了解上述情况后, 立马让客户准备远程连接环境, 先是拷贝AIX上的数据文件到Windows上, 由AUL进行跨平台恢复; 然后是将Windows机器挂到Internet上, 由我进行远程操作; 约好晚上八点半开始, 经过三个小时的紧张恢复, 数据全部搞定. 步骤如下:

1, 从归档日志中找到删除的表的信息.
2, 扫描所有的数据文件, 生成Extent Map.
3, 在新的库中建立空表, 以便借用表结构.
4, 进行大部份表的数据恢复.
5, 再次扫描所有文件, 查找LOB索引段头块.
6, 恢复带LOB的少量表.

能这么顺利完成任务, 也超出我自已的意料之外, 最主要的是删除表时的归档文件还在, 以及能提供准确的重建表的SQL语句, 以及AUL多年恢复Drop类操作的经验基础上的良好设计.

系统分类:编程语言 >> C#

评论
请登录再发布评论,所有评论仅代表网友意见,本网站保持中立