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閃回配置資料庫Oracle資料庫
- Oracle資料庫閃回Oracle資料庫
- Oracle資料庫閃回區空間不足Oracle資料庫
- Oracle閃回功能恢復偶然丟失的資料(轉)Oracle
- Orcale利用閃回功能恢復資料
- 詳解oracle資料庫閃回Oracle資料庫
- Oracle 閃回資料庫測試Oracle資料庫
- 2.6.3 指定閃回區
- Oracle 11G 閃回技術 閃回版本查詢和閃回事務查詢Oracle
- Flashback Drop閃回刪除功能實踐
- 【Oracle 12c資料庫支援閃回庫功能】實驗Oracle資料庫
- DM7閃回與閃回查詢
- dg_閃回資料庫實驗資料庫
- Oracle drop分割槽表單個分割槽無法透過閃回恢復Oracle
- 【RECO_ORACLE】Oracle閃回PDB的方法Oracle
- 【PDB】pdb閃回,Oracle還原點Oracle
- Oracle閃回技術--Flashback Version QueryOracle
- Oracle 11G 閃回技術 使用Oracle閃回事務查詢Oracle
- Oracle 12.2新特性: PDB級閃回資料庫(Flashback PDB)Oracle資料庫
- 【Flashback】Flashback Database閃回資料庫功能實驗Database資料庫
- Oracle 19C Data Guard基礎運維-07 failover後閃回恢復dg架構Oracle運維AI架構
- Oracle回收站表閃回機制研究Oracle
- MySQL閃回技術之binlog2sql恢復binlog中的SQLMySql
- 【DB寶43】MySQL誤操作閃回恢復利器之my2sqlMySql
- ORACLE 閃回檢視v$flashback_database_log/statOracleDatabase
- flashback query閃回資料
- DM8 閃回查詢
- 【Flashback】Flashback Drop閃回刪除功能實驗
- rac使用預設閃回區歸檔空間滿
- 【FLASHBACK】Oracle閃回及回收站相關語句參考Oracle
- Oracle閃回技術 概覽 應用程式開發功能Oracle
- my2sql資料閃回SQL
- 【趙強老師】MySQL的閃回MySql
- mysql閃回工具binlog2sqlMySql
- 工具分享丨資料閃回工具MyFlash
- [20180423]表空間閃回與snapshot standby
- MySQL工具之binlog2sql閃回操作MySql
- 閃迪隨身碟資料恢復資料恢復
- 一個非常老但是很有用的功能-閃回