Oracle 資料庫 回滾到指定時間

2021-10-11 18:18:12 字數 2166 閱讀 8271

實用開發之-oracle表回滾到乙個指定時間的操作語句

在開發或客戶使用過程中,難免會出現誤操作或髒資料,那麼怎麼迅速處理這個問題呢?

1.備份還原就用了,太麻煩。

就是使用oracle的備份功能,然後在還原,還原的時候新建乙個庫,然後使用dblink進行連線。

將資料導回去。

2.使用oracle的還原操作,但是這個操作只能還原資料,表發生改變就不能了,切記。這個語句是這樣的:

---說明這個語句來自網路:位址:這裡就是筆記。

select * from 表名 as of timestamp to_timestamp('2014-6-19 1:10:00','yyyy-mm-dd hh24:mi:ss');

alter table 表名 enable row movement;

flashback table 表名 to timestamp to_timestamp('2011-03-04 05:00:00','yyyy-mm-dd hh24:mi:ss');

測試:create table  a (

a number,

b number

)select sysdate from dual;2014-6-20 17:35:50

insert into a values(1,2);

insert into a values(2,2);

insert into a values(3,2);

insert into a values(4,2);

insert into a values(5,2);

insert into a values(6,2);

檢視現在的效果圖:

檢視剛建完表時的資料:

執行回滾操作,執行之後的結果:

到此,我們可以看出,這個操作真的好用,ok。我們來分析一下,到底做了什麼操作,如果你早就懂了,就過了吧。留步,大手,對了,給樓主推薦基本書學習下啊!

select * from a as of timestamp to_timestamp('2014-6-20 17:35:50','yyyy-mm-dd hh24:mi:ss');

as of:截至,就是到某乙個事件。

to_timestamp():時間轉換函式,轉換成更加下精確,和to_date()作用一樣。

asoftimestamp查詢這個表到某一時刻。

asoftimestamp但是在某些情況下,我們建議使用asofscn的方式執行flashback query。如需要對多個相互有主外來鍵約束的表進行恢復時,如果使用asoftimestamp的方式,可能會由於時間點不統一的緣故造成資料選擇或插入失敗,通過asofscn方式則能夠確保記錄處理的時間點一致。

alter table a enable row movement;

enable row movement:行遷移,意思就是,乙個現存的行允許改變其rowid(物理儲存位址),通常情況下,資料行在分配了空間之後,行的rowid就固定了,即使以後行長度超出預留的空間,也不會將其移動,在長資料行的情況下,表會產生行鏈結,對於io來說,行鏈結是不利的,為了效能,就需要將行調整為在單個物理儲存位址下能儲存行的所有資訊,這需要行遷移.另外在flashback的時候,由於原始版本的行佔據了相應的實體地址,所以,也需要行遷移.

其它的,比如說在收縮段空間的情況下,由於要把所有段資料向段前擠壓,大部分行都需要改變其實體地址.也需要行遷。

flashback table a to timestamp to_timestamp('2014-6-20 17:35:50','yyyy-mm-dd hh24:mi:ss');

flashback table還原到某一點!

oracle表資料回滾到指定時間

需要回滾的表 select t.t.rowid from cases t row movement 從字面意思解釋為行移動.預設情況下,oracle資料塊中的一行其生命週期內是不會發生移動的,即其rowid不會發生改變.但是在某些情景下,我們希望行的rowid可以發生變化,這時候我們就需要啟動表的r...

oracle表回滾到乙個指定時間的操作語句

在開發或客戶使用過程中,難免會出現誤操作或髒資料,那麼怎麼迅速處理這個問題呢?1.備份還原就用了,太麻煩。就是使用oracle的備份功能,然後在還原,還原的時候新建乙個庫,然後使用dblink進行連線。將資料導回去。2.使用oracle的還原操作,但是這個操作只能還原資料,表發生改變就不能了,切記。...

Oracle資料庫定時同步

通過執行定時任務從源資料庫 sourcedb 向目標資料庫 targetdb 進行資料同步操作。資料庫版本一致是進行資料同步的前置條件 在配置oracle客戶端的伺服器上執行以下命令 exp username password sourcedb file export home oracle dat...