一:问题描述

主备库所在机器都重启后,rac(主库)开机自动启动,但备库(单实例)不是开机启动,现已手工启动到mount,并已在备库上alter database recover  standby database disconnect from session;。

发现主库归档日志无法同步到备库:

rac1:

FAL[client]: Failed to request gap sequence  GAP - thread 1 sequence 29-29-LMLPHP

rac2:

FAL[client]: Failed to request gap sequence  GAP - thread 1 sequence 29-29-LMLPHP

备库:

FAL[client]: Failed to request gap sequence  GAP - thread 1 sequence 29-29-LMLPHP

FAL[client]: Failed to request gap sequence  GAP - thread 1 sequence 29-29-LMLPHP

--奇怪的是,v$archive_gap竟然还为空。

查看报警日志:

FAL[client]: Failed to request gap sequence  GAP - thread 1 sequence 29-29-LMLPHP

二:解决办法

首先检查一下备库监听是否启动(当状态为‘ready’,表示已经启动)

如果监听未启动,则启动监听:lsnrctl start即可。

如果监听已经启动,则:

手工把缺的日志从主库scp/rcp拷过来,然后alter database register logfile.

三:具体步骤

比如下面是应该拷贝的日志:

+DATA/prod/1_29_856078807.arc  29      1

+DATA/prod/2_14_856078807.arc  14      2

+DATA/prod/1_30_856078807.arc  30      1

+DATA/prod/2_15_856078807.arc  15      2

+DATA/prod/2_16_856078807.arc  16      2

1:使用RMAN从ASM设备中拷贝出来所需归档文件

run {

copy archivelog '+DATA/PROD/1_29_856078807.arc' to '/home/oracle/1_29_856078807.arc';

copy archivelog '+DATA/PROD/1_30_856078807.arc' to '/home/oracle/1_30_856078807.arc';

copy archivelog '+DATA/prod/2_14_856078807.arc' to '/home/oracle/2_14_856078807.arc';

copy archivelog '+DATA/prod/2_15_856078807.arc' to '/home/oracle/2_15_856078807.arc';

copy archivelog '+DATA/prod/2_16_856078807.arc' to '/home/oracle/2_16_856078807.arc';

}

Starting backup at 27-AUG-14

using channel ORA_DISK_1

channel ORA_DISK_1: starting archive copy

input archive log thread=1 sequence=29 recid=82 stamp=856665609

output filename=/home/oracle/1_29_856078807.arc recid=89 stamp=856669631

channel ORA_DISK_1: archivelog copy complete, elapsed time: 00:00:02

Finished backup at 27-AUG-14

……

2:在备库查看归档路径

SQL> archive log list;

Database log mode        Archive Mode

Automatic archival        Enabled

Archive destination        /arch/sdyprod

Oldest online log sequence     0

Next log sequence to archive   0

Current log sequence        0

3:在主库将未同步的归档日志拷贝到备库

[oracle@rac1 ~]$ scp 2* 192.168.8.225:/arch/sdyprod/

[email protected]'s password:

2_14_856078807.arc                                                                                                                                           100% 1024     1.0KB/s   00:00

2_15_856078807.arc                                                                                                                                           100%  121KB 120.5KB/s   00:00

2_16_856078807.arc                                                                                                                                           100%   20KB  20.0KB/s   00:00

[oracle@rac1 ~]$ scp 1* 192.168.8.225:/arch/sdyprod/

[email protected]'s password:

1_29_856078807.arc                                                                                                                                           100% 5356KB   5.2MB/s   00:01

1_30_856078807.arc                                                                                                                                           100%   12MB  11.7MB/s   00:00

[oracle@rac1 ~]$

4:在备库取消日志应用

SQL> alter database recover managed standby database cancel;

Database altered.

5:注册日志文件

SQL> alter database register logfile '/arch/sdyprod/1_29_856078807.arc';

……

Database altered.

SQL> alter database register logfile '/arch/sdyprod/2_16_856078807.arc';

Database altered.

6:开始日志应用

SQL> alter database recover managed standby database disconnect from session;

Database altered.

--本篇文章参考自:http://blog.itpub.net/14507784/viewspace-759605/

如果还是无法解决,可以参考文章:http://www.xifenfei.com/1176.html

05-11 11:15