OraclePhysicalDataGuard使用RMAN增量备份修复GAP(一)

2014-11-24 16:55:48 · 作者: · 浏览: 0

当Physical DataGuard主库归档日志丢失,使用RMAN或者OS命令删除了归档日志,并且归档日志未传输到Standby端,这样Standby端会产生GAP,可以将Primary端的归档拷贝到Standby端然后使用register命令注册,

例如ALTER DATABASE REGISTER LOGFILE '/arch/ARC0000000068_0839199018.0001',在Primary归档日志被删除的情况下,可以使用RMAN增量备份来修复GAP,实验环境Oracle10g

DataGuard搭建步骤参考
--解决步骤
--Standby查询缺少归档日志号,可以看到seq# 38 ~ seq# 67的归档日志丢失未应用
SQL> select first_time,first_change#,next_change#,sequence# from v$log_history;


FIRST_TIME FIRST_CHANGE# NEXT_CHANGE# SEQUENCE#
------------------- ------------- ------------ ----------
2014-02-10 18:04:16 599380 629351 1
2014-02-10 18:05:28 629351 637595 2
2014-02-10 18:08:38 637595 637597 3
2014-02-10 18:08:39 637597 637601 4
2014-02-10 18:08:45 637601 637603 5
2014-02-10 18:08:46 637603 639724 6
2014-02-10 19:04:45 639724 639862 7
2014-02-10 19:04:49 639862 640638 8
2014-02-10 19:29:05 640638 640664 9
2014-02-10 19:29:54 640664 640666 10
2014-02-10 19:29:55 640666 640668 11
2014-02-10 19:29:56 640668 640670 12
2014-02-10 19:29:58 640670 643748 13
2014-02-10 21:42:28 643748 643879 14
2014-02-10 21:47:02 643879 643983 15
2014-02-10 21:50:36 643983 644027 16
2014-02-10 21:51:33 644027 644177 17
2014-02-10 21:56:47 644177 644196 18
2014-02-10 21:56:56 644196 644256 19
2014-02-10 21:58:42 644256 644274 20
2014-02-10 22:50:18 644275 650789 1
2014-02-10 23:03:43 650789 650791 2
2014-02-10 23:03:46 650791 650794 3
2014-02-10 23:03:51 650794 650798 4
2014-02-10 23:04:01 650798 675198 5
2014-02-11 12:43:59 675198 679827 6
2014-02-11 14:49:31 679827 679929 7
2014-02-11 14:52:05 679929 680026 8
2014-02-11 14:54:09 680026 680132 9
2014-02-11 14:56:43 680132 681334 10
2014-02-11 15:25:54 681334 701447 11
2014-02-13 22:08:41 701447 721714 12
2014-02-13 22:10:53 721714 742653 13
2014-02-13 22:17:29 742653 744515 14
2014-02-13 22:20:27 744515 744524 15
2014-02-13 22:20:51 744524 744527 16
2014-02-13 22:20:55 744527 746370 17
2014-02-13 23:05:53 746370 746373 18
2014-02-13 23:05:55 746373 746376 19
2014-02-13 23:05:59 746376 746378 20
2014-02-13 23:06:01 746378 746787 21
2014-02-13 23:15:51 746787 748433 22
2014-02-13 23:40:04 748433 748484 23
2014-02-13 23:42:25 748484 748572 24
2014-02-13 23:46:44 748572 749008 25
2014-02-13 23:57:59 749008 749010 26
2014-02-13 23:57:59 749010 749013 27
2014-02-13 23:58:05 749013 770685 28
2014-02-16 22:01:05 770685 780391 29
2014-02-16 22:01:56 780391 780398 30
2014-02-16 22:02:12 780398 782583 31
2014-02-16 23:10:40 782583 782585 32
2014-02-16 23:10:40 782585 782587 33
2014-02-16 23:10:43 782587 782917 34
2014-02-16 23:11:55 782917 782919 35
2014-02-16 23:11:55 782919 782922 36
2014-02-16 23:12:01 782922 783058 37


57 rows selected.


SQL> select sequence#,applied from v$archived_log where applied='YES';


SEQUENCE# APP
---------- ---
19 YES
20 YES

18 YES
21 YES
17 YES
22 YES
23 YES
24 YES
25 YES
26 YES
27 YES
28 YES
29 YES
30 YES
31 YES
32 YES
33 YES
34 YES
35 YES
36 YES
37 YES


21 rows selected.


SQL> select sequence#,applied from v$archived_log;


SEQUENCE# APP
---------- ---
19 YES
20 YES
18 YES
21 YES
17 YES
22 YES
23 YES
24 YES
25 YES
26 YES
27 YES
28 YES
29 YES
30 YES
31 YES
32 YES
33 YES
34 YES
35 YES
36 YES
37 YES
68 NO
69 NO
70 NO
71 NO
72 NO
73 NO
74 NO
75 NO
76 NO
77 NO


31 rows selected.

--Standby查询GAP信息,发现seq# 38 ~ seq# 67丢失
SQL> select * from v$archive_gap;


THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
1 38 67


SQL>

--在Primary上查询seq#丢失的的归档是否存在,这里查询结果是不存在
SQL> select name from v$archived_log where thread#=1 and dest_id=1 and sequence#