基於日志序列號恢復是指恢復數據庫到指定日志序列號的狀態。
- --查看歸檔日志信息
- SQL> select * from t_user;
- TEXT
- --------------------
- Java_
- spring_
- spring mvc_
- SQL> insert into t_user select 'Oracle_' from dual;
- 1 row created.
- SQL> commit;
- Commit complete.
- SQL> alter system switch logfile;
- System altered.
- SQL> alter system checkpoint;
- System altered.
- SQL> select sequence#,name,first_change# from v$archived_log where status='A' order by sequence#;
- SEQUENCE# NAME FIRST_CHANGE#
- ---------- ---------------------------------------------------------------------------------------------------- -------------
- 1 /oracle/10g/Oracle/log/archive_log/archive_1_1_760487088.arclog 1214497
- 1 /oracle/10g/Oracle/log/archive_log2/archive_1_1_760487088.arclog 1214497
- 1 /oracle/10g/Oracle/product/10.2.0/db_1/Flash_recovery_area/ORALIFE/archivelog/2011_08_29/o1_mf_1_1_7 1214498
- 5q9bh9d_.arc
- 1 /oracle/10g/Oracle/log/archive_log/archive_1_1_760487985.arclog 1214498
- 1 /oracle/10g/Oracle/log/archive_log2/archive_1_1_760487985.arclog 1214498
- 1 /oracle/10g/Oracle/product/10.2.0/db_1/Flash_recovery_area/ORALIFE/archivelog/2011_08_29/o1_mf_1_1_7 1214497
- 5q95ksf_.arc
- 6 rows selected.
- SQL> insert into t_user select 'Oracle_seq3' from dual;
- 1 row created.
- SQL> commit;
- Commit complete.
- SQL> alter system switch logfile; --生成日志序列號為2的歸檔日志
- System altered.
- SQL> alter system checkpoint;
- System altered.
- SQL> select sequence#,name,first_change# from v$archived_log where status='A' order by sequence#;
- SEQUENCE# NAME FIRST_CHANGE#
- ---------- ---------------------------------------------------------------------------------------------------- -------------
- 1 /oracle/10g/Oracle/log/archive_log/archive_1_1_760487088.arclog 1214497
- 1 /oracle/10g/Oracle/log/archive_log2/archive_1_1_760487088.arclog 1214497
- 1 /oracle/10g/Oracle/product/10.2.0/db_1/Flash_recovery_area/ORALIFE/archivelog/2011_08_29/o1_mf_1_1_7 1214497
- 5q95ksf_.arc
- 1 /oracle/10g/Oracle/log/archive_log/archive_1_1_760487985.arclog 1214498
- 1 /oracle/10g/Oracle/log/archive_log2/archive_1_1_760487985.arclog 1214498
- 1 /oracle/10g/Oracle/product/10.2.0/db_1/Flash_recovery_area/ORALIFE/archivelog/2011_08_29/o1_mf_1_1_7 1214498
- 5q9bh9d_.arc
- 2 /oracle/10g/Oracle/log/archive_log/archive_1_2_760487985.arclog 1216167
- SEQUENCE# NAME FIRST_CHANGE#
- ---------- ---------------------------------------------------------------------------------------------------- -------------
- 2 /oracle/10g/Oracle/log/archive_log2/archive_1_2_760487985.arclog 1216167
- 2 /oracle/10g/Oracle/product/10.2.0/db_1/Flash_recovery_area/ORALIFE/archivelog/2011_08_29/o1_mf_1_2_7 1216167
- 5q9cvt1_.arc
- 9 rows selected.
- SQL> insert into t_user select 'Oracle_seq3_act' from dual;
- 1 row created.
- SQL> commit;
- Commit complete.
- SQL> alter system switch logfile; --生成日志序列號為3的歸檔日志
- System altered.
- SQL> alter system checkpoint;
- System altered.
- SQL> select sequence#,name,first_change# from v$archived_log where status='A' order by sequence#;
- SEQUENCE# NAME FIRST_CHANGE#
- ---------- ---------------------------------------------------------------------------------------------------- -------------
- 1 /oracle/10g/Oracle/log/archive_log/archive_1_1_760487088.arclog 1214497
- 1 /oracle/10g/Oracle/log/archive_log2/archive_1_1_760487088.arclog 1214497
- 1 /oracle/10g/Oracle/product/10.2.0/db_1/Flash_recovery_area/ORALIFE/archivelog/2011_08_29/o1_mf_1_1_7 1214497
- 5q95ksf_.arc
- 1 /oracle/10g/Oracle/log/archive_log/archive_1_1_760487985.arclog 1214498
- 1 /oracle/10g/Oracle/log/archive_log2/archive_1_1_760487985.arclog 1214498
- 1 /oracle/10g/Oracle/product/10.2.0/db_1/Flash_recovery_area/ORALIFE/archivelog/2011_08_29/o1_mf_1_1_7 1214498
- 5q9bh9d_.arc
- 2 /oracle/10g/Oracle/log/archive_log/archive_1_2_760487985.arclog 1216167
- SEQUENCE# NAME FIRST_CHANGE#
- ---------- ---------------------------------------------------------------------------------------------------- -------------
- 2 /oracle/10g/Oracle/log/archive_log2/archive_1_2_760487985.arclog 1216167
- 2 /oracle/10g/Oracle/product/10.2.0/db_1/Flash_recovery_area/ORALIFE/archivelog/2011_08_29/o1_mf_1_2_7 1216167
- 5q9cvt1_.arc
- 3 /oracle/10g/Oracle/log/archive_log/archive_1_3_760487985.arclog 1216186
- 3 /oracle/10g/Oracle/log/archive_log2/archive_1_3_760487985.arclog 1216186
- 3 /oracle/10g/Oracle/product/10.2.0/db_1/Flash_recovery_area/ORALIFE/archivelog/2011_08_29/o1_mf_1_3_7 1216186
- 5q9f4d6_.arc
- 12 rows selected.
- --恢復到日志序列號為3時的狀態
- [oracle@localhost ~]$ rman target sys/Oracle@oralife nocatalog
- RMAN> run {
- startup force mount;
- set until sequence=3;
- restore database;
- recover database;
- sql 'alter database open resetlogs';
- }
- --查看,可見不包括日志序列號為3的歸檔日志信息(Oracle_seq3_act),即恢復到日志序列號為2的歸檔日志
- SQL> conn sys/Oracle@oralife as sysdba
- Connected.
- SQL> select * from t_user;
- TEXT
- --------------------
- Java_
- spring_
- Oracle_
- Oracle_seq3
- spring mvc_
可見不包括日志序列號為3的歸檔日志信息(Oracle_seq3_act),即恢復到日志序列號為2的歸檔日志。
在執行了不完全恢復之後,推薦刪除早期所有備份,重新備份數據庫。
關於Oracle數據庫RMAN不完全恢復之基於日志序列號恢復的相關知識就介紹到這裡了,希望本次的介紹能夠對您有所收獲!