BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
11g进行主备库切换的时候要先检查主备库的切换状态:
primary:
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
------------------------------------------------------------
UNRESOLVABLE GAP
standby:
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
------------------------------------------------------------
RECOVERY NEEDED
但是主备库之间是通的,也就是主库切换一个日志可以传输到备库上,但是没有应用
查看日志应用情况
SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# APPLIED
---------- ---------------------------
1360 NO
1361 NO
1362 NO
1363 NO
1364 NO
1365 NO
1366 NO
1367 NO
1368 NO
1369 NO
为什么没有应用那???
查看备库的应用进程的情况
SQL> select process,status from v$managed_standby
2 ;
PROCESS STATUS
--------------------------- ------------------------------------
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
RFS IDLE
RFS IDLE
RFS IDLE
RFS IDLE
MRP0 WAIT_FOR_GAP----------------等待gap
那到底在等待那些gap?
SQL> select * from v$archive_gap;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
1 1358 1359
可以发现此时等待gap并没有传输到备库上,而备库接受的最低seq是1360,因为1359丢失导致后面的log并没有被应用
此时去查看主库的rman备份策略
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name MAILDATA are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/disk2/oracle/product/11.2.0/dbs/snapcf_maildata.f'; # default
RMAN> exit
发现竟然是1天的有效期,因为是隔天恢复的导致1359日志丢失了
找到1358这个log文件在备库上从新注册一下就可以
SQL> alter database register logfile '/home1/archivelog/1_1358_732816650.dbf';
Database altered.
此时再看备库的日志就发现正常了