Oracle -- 閃回恢復區---實踐1---閃回庫
Flashback database 閃庫
從oracle10g開始提供了flashback database。
Oracle為了實現這一功能,另外建立了一組日誌,就是flashback logs(前滾日誌)
日誌記錄資料庫的前滾操作,並不是所有的改變都需要記錄,
只記錄一系列的前滾快照點,也就是一些時間點上塊的前映像,
根據這些快照點,加上歸檔日誌與聯機日誌,就可以恢復任何時間點上的記錄了
使用flashback database,資料庫必須處於歸檔狀態
執行閃庫必須在mount狀態
閃回資料儲存區
閃回需要產生閃回日誌 以及改前資料映像
這些預設都是放到閃回恢復區的 這個區域的大小,位置,保持時間都由引數來決定
引數db_recover_file_dest 定義路徑位置
引數db_recover_file_dest_size 定義區域大小 預設2G
引數db_flashback_retention_target定義保持力 預設1440分 就24小時
開啟閃庫
1.開啟歸檔
2.閃回區位置設定正確路徑和大小
db_recover_file_dest
db_recover_file_dest_size
3.啟用資料庫閃回 alter database flashback on
------------------- ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=7G scope=both;--------------------更改閃回區的大小
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/arc1/
Oldest online log sequence 52
Next log sequence to archive 54
Current log sequence 54
SQL>
SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 2G
SQL>
SQL> alter system set db_recovery_file_dest='/u01/oracle/flash_recovery_area';
System altered.
SQL>
SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 2G
SQL>
SQL> select FLASHBACK_ON from v$database;
FLASHBACK_ON
------------------
NO
SQL> alter database FLASHBACK ON
*
ERROR at line 1:
ORA-38759: Database must be mounted by only one instance and not open.
SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 75499088 bytes
Database Buffers 205520896 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL>
SQL> alter database FLASHBACK ON;
Database altered.
SQL> select FLASHBACK_ON from v$database;
FLASHBACK_ON
------------------
YES
SQL>
SQL> create table trun_test tablespace users as select * from scott.emp;
Table created.
SQL> create table del_test tablespace users as select * from scott.emp;
Table created.
SQL> select count(*) from scott.emp;
COUNT(*)
----------
14
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
925204
SQL>
SQL> truncate table trun_test;
Table truncated.
SQL> delete del_test;
14 rows deleted.
SQL> commit;
Commit complete.
SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 79693392 bytes
Database Buffers 201326592 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> flashback database to scn 925204;
Flashback complete.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
注意----->resetlogs 僅在不完全資料庫恢復後有效
SQL> alter database open resetlogs;
Database altered.
SQL> select count(*) from trun_test;
COUNT(*)
----------
14
SQL> select count(*) from del_test;
COUNT(*)
----------
14
SQL>
恢復到1天以前
FLASHBACK DATABASE TO TIMESTAMP SYSDATE-1;
(前提flashback log 資料保留的時間內
恢復到自定義的儲存點
儲存點建立方法 SQL> create restore point abc;
檢視 SQL> SELECT * FROM V$RESTORE_POINT;
刪除 SQL> drop restore point abc;
SQL> flashback database to restore point abc;
Flashback complete.
SQL>
從oracle10g開始提供了flashback database。
Oracle為了實現這一功能,另外建立了一組日誌,就是flashback logs(前滾日誌)
日誌記錄資料庫的前滾操作,並不是所有的改變都需要記錄,
只記錄一系列的前滾快照點,也就是一些時間點上塊的前映像,
根據這些快照點,加上歸檔日誌與聯機日誌,就可以恢復任何時間點上的記錄了
使用flashback database,資料庫必須處於歸檔狀態
執行閃庫必須在mount狀態
閃回資料儲存區
閃回需要產生閃回日誌 以及改前資料映像
這些預設都是放到閃回恢復區的 這個區域的大小,位置,保持時間都由引數來決定
引數db_recover_file_dest 定義路徑位置
引數db_recover_file_dest_size 定義區域大小 預設2G
引數db_flashback_retention_target定義保持力 預設1440分 就24小時
開啟閃庫
1.開啟歸檔
2.閃回區位置設定正確路徑和大小
db_recover_file_dest
db_recover_file_dest_size
3.啟用資料庫閃回 alter database flashback on
------------------- ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=7G scope=both;--------------------更改閃回區的大小
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/arc1/
Oldest online log sequence 52
Next log sequence to archive 54
Current log sequence 54
SQL>
SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 2G
SQL>
SQL> alter system set db_recovery_file_dest='/u01/oracle/flash_recovery_area';
System altered.
SQL>
SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 2G
SQL>
SQL> select FLASHBACK_ON from v$database;
FLASHBACK_ON
------------------
NO
SQL> alter database FLASHBACK ON
*
ERROR at line 1:
ORA-38759: Database must be mounted by only one instance and not open.
SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 75499088 bytes
Database Buffers 205520896 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL>
SQL> alter database FLASHBACK ON;
Database altered.
SQL> select FLASHBACK_ON from v$database;
FLASHBACK_ON
------------------
YES
SQL>
SQL> create table trun_test tablespace users as select * from scott.emp;
Table created.
SQL> create table del_test tablespace users as select * from scott.emp;
Table created.
SQL> select count(*) from scott.emp;
COUNT(*)
----------
14
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
925204
SQL>
SQL> truncate table trun_test;
Table truncated.
SQL> delete del_test;
14 rows deleted.
SQL> commit;
Commit complete.
SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 79693392 bytes
Database Buffers 201326592 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> flashback database to scn 925204;
Flashback complete.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
注意----->resetlogs 僅在不完全資料庫恢復後有效
SQL> alter database open resetlogs;
Database altered.
SQL> select count(*) from trun_test;
COUNT(*)
----------
14
SQL> select count(*) from del_test;
COUNT(*)
----------
14
SQL>
恢復到1天以前
FLASHBACK DATABASE TO TIMESTAMP SYSDATE-1;
(前提flashback log 資料保留的時間內
設定flashback log 資料保留的時間: SQL>alter system set db_flashback_retention_target=1440 scope=both;
如果你希望flashback database 能夠恢復的最早的時間點。預設值是1440,單位是minute,即24 小時,需要注意的是該引數雖然未直接指定flash recovery area大小,但卻受其制約,舉個例子假如資料庫每天有10%左右的資料變動的話,如果該初始化引數值設定為1440,則flash recovery area 的大小至少要是當前資料庫實際容量的10%,如果該初始化引數設定為2880,則flash recovery area 的大小就至少是資料庫所佔容量的20%。)
恢復到自定義的儲存點
儲存點建立方法 SQL> create restore point abc;
檢視 SQL> SELECT * FROM V$RESTORE_POINT;
刪除 SQL> drop restore point abc;
SQL> flashback database to restore point abc;
Flashback complete.
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28602568/viewspace-758922/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle閃回恢復區Oracle
- (f)--閃回恢復區---實踐2---閃回表(閃回DML部分資料會用到閃回查詢)
- Oracle資料庫的閃回恢復區Oracle資料庫
- Oracle10g閃回恢復區詳解--開啟,設定閃回區Oracle
- (f)--閃回恢復區---實踐3---閃回查詢(基於AUM (auto undo managemet))
- Oracle DBA2 ---- 閃回恢復Oracle
- Oracle10g閃回恢復區詳解Oracle
- 【備份恢復】閃回資料庫(一)閃回資料庫的管理資料庫
- 【備份恢復】 閃回技術之閃回刪除
- (f)--閃回恢復區-- 並行載入對閃庫的影響並行
- 【備份恢復】閃回資料庫(五)RMAN 命令列閃回資料庫資料庫命令列
- 【備份恢復】閃回資料庫(二) 基於 SCN 閃回資料庫資料庫
- 清空 oracle 閃回區Oracle
- Oracle閃回技術之閃回資料庫Oracle資料庫
- 【備份恢復】閃回技術之閃回版本查詢
- Oracle閃回技術 為Oracle閃回配置資料庫Oracle資料庫
- oracle 閃回基於時間的恢復Oracle
- Oracle procedure,package,function,triger 閃回 恢復OraclePackageFunction
- 【備份恢復】閃回資料庫(三)基於時間戳閃回資料庫資料庫時間戳
- 【備份恢復】閃回資料庫(四)基於可靠還原點閃回資料庫資料庫
- 閃回(關於閃回資料庫)資料庫
- 閃回查詢恢復過程
- oracle10g新特性:閃回恢復區(Flash recovery area)Oracle
- Oracle 閃回技術 概覽 資料庫閃回功能Oracle資料庫
- oracle閃回Oracle
- oracle 閃回Oracle
- Oracle閃回刪除恢復誤刪資料Oracle
- Oracle資料庫閃回Oracle資料庫
- Oracle閃回資料庫Oracle資料庫
- 【備份恢復】 閃回技術之閃迴歸檔
- Orcale利用閃回功能恢復資料
- Oracle資料庫閃回區空間不足Oracle資料庫
- Oracle 閃回區(Oracle Flash recovery area)Oracle
- Oracle閃回查詢恢復delete刪除資料Oracledelete
- [z] 利用閃回恢復被覆蓋的Oracle PACKAGE包OraclePackage
- oralce恢復誤刪除的表中的資料(閃回、閃回查詢)
- oracle 閃回 flashbackOracle
- oracle閃回特性Oracle