之前介绍了:Oracle数据库RMAN不完全恢复之基于SCN恢复,本文我们主要介绍一下Oracle数据库RMAN不完全恢复之基于日志序列号恢复的相关知识,希望能够对您有所帮助。
基于日志序列号恢复是指恢复数据库到指定日志序列号的状态。
--查看归档日志信息
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_
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
- 101.
- 102.
- 103.
可见不包括日志序列号为3的归档日志信息(oracle_seq3_act),即恢复到日志序列号为2的归档日志。
在执行了不完全恢复之后,推荐删除早期所有备份,重新备份数据库。
关于Oracle数据库RMAN不完全恢复之基于日志序列号恢复的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】