oracle閃回技術

2021-06-07 10:03:39 字數 2717 閱讀 7870

1,閃回資料庫到之前某時間點(在安裝時需要開放閃回功能)

不支援表空間刪除

select name from v$database;

--看是否開啟閃回功能

select flashback_on,name from v$database;

select name from v$bgprocess where paddr<>'00' order by 1;

開啟閃回功能

sql> shutdown immediat

sql> startup mount

sql> alter database flashback on;

sql> alter database open;

修改閃回時間(預設是一天1440)

sql> alter system set db_flashback_retention_target=2880

rman> backup recovery files;--執行此程式,必須要有磁帶

執行資料庫閃回,必須是在mount,readonly狀態

如果重建了控制檔案,則修改控制檔案以前的資料是不可以閃回的。

例子;create table t2( a int);

insert into t2 values(1);

insert into t2 values(2);

insert into t2 values(5);

alter system switch logfile;

t2 10:35

insert into t2 values(100);

alter system switch logfile;

insert into t2 values(200);

閃回到某時間點

flashback database to time = to_date('2004-05-27 16:00:00','yyyy-mm-dd hh24:mi:ss');

flashback database   2  to timestamp(sysdate-1/24);

查日誌程序

select * from v$log;

恢復到某過程sequence為查詢的sequence,thread

把狀態置為mount狀態

flashback database to sequence=58 thread=1;

開啟資料庫

alter database open resetlogs;

2,閃回drop表,資料(普通使用者都可以操作)

原理:是把放到資料庫**站的物件,資料拉回來

凡不放**站的物件都不能閃回.

sql>create table t1(a int);

sql>drop table t1;

閃回後,把刪除的表,及索引都會恢復

sql>flashback table t1 to before drop;

語法:flashback table to before drop [rename to ]

可以用下面的命令或查詢檢視刪除的表;

show recyclebin;

select * from recyclebin --where original_name='t1';

dba的**站

select owner, original_name, object_name,

type, ts_name, droptime, related, space

from dba_recyclebin

where can_undrop = 'yes';

使用者**站

select original_name, object_name,       

type, ts_name, droptime, related, space

from user_recyclebin

where can_undrop = 'yes';

表實際不沒有刪除,只是改了乙個名子,放到**站了

索引名子依然沒變。

a,用sys使用者刪除的表不可以閃回。

如conn / as sysdba

alter table cbsd.t1 move tablespace system;

drop table cbsd.t1;

則不可以閃回

b.索引,物化檢視,刪除後不可以閃回

3.閃回事務查詢

alter table t1 enable row movement;

查詢所有可以撤消的操作

select versions_xid as xid,

versions_startscn,

versions_endscn,

versions_operation 

from t1 versions between scn minvalue and maxvalue

where a = 20;

撤消資料

update 3-->5 undo data

資料放在undo tablespace

sql>show parameter undo;

sql>select file_name from dba_data_files where tablespace_name='undotbs1';

閃回資料:rvwr+閃回日誌+歸檔日誌

閃回現有表:undo tablespace

閃回刪除表:表原來物理位置

oracle閃回技術

查詢某一時刻資料庫中資料狀態語句 select from abc as of timestamp to timestamp 2015 08 24 10 31 00 yyyy mm dd hh24 mi ss 閃回dml語句 flashback table abc to timestamp to ti...

Oracle 閃回技術

允許復原資料庫到某個時間點,從而撤銷自該時間以後的所有更改。主要利用閃回日誌檢索資料塊的舊版本,同時它也依賴歸檔重做日誌完全地恢復資料庫,不用復原資料檔案和執行傳統的介質恢復 閃回前提 資料庫為歸檔模式 查詢當前資料庫是否為歸檔模式 archive log list 非歸檔執行如下 歸檔跳過 shu...

Oracle閃回技術

閃回技術 flashback 檢視 站 recyclebin select from recyclebin 恢復 站中的表 語法結構 flashback table 表名 to before drop flashback table t score to before drop 清空 站 purge...