999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

閃回技術在數據庫誤刪除中的應用

2014-04-19 14:29:10徐捷
物聯網技術 2014年4期

徐捷

摘 要:當數據庫發生誤刪除等邏輯錯誤時,傳統上只能通過執行不完全恢復來恢復數據,本文介紹了通過3種閃回技術,提高效率恢復數據庫邏輯錯誤的方法,并對3種閃回技術進行了分析比較。

關鍵詞:備份與恢復;閃回數據庫;閃回表;閃回刪除

中圖法分類號:TP309 文獻標識碼:A 文章編號:2095-1302(2014)04-0088-02

0 引 言

傳統上,誤刪除了Oracle數據庫中的重要表或表中的記錄,提交(COMMIT)成功后,再想恢復被誤刪除的表格或表格中的數據,那只能采用數據庫備份和恢復技術,其步驟為:首先利用誤刪除前備份的全部數據文件和控制文件將數據庫還原到備份狀態,再應用在線重做日志文件和歸檔日志文件,將數據庫恢復到誤刪除前的狀態,即執行數據庫的不完全恢復,這樣做不但需要數據庫全備份,且操作復雜,耗費時間較長,在恢復期間數據庫還必需關閉,不能使用。從Oracle 9i開始,利用新提供的閃回功能,被誤刪除的表或表中的數據恢復可以更加方便、快捷。Oracle閃回功能在10 g、11 g又分別得到了加強。

1 閃回技術的功能

為了演示閃回功能,先在sql*plus中執行以下語句,創建測試表testta,表中插入3條新記錄后,提交插入事務。

SQL>CREATE TABLE testta( id INT, name VARCHAR2(4));

SQL>INSERT INTO testta VALUES(1,'aaaa');

SQL>INSERT INTO testta VALUES(2,'bbbb');

SQL>INSERT INTO testta VALUES(3,'cccc');

SQL>COMMIT;

再執行以下語句,設置顯示當前時間:

SQL>SET TIME ON

刪除testta 表中全部3條記錄:

14:11:29 SQL>DELETE testta;

提交刪除事務:

14:12:30 SQL>COMMIT;

14:12:34 SQL> SELECT * FROM testta;

表testta中已沒有記錄。由于刪除事務已提交成功,如想恢復被刪除的記錄,傳統的方法只能是執行數據庫的不完全恢復。現在采用閃回數據庫(Flashback Database)的方法恢復刪除數據,操作如下。

關閉數據庫,將數據庫設置到裝載(mount)狀態。

14:14:47 SQL>SHUTDOWN IMMEDIATE

14:15:04 SQL>STARTUP MOUNT

利用閃回數據庫的方法,將數據庫整體調整到刪除數據前的某一時間。

14:16:10 SQL>FLASHBACK DATABASE TO TIMESTAMP TO_DATE(‘2013-12-23 14:11:27,yyyy-mm-dd hh24:mi:ss) ;

使用RESETLOGS選項,打開數據庫。

14:17:07 SQL>ALTER DATABASE OPEN RESETLOGS;

查詢testta表內容。

14:17:42 SQL>SELECT * FROM testta;

執行后,部分顯示結果如下:

ID NAME

---------- ----

1 aaaa

2 bbbb

3 cccc

結果顯示說明,testta表中被刪除的數據已經恢復。

2 閃回數據庫的操作

閃回數據庫就像數據庫上的倒帶按鈕,可以把整個數據庫回退到過去的某個時點狀態,其最終結果就像執行了不完整恢復。因此,閃回數據庫不但能恢復像以上例子中被刪除表中的記錄,也能恢復被刪除的表、視圖等數據庫其他對象,還能恢復被刪除了的用戶等。但此種方法也有其局限性,一是恢復到過去某一時間點后,則數據庫的全部內容都被恢復到當時時間點狀態,如果只是誤刪除了某個表中的記錄,而只想恢復該表的內容,則不宜采用閃回數據庫的方法;二是采用閃回數據庫的方法,必須要先關閉數據庫。為了克服閃回數據庫的缺陷,可采用以下閃回表(Flashback Table)的方法,恢復被刪除的記錄,操作如下:

創建測試表testtb,在表中插入3條新記錄后,提交插入事務:

14:43:09 SQL> CREATE TABLE testtb( id INT, name VARCHAR2(4));

14:43:20 SQL> INSERT INTO testtb VALUES(1,aaaa);

14:43:20 SQL> INSERT INTO testtb VALUES(2,bbbb);

14:43:20 SQL> INSERT INTO testtb VALUES(3,cccc);

14:43:20 SQL> COMMIT;

刪除testtb 表中全部3條記錄:

14:44:16 SQL>DELETE testtb;

提交刪除事務:

14:44:26 SQL>COMMIT;

14:44:28 SQL> SELECT * FROM testtb;

刪除事務已提交成功,testtb表中已沒有記錄。現采用閃回表的方法恢復刪除數據。

閃回表的前提是啟動被操作表的行移動(ROW MOVEMENT)特性。先啟動表testtb的行移動特性:

14:44:32 SQL> ALTER TABLE testtb ENABLE ROW MOVEMENT;

利用閃回表的方法,將testtb表恢復到刪除數據前的某一時間。

14:45:27 SQL> FLASHBACK TABLE testtb TO TIMESTAMP TO_TIMESTAMP(‘2013-12-23 14:44:00, ‘YYYY-MM-DD HH24:MI:SS);

查詢testtb表內容:

14:45:28 SQL>SELECT * FROM testtb;

執行后,部分顯示結果如下:

ID NAME

---------- ----

1 aaaa

2 bbbb

3 cccc

結果顯示說明,testtb表中被刪除的數據已經恢復。

3 閃回表

閃回表能夠恢復指定表中的記錄內容,而不改變數據庫其他對象的內容。但數據恢復中,閃回表必須啟用被操作表的行移動特性,且只能進行閃回表的DML操作,不能進行閃回DDL操作。如果用戶刪除了(DROP)表,則不能采用閃回表的方法恢復,此時可以有采用上面介紹的閃回數據庫的方法恢復整個數據庫,也可以采用以下閃回刪除(Flashback Drop)的方法,其操作如下:

創建測試表testtc,表中插入3條新記錄后,提交插入事務:

16:10:43 SQL> CREATE TABLE testtc( id INT, name VARCHAR2(4));

16:10:44 SQL> INSERT INTO testtc VALUES(1,aaaa);

16:10:44 SQL> INSERT INTO testtc VALUES(2,bbbb);

16:10:44 SQL> INSERT INTO testtc VALUES(3,cccc);

16:10:46 SQL>COMMIT;

刪除testtb表:

16:11:55 SQL> DROP TABLE testtc;

從回收站中閃回刪除的testtc表:

16:12:34 SQL> FLASHBACK TABLE testtc TO BEFORE DROP;

查詢testtc表內容:

16:13:19 SQL> SELECT * FROM testtc;

執行后,部分顯示結果如下:

ID NAME

---------- ----

1 aaaa

2 bbbb

3 cccc

結果顯示說明,被刪除testtc表已從回收站中恢復。

Oracle在刪除一個表時,并不立即丟棄它,而是把它放在回收站中,并保留盡可能長的時間。閃回刪除能夠像Windows操作系統一樣,將回收站中被刪除的對象方便地恢復,但閃回刪除只能恢復表、索引等對象,對于用戶等對象,閃回刪除無能為力。

通過以上驗證可能看出,采用閃回技術,可以針對行級和事務級發生過變化的數據進行恢復,縮短數據恢復的時間,且操作簡單,這樣做大大提高了數據庫恢復的效率。

4 結 語

最后,我們需要再說明以下幾點:一是閃回技術具有強大且簡便的數據庫恢復功能,是否就不需要再做數據庫備份和不完全恢復了呢?答案是否定的,因為當出現介質損壞時,任何閃回方法都是毫無用處,此時,只能執行標準的備份、還原與恢復過程;二是要實現各種閃回功能,必須要先對數據庫進行相應設置,如啟動閃回數據庫、啟動數據庫的“回收站”、啟動表的行移動等;三是除了以上介紹的3種閃回技術外,還要有閃回版本查詢(Flashback Version Query)、閃回事務查詢(Flashback Transaction Query)、閃回查詢(Flashback Query)和閃回數據歸檔(Flashback Data Archive)等閃回方法。

參 考 文 獻

[1]張曉明. Oracle DBA突擊[M]. 北京:人民郵電出版社, 2009.

[2]王東明. Oracle 11g 管理備份恢復從入門到精通[M].北京:中國水利水電出版社, 2008.

[3]汪照東. Oracle 11g數據庫管理與優化寶典[M].北京:電子工業出版社, 2008.

[4]曾傳軍,傅秀芬,彭小玲,等. Oracle閃回技術在數據恢復中的應用[J]. 微型機與應用, 2010(16): 94-96,99.

[5]夏月平.關于Oracle閃回技術的應用研究分析[J]. 科學與財富,2011(11):314-316.

主站蜘蛛池模板: 爆乳熟妇一区二区三区| 国产丝袜精品| 国产自在自线午夜精品视频| 国产日韩欧美在线播放| 日本精品一在线观看视频| 欧美在线三级| 这里只有精品免费视频| 99久久国产精品无码| 青青国产视频| 久久毛片基地| 四虎影视国产精品| 九色视频最新网址| 米奇精品一区二区三区| 亚洲av片在线免费观看| 亚洲精品色AV无码看| 欧美三級片黃色三級片黃色1| 91精品人妻一区二区| 欧美国产在线看| 九九热精品在线视频| 国产乱人激情H在线观看| 中文毛片无遮挡播放免费| 欧美另类第一页| 欧美日韩北条麻妃一区二区| 国产精品无码久久久久久| 国产主播一区二区三区| 日本黄色a视频| 日韩精品欧美国产在线| 强奷白丝美女在线观看| 久久亚洲AⅤ无码精品午夜麻豆| 国产精品漂亮美女在线观看| 波多野结衣一区二区三区四区| AV无码国产在线看岛国岛| 国产啪在线91| 在线亚洲精品福利网址导航| 自慰网址在线观看| 欧美亚洲综合免费精品高清在线观看| 久久夜色精品国产嚕嚕亚洲av| 日韩精品免费一线在线观看| 麻豆国产在线观看一区二区| 国产jizzjizz视频| 免费aa毛片| 最新国产高清在线| 亚洲男人在线天堂| 天天摸夜夜操| 亚洲国产精品无码久久一线| 亚洲欧美精品在线| 亚洲男人的天堂久久精品| 成人va亚洲va欧美天堂| 91福利一区二区三区| 亚洲精品福利视频| 久久国产乱子伦视频无卡顿| 欧美无遮挡国产欧美另类| 亚洲综合激情另类专区| 免费不卡视频| 亚洲欧美在线综合一区二区三区| 成年人国产视频| 99免费视频观看| 日本欧美成人免费| 色偷偷av男人的天堂不卡| 女高中生自慰污污网站| 精品国产成人a在线观看| 欧美日韩综合网| 亚洲无码高清一区二区| 午夜国产精品视频黄| 全部免费特黄特色大片视频| 国产精品久久久久无码网站| 亚洲国产精品不卡在线| 91人妻日韩人妻无码专区精品| 色偷偷一区二区三区| 久久中文字幕av不卡一区二区| 久久精品丝袜| 99久久无色码中文字幕| 伊人欧美在线| 91无码国产视频| 亚洲另类国产欧美一区二区| 国产一区二区三区免费观看 | 国产99视频在线| 国产精品成人AⅤ在线一二三四| www.精品国产| 久久国产精品嫖妓| 在线观看精品国产入口| 国内精品免费|