oracle 10g flashback database
flashback database是10g推出的一個重大改進,它可以讓我們不用做不完全恢復的情況下把資料庫"回滾"到過去的某一個時間點。
你可以在建立資料庫時設定flashback database,如果當時沒有設定,可以按下面的步驟進行設定:
1、設定flashback
--首先要把資料庫置於歸檔模式
sys@ORA10G> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
sys@ORA10G> startup mount
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250452 bytes
Variable Size 180357996 bytes
Database Buffers 427819008 bytes
Redo Buffers 2940928 bytes
資料庫裝載完畢。
sys@ORA10G> alter database archivelog;
資料庫已更改。
--設定flashback的幾個相關引數
--設定閃回區大小
sys@ORA10G> alter system set db_recovery_file_dest_size=2g;
系統已更改。
--設定閃回區檔案放置位置
sys@ORA10G> alter system set db_recovery_file_dest='g:flash';
系統已更改。
--開啟資料庫的閃回功能
sys@ORA10G> alter database flashback on;
資料庫已更改。
sys@ORA10G> alter database open;
資料庫已更改。
--最後驗證
sys@ORA10G> select FLASHBACK_ON from v$database;
FLASHBACK_ON
------------------
YES
2、測試flashback
--首先做一些破壞性工作
sys@ORA10G> truncate table suk.test;
表被截斷。
--透過V$FLASHBACK_DATABASE_LOG得到我們可以閃回的最早時間和最小scn
sys@ORA10G> SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME FROM V$FLASHBACK_DATABASE_LOG;
OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI
-------------------- -------------------
8061491 2007-09-06 22:22:55
--重啟資料庫到mount
sys@ORA10G> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
sys@ORA10G> startup mount
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250452 bytes
Variable Size 180357996 bytes
Database Buffers 427819008 bytes
Redo Buffers 2940928 bytes
資料庫裝載完畢。
--根據scn閃回資料庫
sys@ORA10G> flashback database to scn 8061491;
閃回完成。
--對資料庫執行閃回操作後必須用resetlogs方式開啟
sys@ORA10G> alter database open resetlogs;
資料庫已更改。
--檢驗資料
sys@ORA10G> select count(1) from suk.test;
COUNT(1)
----------
3
--從結果可以看到閃回成功
3、再次閃回
--open resetlogs後,還能不能閃回到open resetlogs時間點前的狀態呢?
--接著剛才的步驟插入一條資料
sys@ORA10G> insert into suk.test values(4,4);
已建立 1 行。
sys@ORA10G> commit;
提交完成。
sys@ORA10G> select count(1) from suk.test;
COUNT(1)
----------
4
--看看是否可以閃回
sys@ORA10G> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
sys@ORA10G> startup mount
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250452 bytes
Variable Size 180357996 bytes
Database Buffers 427819008 bytes
Redo Buffers 2940928 bytes
資料庫裝載完畢。
sys@ORA10G> flashback database to scn 8061491;
閃回完成。
sys@ORA10G> alter database open resetlogs;
資料庫已更改。
sys@ORA10G> select count(1) from suk.test;
COUNT(1)
----------
3
--從上面的測試結果看,在一次open resetlogs後仍然可以閃回到以前的時間點。
--查一下此時可以閃回的最早時間和scn
sys@ORA10G> SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME FROM V$FLASHBACK_DATABASE_LOG;
OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI
-------------------- -------------------
8061491 2007-09-06 22:22:55
到這裡可以得到一個結論:可以閃回到什麼時間點與open resetlogs無關,實際上,它是由db_flashback_retention_target引數決定的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63854/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Flashback New Features and Enhancements in Oracle Database 10gOracleDatabase
- Oracle 10g FLASHBACK DATABASE 實驗記錄Oracle 10gDatabase
- oracle flashback特性(3.2)--Flashback Database操作示例OracleDatabase
- Oracle 10g flashbackOracle 10g
- 應用oracle flashback--Flashback Database介紹OracleDatabase
- Oracle 閃回特性(FLASHBACK DATABASE)OracleDatabase
- 【徵文】應用oracle flashback(3.2)--Flashback Database操作示例OracleDatabase
- 全面學習oracle flashback特性(3.2)--Flashback Database操作示例OracleDatabase
- flashback version query in oracle 10gOracle 10g
- Oracle 10g 六種FlashbackOracle 10g
- Oracle -- flashback database基於ARC+flashback_log還是flashback_logOracleDatabase
- Flashback DatabaseDatabase
- flashback技術之---flashback databaseDatabase
- flashback database 方法Database
- 配置Flashback DatabaseDatabase
- oracle 10g flashback version query 和 flashback transaction query實驗Oracle 10g
- Oracle Flashback (9i & 10g) [zt]Oracle
- flashback系列文章三(flashback database)Database
- Scheduler in Oracle Database 10g(轉)OracleDatabase
- Rename Tablespace in Oracle database 10gOracleDatabase
- 關於flashback databaseDatabase
- How to enable the flashback database:Database
- 測試flashback databaseDatabase
- flashback database測試Database
- flashback總結一之Flashback_DatabaseDatabase
- Oracle Database 11g閃回技術flashbackOracleDatabase
- Oracle 10g Flashback 技術小結(zt)Oracle 10g
- Tablespace Management Enhancements in Oracle Database 10gOracleDatabase
- Oracle 10g新增DROP DATABASE命令Oracle 10gDatabase
- 啟用flashback database 功能Database
- 在Oracle DG Standby庫上啟用flashback database功能OracleDatabase
- ORACLE 閃回檢視v$flashback_database_log/statOracleDatabase
- oracle10g data guard(dg)__flashback_physical databaseOracleDatabase
- Oracle10g New Feature -- 4. Flashback DatabaseOracleDatabase
- Oracle 10g FlashBack簡單應用一則Oracle 10g
- [Flashback]Flashback Database閃回資料庫實驗Database資料庫
- Flashback database與flashback table使用條件區別Database
- oracle實驗記錄 (oracle 10G dataguard(10)flashback 與dg)Oracle