閃回功能是oracle 9i引出的一個功能。
閃回技術是基於undo表空間來實現的,與閃回有聯繫的參數有:
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ---------------------------------- -----------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
這三個參數分別代表的意思是:
undo_management:表示的undo表空間是自動管理
undo_retention:表示的是undo表空間資料保留時間為900S
undo_tablespace:表示的是undo表空間名
要啟動閃回資料庫要有閃回恢復區,與閃回恢復區有關參數:
show parameter db_recover;
db_recovery_file_dest_size :表示設置的閃回區大小 ,儘量把這個參數設置大。
修改方法:alter parameter db_recovery_file_dest_size xx;
db_recovery_file_dest :表示閃回恢復區的路徑
----------------------------------------------------------------------------------------
要用閃回功能還要啟動閃回功能,預設是不啟動的,這樣會影響I/O,消耗大量的資源。
首先查看是否啟動閃回功能:
select flashback_on from v$database;
FLASHBACK_ON
--------------------------
NO

 

閃回功能有:閃回資料庫、閃回刪除、閃回查詢、閃回表

 

---閃回資料庫是基於undo的,屬於不完全恢復
啟動閃回閃回資料庫
看下資料庫是否運行在歸檔模式下:
archive log list;
如果是則用shutdown immediate;關閉資料庫,如果不是則啟動歸檔然後關閉資料庫
然後startup mount;啟動到mount狀態下
接著啟動閃回功能:alter database flashback on;
然後打開資料庫:alter database open;
然後再查看:select flashback_on from v$database;
FLASHBACK_ON
--------------------------
YES
這時就啟動了閃回資料庫功能。
閃回資料庫有基於時間的閃回、有基於SCN值的閃回
基於時間的閃回:
flashback database to timestamp('xxxx','YY-MM-DD HH24:MI:SS');
基於SCN值的閃回:
flashback database to scn xxxxxx;

 

------------------------------------------------------------------------------------------
閃回刪除是基於表空間回收站的,每個表空間都有資料自己的回收站,但是sys使用者不支援閃回,system表空間下的物件刪除也不進回收站,所以system表空間下的回收站沒有東西。
與回收站有關的參數命令:
1). purge tablespace tablespace_name : 用於清空表空間的Recycle Bin
2). purge tablespace tablespace_name user_name: 清空指定表空間的Recycle Bin中指定使用者的物件
3). purge recyclebin: 刪除當前使用者的Recycle Bin中的物件
4). purge dba_recyclebin: 刪除所有使用者的Recycle Bin中的物件,該命令要sysdba許可權
5). drop table table_name purge: 刪除物件並且不放在Recycle Bin中,即永久的刪除,不能Flashback恢復。
PS:回收站預設是關閉的,打開方面:
10g system級別:
alter system set recyclebin=off;
alter system set recyclebin=on;
11g system級別:
alter system set recyclebin=off deferred;
alter system set recyclebin=on deferred;

 

--------------------------------------------------------------------------------------------
閃回查詢:
可以利用查詢出來之前的資料
select count(1) from fra as of timestamp to_timestamp('2013-08-21
21:26:51','YYYY-MM-DD hh24:mi:ss');
把之前的資料插入到之前的表中
Insert into fra select * from fra as of timestamp to_timestamp('2013-08-21
21:26:51','YYYY-MM-DD hh24:mi:ss');

 

SELECT text
FROM dba_source
AS OF TIMESTAMP TO_TIMESTAMP ('XXXXX', 'YYYY-MM-
DD HH24:MI:SS')
WHERE owner = 'XXXX' AND name = '你刪除的物件名'
ORDER BY line;
----------------------------------------------------------------------------------------
查看一個參數是不是立即生效:

 

看v$parameter視圖 ISSES_MODIFIABLE 參數 值
false:表示是靜態參數,只要當instance重新開機時才會生效;
immediate:表示修改參數後立即生效
deferred:表示修改後要等下一個session才能生效,修改時已經連接的session是不會生效
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()