連錯庫誤刪100多張表

2021-04-18 18:31:34 字數 805 閱讀 5363

炎炎廈日, 容易讓人頭腦發暈, 做錯事情. 某地某位開發人員連錯了資料庫, 本來要連到測試庫進行表重建的, 連到了產品庫, 過了幾分鐘後, 猛然驚醒, 已發現刪除了一百來張表, 業務立馬被中止, 一堆人被拖到驚惶失措中.

在事件發生後, 立馬聯絡本站, 決定用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類操作的經驗基礎上的良好設計.

單個資料庫多張表的操作

有時候我們做統計需要給每個店鋪動態建立一張表用來統計訪問資料,但是隨著時間推移,到時候我們有可能需要給這些表新增乙個字段或是查詢資料什麼的。表在實際專案中會多達上千張。我之前有寫了一些sql語句在這邊分享一下。1.給所有的表新增乙個欄位isfacebook欄位。這邊是操作735張表。1 declar...

資料庫遷移誤刪表之後重新遷移

如果執行資料庫遷移命令後發現資料表有問題,或者因為某種操作不小心將資料表刪除了,就需要再次進行資料庫遷移,下面就是重新進行資料庫遷移的方法 第一步 找到需要進行遷移命令的migrations檔案,將除了 init 之外的檔案刪除 第二步 在資料庫中找到進行資料庫遷移的記錄表,並查詢需要遷移的表名id...

資料庫遷移誤刪表之後重新遷移

如果執行資料庫遷移命令後發現資料表有問題,或者因為某種操作不小心將資料表刪除了,就需要再次進行資料庫遷移,下面就是重新進行資料庫遷移的方法 第一步 找到需要進行遷移命令的migrations檔案,將除了 init 之外的檔案刪除 第二步 在資料庫中找到進行資料庫遷移的記錄表,並查詢需要遷移的表名id...