Oracle閃回

Oracle閃回數據庫

做用:自動基於磁盤的備份與恢復,能把表恢復到過去的某個時間點或者SCN。
ide

 

1.查看閃回區索引

SQL> show parameter db_recovery_file_dest;  查看閃回區詳細信息事件

SQL> select flashback_on from v$database;    查看閃回區是否開啓get

 

2.修改閃回功能flash

SQL> startup mount;                                       數據庫啓動到mount下it

SQL> alterdatabase flashback on (off);           開啓關閉閃回區io

注:如遇到38706事件錯誤,多是由於歸檔不正確。先啓用數據庫歸檔。編譯

SQL> alter database archivelog;table

SQL> alter systemset db_flashback_retention_target=2880;

修改閃回時間,默認是1440分鐘(1天),閃回時間是指數據庫能回退的時間。

 

3.閃回使用實例:(注:sys用戶下不可用閃回)

3.1 閃回drop的表

在非sys用戶下建立表和表上索引,插入相關數據

create table abc (fnumber(9));

create index idx_teston abc(f);

insert into abc values(1);

insert into abc values(2);

insert into abc values(3);

 

3.2 刪除表

drop table abc;


3.3 刪除表以後,表並無被真正刪除,而是重命名以後放在同一用戶下的回收站內,同時表上的索引等也會被如此處理。回收站滿後以先進先出的原則管理。

查看錶語句        select* from tab;

查看索引語句    select index_name, index_type, table_name from ind;

查看回收站語句 show recyclebin;

清空回收站語句 PURGE RECYCLEBIN;

注:沒有放入回收站的表不能被閃回

 

3.4 閃回以後,便可再次看到表,可是表閃回後相應的索引等須要從新編譯。

flashback table abc to before drop;

 

3.5 閃回DML語句

Flashback table abc to timestamp to_timestamp(‘2014-02-14 16:00:00’,’yyyy-mm-dd hh24:mi:ss’)

閃回可能會遇到08189錯誤,執行下列語句

alter table test varchar enable row movement;


意思是容許Oracle修改rowid。Oracle插入數據時會爲該條數據分配惟一rowid而且不變,要啓用閃回功能必須開啓可修改rowid功能

閃回DML數據是使用回滾段進行恢復

 

附:查詢全部能夠撤消的操做,該操做依賴於undo_retention

SELECT versions_xidas xid,

       versions_startscn,

       versions_endscn,

      versions_operation 

FROM scott.abcVERSIONS between scn minvalue and maxvalue

 

查詢undo_retention參數

該參數保存了回滾段數據保存的秒時間,超過該時間則沒法閃回。默認爲15分鐘

修改該參數 alter system set undo_retention=3600;

相關文章
相關標籤/搜索