誤操作經歷,truncate導致閃回查詢失敗
開發人員向我反映由於誤操作刪除了表裡的一些資料,要求我恢復。
諮詢了誤操作的時間點後,我用閃回查詢試了一下,被誤刪的資料還在回滾段,可以挽救回來。
我先備份了現在表裡的資料。
create table a as select * from 業務表。
然後我做了一件愚蠢的事
truncate table 業務表
insert into 業務表 select * from 業務表 as of timestamp to_timestamp('2014-06-18 13:30:01','yyyy-mm-dd hh24:mi:ss');
ERROR at line 1:
ORA-01466: unable to read data - table definition has changed
結果提示了錯誤,說表的定義已經改變。因為ORACLE的閃回要求你的表結構從你誤操作的時間點起到執行閃回查詢的時間點,表定義是不能改變的。
剛剛閃回查詢還可以,怎麼短短一分鐘不到,誰就把表結構給改了呢?
奧,我明白了,是我自己犯了錯誤,truncate操作也被閃回查詢認為是改變表結構定義的操作。是我自己做的孽。
怎麼辦?
還好,truncate之前,我是備份了 開發誤操作後的資料的,這部分資料我可以找回。
那麼開發誤操作的資料如何找回呢?閃回是不行了
LOGMINER要登場了。慶幸的是,所有的資料庫我都開啟了輔助日誌。
最終透過LOGMINIER,解析了那段時間的誤操作日誌,透過SQL_UNDO欄位的內容,成功恢復出了資料,有驚無險。
這個事件給我提了個大醒。DBA要了解ORACLE特性的細節,基礎知識要紮實,儘量避免使用TRUNCATE操作。刪除資料前要做備份。
諮詢了誤操作的時間點後,我用閃回查詢試了一下,被誤刪的資料還在回滾段,可以挽救回來。
我先備份了現在表裡的資料。
create table a as select * from 業務表。
然後我做了一件愚蠢的事
truncate table 業務表
insert into 業務表 select * from 業務表 as of timestamp to_timestamp('2014-06-18 13:30:01','yyyy-mm-dd hh24:mi:ss');
ERROR at line 1:
ORA-01466: unable to read data - table definition has changed
結果提示了錯誤,說表的定義已經改變。因為ORACLE的閃回要求你的表結構從你誤操作的時間點起到執行閃回查詢的時間點,表定義是不能改變的。
剛剛閃回查詢還可以,怎麼短短一分鐘不到,誰就把表結構給改了呢?
奧,我明白了,是我自己犯了錯誤,truncate操作也被閃回查詢認為是改變表結構定義的操作。是我自己做的孽。
怎麼辦?
還好,truncate之前,我是備份了 開發誤操作後的資料的,這部分資料我可以找回。
那麼開發誤操作的資料如何找回呢?閃回是不行了
LOGMINER要登場了。慶幸的是,所有的資料庫我都開啟了輔助日誌。
最終透過LOGMINIER,解析了那段時間的誤操作日誌,透過SQL_UNDO欄位的內容,成功恢復出了資料,有驚無險。
這個事件給我提了個大醒。DBA要了解ORACLE特性的細節,基礎知識要紮實,儘量避免使用TRUNCATE操作。刪除資料前要做備份。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-1187959/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7閃回與閃回查詢
- Oracle 11G 閃回技術 閃回版本查詢和閃回事務查詢Oracle
- 回顧自己三次失敗的面試經歷面試
- DM8 閃回查詢
- ORACLE 分割槽索引UNUSABLE導致的DML操作失敗引起的血案Oracle索引
- undo truncate 導致qps下降分析
- 折半查詢法的平均查詢長度(成功/失敗)
- springboot衝突導致的發版失敗Spring Boot
- oracle truncate table recover(oracle 如何拯救誤操作truncate的表)Oracle
- Docker 導致阿里雲 ECS 內網互通失敗Docker阿里內網
- 故障分析 | DDL 導致的 Xtrabackup 備份失敗
- 一次失敗的創業經歷創業
- ORACLE RAC 兩節點db_32k_cache_size設定不當導致表truncate失敗之ORA-00379Oracle
- Oracle 11G 閃回技術 使用Oracle閃回事務查詢Oracle
- 迴圈引用導致的json序列化失敗JSON
- sock鎖檔案導致的MySQL啟動失敗MySql
- git合併丟失程式碼問題分析與解決(錯誤操作導致)Git
- rman備份的時候讀取v$session_longops失敗導致備份失敗SessionGo
- MongoDB例項重啟失敗探究(大事務Redo導致)MongoDB
- 企業使用ERP系統導致失敗的因素所在
- 一次失敗的專案經歷以及反省
- selenium-java被檢測導致滑塊驗證失敗Java
- smt加工這些失誤會導致smt加工出錯
- 儲存互斥失敗導致資料丟失的資料恢復成功案例資料恢復
- [20181130]hash衝突導致查詢緩慢.txt
- mybatis lambdaQuery 查詢條件導致空指標MyBatis指標
- 連結伺服器查詢導致的阻塞伺服器
- 匿名內部類方式構建物件導致序列化失敗物件
- 開啟 Keep-Alive 可能會導致http 請求偶發失敗Keep-AliveHTTP
- wait_type SOS_WORKER導致資料庫連線失敗AI資料庫
- FORTRAN動態陣列分配失敗導致執行時Access Violation陣列
- 【北亞資料恢復】誤操作導致雲伺服器表被truncate,表內資料被delete的資料恢復資料恢復伺服器delete
- 執行SQL查詢導致磁碟耗盡故障演示SQL
- MySQL:RR模式下insert也可能導致查詢慢MySql模式
- 【DB寶43】MySQL誤操作閃回恢復利器之my2sqlMySql
- 表單驗證失敗出現閃動
- Drive客戶端因SSL證書已更改導致聯機失敗客戶端
- Drone構建失敗,一次drone依賴下載超時導致構建失敗的爬坑記錄
- 記一次GI安裝失敗(root.sh在第一個node上失敗)的除錯經歷除錯