誤操作經歷,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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 閃回版本查詢操作
- 閃回查詢之閃回版本查詢
- 閃回查詢之閃回表查詢
- 【閃回特性之閃回查詢】使用閃回查詢(select as of)
- 閃回表、閃回查詢
- hibernate懶載入導致多表聯合查詢失敗
- 閃回查詢
- 閃回(關於閃回查詢)
- 閃回刪除、閃回查詢
- 閃回查詢恢復誤刪資料
- 閃回查詢找到誤刪除資料
- 基本閃回查詢和閃回表
- 閃回技術一:閃回查詢
- 閃回版本查詢與閃回事務查詢
- oracle閃回查詢Oracle
- 閃回查詢(轉)
- 閃回查詢(1)
- oracle 閃回查詢Oracle
- 回顧自己三次失敗的面試經歷面試
- DM7閃回與閃回查詢
- Oracle閃回查詢,閃回版本查詢與閃回事務查詢的使用區別總結Oracle
- Oracle 11G 閃回技術 閃回版本查詢和閃回事務查詢Oracle
- Flashback Query閃回查詢
- oracle的閃回查詢Oracle
- oracle的回閃查詢Oracle
- 閃回查詢(undo sql)SQL
- oralce恢復誤刪除的表中的資料(閃回、閃回查詢)
- 使用oracle 閃回查詢找回誤更新的資料Oracle
- 閃回 錯誤的DML 操作
- [閃回特性之閃回版本查詢]Flashback Version Query
- MAA switchover失敗經歷分享
- DM8 閃回查詢
- 閃回版本查詢技術:
- truncate操作導致DATA_OBJECT_ID改變Object
- 使用閃回查詢恢復誤刪除的資料
- 回閃查詢查詢刪除的資料
- 面試失敗經歷後感薦面試
- /etc/fstab的錯誤設定導致系統啟動失敗