環境:
OS:Red Hat Linux As 5
DB:Oracle 10.2.0.4
下面我們類比歸檔日誌丟失後的不完全恢複.
1.備份資料庫
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
backup database format '/u02/rman_bak/full_%u_%T.bak';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
2.執行不完全恢複,目的是使日誌複位,這裡的時間點是備份組產生後的時間點.
run{
set until time "to_date('2012-07-06 21:52:00','YYYY-MM-DD HH24:MI:SS')";
restore database;
recover database;
}
使日誌複位
RMAN> alter database open resetlogs;
database opened
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 0
Next log sequence to archive 1
Current log sequence 1
3.再次備份資料,用來類比日誌丟失後的恢複
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
backup database format '/u02/rman_bak/full_%u_%T.bak';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
4.類比資料
SQL>connect scott/scott
SQL> create table tb_test
(
id number,
remark varchar2(30),
create_time date default sysdate
);
Table created.
SQL>connect / as sysdba
寫入第一條記錄,並產生歸檔日誌1
SQL>insert into scott.tb_test values(1,'第一次切換',sysdate);
SQL>commit;
SQL>alter system switch logfile;
這個時候會產生歸檔日誌1
[oracle@hxl 2012_07_06]$ ls
o1_mf_1_1_7zfx44j4_.arc
寫入第二條記錄,並產生歸檔日誌2
SQL>insert into scott.tb_test values(2,'第二次切換',sysdate);
SQL>commit;
SQL>alter system switch logfile;
這個時候會產生歸檔日誌2
[oracle@hxl 2012_07_06]$ ls -1
o1_mf_1_1_7zfx44j4_.arc
o1_mf_1_2_7zfxmbq9_.arc
寫入第三條記錄,並產生歸檔日誌3
SQL>insert into scott.tb_test values(3,'第三次切換',sysdate);
SQL>commit;
SQL>alter system switch logfile;
這個時候會產生歸檔日誌3
[oracle@hxl 2012_07_06]$ ls -1
o1_mf_1_1_7zfx44j4_.arc
o1_mf_1_2_7zfxmbq9_.arc
o1_mf_1_3_7zfy5jnz_.arc
寫入第四條記錄,並產生歸檔日誌4
SQL>insert into scott.tb_test values(4,'第四次切換',sysdate);
SQL>commit;
SQL>alter system switch logfile;
這個時候會產生歸檔日誌4
[oracle@hxl 2012_07_06]$ ls -1
o1_mf_1_1_7zfx44j4_.arc
o1_mf_1_2_7zfxmbq9_.arc
o1_mf_1_3_7zfy5jnz_.arc
o1_mf_1_4_7zfyth7x_.arc
5.我們使用不完全恢複恢複產生歸檔日誌的時間點,記錄該時間點'2012-07-06 22:50:00'
[oracle@hxl 2012_07_06]$ ls -al
total 14264
drwxr-x--- 2 oracle oinstall 4096 Jul 6 22:50 .
drwxr-x--- 11 oracle oinstall 4096 Jul 6 21:52 ..
-rw-r----- 1 oracle oinstall 9038848 Jul 6 22:21 o1_mf_1_1_7zfx44j4_.arc
-rw-r----- 1 oracle oinstall 5408256 Jul 6 22:30 o1_mf_1_2_7zfxmbq9_.arc
-rw-r----- 1 oracle oinstall 41984 Jul 6 22:39 o1_mf_1_3_7zfy5jnz_.arc
-rw-r----- 1 oracle oinstall 45568 Jul 6 22:50 o1_mf_1_4_7zfyth7x_.arc