當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘 要:當(dāng)數(shù)據(jù)庫發(fā)生誤刪除等邏輯錯誤時,傳統(tǒng)上只能通過執(zhí)行不完全恢復(fù)來恢復(fù)數(shù)據(jù),本文介紹了通過3種閃回技 術(shù),提高效率恢復(fù)數(shù)據(jù)庫邏輯錯誤的方法,并對3種閃回技術(shù)進(jìn)行了分析比較。

引言

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

1閃回技術(shù)的功能

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

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

SQL>INSERT INTO testta VALUES。,'aaaa'); SQL>INSERT INTO testta VALUES(2,'bbbb'); SQL>INSERT INTO testta VALUES。,'cccc'); SQL>COMMIT ;

再執(zhí)行以下語句,設(shè)置顯示當(dāng)前時間:

SQL>SET TIME ON

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

14 : 11 : 29 SQL>DELETE testta ;

提交刪除事務(wù):

14 : 12 : 30 SQL>COMMIT ;

收稿日期:2014-01-08

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

表testta中已沒有記錄。由于刪除事務(wù)已提交成功,如想 恢復(fù)被刪除的記錄,傳統(tǒng)的方法只能是執(zhí)行數(shù)據(jù)庫的不完全 恢復(fù)?,F(xiàn)在釆用閃回數(shù)據(jù)庫(Flashback Database)的方法恢 復(fù)刪除數(shù)據(jù),操作如下。

關(guān)閉數(shù)據(jù)庫,將數(shù)據(jù)庫設(shè)置到裝載(mount)狀態(tài)。

14 : 14 : 47 SQL>SHUTDOWN IMMEDIATE

14 : 15 : 04 SQL>STARTUP MOUNT

利用閃回數(shù)據(jù)庫的方法,將數(shù)據(jù)庫整體調(diào)整到刪除數(shù)據(jù) 前的某一時間。

14 : 16 : 10 SQL>FLASHBACK DATABASE TO TIMESTAMP TO_DATE( '2013-12-23 14 : 11 : 27',,yyyy-mm-dd hh24 : mi: ss'); 使用RESETLOGS選項,打開數(shù)據(jù)庫。

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

查詢testta表內(nèi)容。

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

執(zhí)行后,部分顯示結(jié)果如下:

ID NAME

aaaa

bbbb

cccc

結(jié)果顯示說明,testta表中被刪除的數(shù)據(jù)已經(jīng)恢復(fù)。

2閃回數(shù)據(jù)庫的操作

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

創(chuàng)建測試表 testtb,在表中插入 3 條新記錄后,提交插入事務(wù) :

14 :43 :09 SQL> CREATE TABLE testtb( id INT,

name

VARCHAR2(4)) ;

1 4 :4 3 :2 0 S Q L > I N S E R T I N T O t e s t t b

VALUES(1,’aaaa’) ;

1 4 :4 3 :2 0 S Q L > I N S E R T I N T O t e s t t b

VALUES(2,’bbbb’) ;

1 4 :4 3 :2 0 S Q L > I N S E R T I N T O t e s t t b

VALUES(3,’cccc’) ;

14 :43 :20 SQL> COMMIT;

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

14 :44 :16 SQL>DELETE testtb ;

提交刪除事務(wù) :

14 :44 :26 SQL>COMMIT;

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

刪除事務(wù)已提交成功,testtb 表中已沒有記錄?,F(xiàn)采用閃回表的方法恢復(fù)刪除數(shù)據(jù)。

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

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

MOVEMENT;

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

14 :45 :27 SQL> FLASHBACK TABLE testtb TO

TIMESTAMP TO_TIMESTAMP(‘

2013-12-23 14 :44 :

00’,

YYYY-MM-DD HH24 :MI :SS’) ;

查詢 testtb 表內(nèi)容 :

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

執(zhí)行后,部分顯示結(jié)果如下:

ID NAME

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

1 aaaa

2 bbbb

3 cccc

結(jié)果顯示說明,testtb 表中被刪除的數(shù)據(jù)已經(jīng)恢復(fù)。

3 閃回表

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

創(chuàng)建測試表 testtc,表中插入 3 條新記錄后,提交插入事務(wù) :

16 :10 :43 SQL> CREATE TABLE testtc( id INT,

name

VARCHAR2(4)) ;

1 6 :1 0 :4 4 S Q L > I N S E R T I N T O t e s t t c

VALUES(1,’aaaa’) ;

1 6 :1 0 :4 4 S Q L > I N S E R T I N T O t e s t t c

VALUES(2,’bbbb’) ;

1 6 :1 0 :4 4 S Q L > I N S E R T I N T O t e s t t c

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 表內(nèi)容 :

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

執(zhí)行后,部分顯示結(jié)果如下:

ID NAME

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

1 aaaa

2 bbbb

3 cccc

結(jié)果顯示說明,被刪除 testtc 表已從回收站中恢復(fù)。

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

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

4結(jié)語

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

20211120_6198f2c06decf__閃回技術(shù)在數(shù)據(jù)庫誤刪除中的應(yīng)用

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉