欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

oracle閃回恢復(fù)數(shù)據(jù)主要方法(閃回查詢(xún),閃回表,閃回庫(kù),回收站恢復(fù))

 更新時(shí)間:2025年02月11日 10:13:03   作者:@睡不醒的每天@  
這篇文章主要介紹了閃回查詢(xún)、閃回表和閃回?cái)?shù)據(jù)庫(kù)等數(shù)據(jù)庫(kù)恢復(fù)技術(shù),閃回查詢(xún)可以恢復(fù)指定時(shí)間點(diǎn)的數(shù)據(jù),閃回表可以將整個(gè)表恢復(fù)到過(guò)去某個(gè)時(shí)間點(diǎn),閃回?cái)?shù)據(jù)庫(kù)可以將整個(gè)數(shù)據(jù)庫(kù)回滾到過(guò)去某個(gè)時(shí)間點(diǎn),需要的朋友可以參考下

概要

1、閃回查詢(xún)通常只能恢復(fù)幾小時(shí)內(nèi)的數(shù)據(jù),因?yàn)閁ndo表空間的大小和保留策略限制了舊數(shù)據(jù)版本的保留時(shí)間‌。

2、在進(jìn)行閃回操作之前,建議備份當(dāng)前數(shù)據(jù)庫(kù)或相關(guān)數(shù)據(jù),以防止意外情況導(dǎo)致數(shù)據(jù)丟失。

3、閃回功能不依賴(lài)于日志,可以在線(xiàn)恢復(fù),無(wú)需關(guān)閉數(shù)據(jù)庫(kù),操作簡(jiǎn)單且恢復(fù)速度快‌1

閃回查詢(xún)恢復(fù)數(shù)據(jù)的主要方法包括:

基于時(shí)間的閃回查詢(xún)‌:

使用SELECT * FROM 表名 AS OF TIMESTAMP(時(shí)間點(diǎn))語(yǔ)句,可以查詢(xún)并恢復(fù)在指定時(shí)間點(diǎn)之前的數(shù)據(jù)狀態(tài)‌。

例如,要查詢(xún)10分鐘前的數(shù)據(jù),可以使用SELECT * FROM 表名 AS OF TIMESTAMP(SYSDATE-10/1440)‌。

1、基于時(shí)間區(qū)間來(lái)恢復(fù):恢復(fù)前5分鐘數(shù)據(jù),前20分鐘數(shù)據(jù)等

未更新前:4

delete update insert更新后:2

根據(jù)更新后的時(shí)間來(lái)確定數(shù)據(jù)要恢復(fù)的時(shí)間,比如恢復(fù)5分鐘前的數(shù)據(jù)、20分鐘前的等等時(shí)間段;

查詢(xún)3分鐘前的數(shù)據(jù):

語(yǔ)法:

SELECT * FROM 表名 AS OF TIMESTAMP(SYSDATE-3/1440)?;

此時(shí)查詢(xún)到的數(shù)據(jù)為更新發(fā)生后,前3分鐘的數(shù)據(jù),相當(dāng)于原來(lái)的數(shù)據(jù),未改變的數(shù)據(jù)。

實(shí)際工作中可以根據(jù)具體時(shí)間來(lái)恢復(fù),此時(shí)數(shù)據(jù)已經(jīng)查到了原來(lái)的舊數(shù)據(jù),創(chuàng)建新表拷貝閃回查詢(xún)的數(shù)據(jù):

閃回查詢(xún)前10分鐘的數(shù)據(jù)并拷貝到新表test_old中:

SQL> create table test_old as select * from test1 as of timestamp(sysdate-10/1440);

表已創(chuàng)建。

SQL> select * from test_old;

        NO NAME
---------- ----------
         1 aa
         2 bb
         3 cc
         4 dd

閃回查詢(xún)的數(shù)據(jù)已經(jīng)拷貝到新表test_old中,然后將原來(lái)的表test1表刪除,將test_old表名修改未test1,整個(gè)閃回查詢(xún)恢復(fù)數(shù)據(jù)流程到此恢復(fù)完成結(jié)束。

2、基于具體的時(shí)間來(lái)恢復(fù):20250107 17:15:43 、20250106 17:15:43

未更新前數(shù)據(jù):

未更新前數(shù)據(jù)庫(kù)系統(tǒng)時(shí)間:

此時(shí)的時(shí)間為表未發(fā)生任何變化的系統(tǒng)時(shí)間節(jié)點(diǎn),后期根據(jù)這個(gè)時(shí)間節(jié)點(diǎn)來(lái)恢復(fù)數(shù)據(jù),

更新表數(shù)據(jù):delete update insert

delete test_old where no='2'--刪除表中數(shù)據(jù)

表中操作已經(jīng)完成,查詢(xún)更新后的系統(tǒng)時(shí)間:

select to_char(sysdate,'yyyymmdd hh24:mi:ss') from dual  -- 更新表后的時(shí)間20250107 17:17:33

當(dāng)表中完成更新,得知更新前的系統(tǒng)時(shí)間和更新后的系統(tǒng),就可以根據(jù)具體時(shí)間來(lái)恢復(fù)數(shù)據(jù):

比如恢復(fù)到更新數(shù)據(jù)前系統(tǒng)的具體時(shí)間,上面第一次獲取的時(shí)間:

select * from test_old as of timestamp to_date('20250107 17:59:28','yyyymmdd hh24:mi:ss')   --恢復(fù)具體時(shí)間的數(shù)據(jù)

此時(shí)可以看到更新后,根據(jù)未更新前的系統(tǒng)時(shí)間來(lái)恢復(fù)了被更新的數(shù)據(jù),創(chuàng)建新表拷貝恢復(fù)的數(shù)據(jù),更新為原來(lái)的表,整個(gè)恢復(fù)流程完成,后期頻繁的去更新只要知道具體的時(shí)間一定時(shí)間內(nèi)都能正常恢復(fù)到為操作前的狀態(tài)。

更新中:…

基于scn閃回查詢(xún)恢復(fù)數(shù)據(jù)

1、獲取未操作前的scn值:

select  dbms_flashback.get_system_change_number from dual  --獲取當(dāng)前的scn 27511490  

此時(shí)scn值未任何操作時(shí)候的scn。

2、對(duì)表進(jìn)行delete update insert(更新);

delete test_old where no=5;

更新成功,

3.獲取更新后的 scn:

此時(shí)更新操作前和操作后的值都獲取到了,可以更新scn數(shù)值區(qū)間進(jìn)行閃回查詢(xún):27511490- 27512132,

4、根據(jù)scn閃回查詢(xún):

語(yǔ)法: select * from test_old as of scn 數(shù)值;select * from test_old as of scn 27511490–根據(jù)scn的區(qū)間來(lái)一步一進(jìn)行閃回查詢(xún) 27511490- 27512132,之間取值

此時(shí)根據(jù)更新前的scn閃回查詢(xún)返回到了,未操作前的狀態(tài),然后新建立表拷貝閃回查詢(xún)的數(shù)據(jù)進(jìn)行恢復(fù)即可:

create table test2_old as select * from test_old as of scn 27511490;

此時(shí)將scn閃回查詢(xún)的數(shù)據(jù)已經(jīng)恢復(fù)到新表中,可以對(duì)新表對(duì)象進(jìn)行任何操作。

注意:

1、如果只有操作后的scn可以根據(jù)scn數(shù)據(jù)值大小一個(gè)一個(gè)去測(cè)試,知道閃回查詢(xún)

2、如果有操作前后區(qū)間的scn值,可以根據(jù)區(qū)間去一一測(cè)試,直到閃回查詢(xún)

···**閃回查詢(xún)只要查看過(guò)去具體時(shí)間點(diǎn)的數(shù)據(jù)變化**···

閃回表

如果表結(jié)構(gòu)沒(méi)有發(fā)生改變,并且用戶(hù)有flash any table權(quán)限,可以使用ALTER TABLE 表名 ENABLE ROW MOVEMENT和FLASHBACK TABLE 表名 TO TIMESTAMP(時(shí)間點(diǎn))語(yǔ)句來(lái)將整個(gè)表閃回到指定的時(shí)間點(diǎn)‌45。

閃回?cái)?shù)據(jù)庫(kù)‌:

閃回?cái)?shù)據(jù)庫(kù)功能允許將整個(gè)數(shù)據(jù)庫(kù)回滾到過(guò)去某個(gè)時(shí)間點(diǎn),但這通常用于更嚴(yán)重的災(zāi)難恢復(fù)場(chǎng)景,并且需要配置恢復(fù)區(qū)(Flash Recovery Area)‌2。

‌利用“回收站”恢復(fù)被DROP的表‌:

當(dāng)使用DROP命令刪除表時(shí),Oracle并不會(huì)立即清空表所占用的空間,而是將表的信息放到一個(gè)虛擬的“回收站”中。在塊未被重新使用之前,可以通過(guò)查詢(xún)user_tables視圖或user_recyclebin來(lái)找到被刪除的表,并進(jìn)行恢復(fù)‌

總結(jié)

到此這篇關(guān)于oracle閃回恢復(fù)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)oracle閃回恢復(fù)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論