主库为OEL 5.5 X86_64位的11gR2的双节点RAC,物理备库是OEL 5.5 X86_64位的单实例库,在主库的V$DATABASE动态性能表中看到节点2的SWITCHOVER_STATUS状态为FAILED DESTINATION:
1
2
3
4
5
6
7
8
|
SQL>
select
inst_id,current_scn,protection_mode,database_role,force_logging,open_mode,switchover_status
from
gv$
database
;
INST_ID CURRENT_SCN PROTECTION_MODE DATABASE_ROLE
FOR
OPEN_MODE SWITCHOVER_STATUS
------- ----------- -------------------- ------------- --- ---------- --------------------
2 16961718 MAXIMUM PERFORMANCE
PRIMARY
YES
READ
WRITE FAILED DESTINATION
1 16961719 MAXIMUM PERFORMANCE
PRIMARY
YES
READ
WRITE RESOLVABLE GAP
SQL>
|
并且在备库的alert文件里看到下述错误信息:
1
2
3
4
5
6
7
8
9
10
|
.....
Fri Mar 16 09:29:11 2012
Error 1031 received logging on to the standby
FAL[client, ARC1]: Error 1031 connecting to devdb2
for
fetching gap sequence
Errors
in
file
/u01/app/oracle/diag/rdbms/phydb/phydb/trace/phydb_arc1_3897
.trc:
ORA-01031: insufficient privileges
Errors
in
file
/u01/app/oracle/diag/rdbms/phydb/phydb/trace/phydb_arc1_3897
.trc:
ORA-01031: insufficient privileges
Fri Mar 16 09:33:06 2012
...
|
同样看到/u01/app/oracle/diag/rdbms/phydb/phydb/trace/phydb_arc1_3897.trc里也有类似的信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
*** 2012-03-16 09:29:11.683
OCISessionBegin failed. Error -1
.. Detailed OCI error val is 1031 and errmsg is 'ORA-01031: insufficient privileges
'
OCISessionBegin failed. Error -1
.. Detailed OCI error val is 1031 and errmsg is 'ORA-01031: insufficient privileges
'
*** 2012-03-16 09:29:11.738 4132 krsh.c
Error 1031 received logging on to the standby
*** 2012-03-16 09:29:11.741 4132 krsh.c
FAL[client, ARC1]: Error 1031 connecting to devdb2
for
fetching gap sequence
ORA-01031: insufficient privileges
ORA-01031: insufficient privileges
|
基本可以判断出是物理备库无法连接主库的节点2,提示权限不够,极有可能是口令文件的配置造成问题的原因。
果然,在主库上重新修改SYS用户口令之后,并将口令文件SCP至物理备库后,过一段时间后,物理备库alert文件出现下述正常信息:
1
2
3
4
5
6
7
8
9
10
|
Fri Mar 16 09:45:44 2012
RFS[5]: Assigned
to
RFS process 4212
RFS[5]: Identified
database
type
as
'physical standby'
: Client
is
ARCH pid 6051
RFS[5]: Opened log
for
thread 2
sequence
239 dbid 676938241 branch 772208260
Archived Log entry 496 added
for
thread 2
sequence
239 rlc 772208260 ID 0x28b1d7da dest 2:
RFS[5]: Opened log
for
thread 2
sequence
240 dbid 676938241 branch 772208260
Archived Log entry 497 added
for
thread 2
sequence
240 rlc 772208260 ID 0x28b1d7da dest 2:
RFS[5]: Opened log
for
thread 2
sequence
241 dbid 676938241 branch 772208260
Archived Log entry 498 added
for
thread 2
sequence
241 rlc 772208260 ID 0x28b1d7da dest 2:
Fri Mar 16 09:45:48 2012
|
到主库上重新查看SWITCHOVER_STATUS状态信息:
1
2
3
4
5
6
7
8
|
SQL>
select
inst_id,current_scn,protection_mode,database_role,force_logging,open_mode,switchover_status
from
gv$
database
;
INST_ID CURRENT_SCN PROTECTION_MODE DATABASE_ROLE
FOR
OPEN_MODE SWITCHOVER_STATUS
------- ----------- -------------------- ------------- --- ---------- --------------------
2 16961718 MAXIMUM PERFORMANCE
PRIMARY
YES
READ
WRITE
TO
STANDBY
1 16961719 MAXIMUM PERFORMANCE
PRIMARY
YES
READ
WRITE LOG SWITCH GAP
SQL>
|
备库执行Redo Apply:
1
|
SQL>
alter
database
recover managed standby
database
using
current
logfile disconnect
from
session;
|
最后,主库双节点日志全部传输至物理备库,且已经全部被应用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
SQL>
select
name
,thread#,
sequence
#,applied
from
v$archived_log ;
NAME
THREAD#
SEQUENCE
# APPLIED
------------------------------------------------------------ ---------- ---------- ---------
/home/oracle/arch/ARC_1_0000000335_772208260.arc 1 335 YES
/home/oracle/arch/ARC_2_0000000233_772208260.arc 2 233 YES
/home/oracle/arch/ARC_2_0000000234_772208260.arc 2 234 YES
/home/oracle/arch/ARC_2_0000000235_772208260.arc 2 235 YES
/home/oracle/arch/ARC_2_0000000236_772208260.arc 2 236 YES
/home/oracle/arch/ARC_1_0000000336_772208260.arc 1 336 YES
/home/oracle/arch/ARC_1_0000000338_772208260.arc 1 338 YES
/home/oracle/arch/ARC_1_0000000337_772208260.arc 1 337 YES
/home/oracle/arch/ARC_1_0000000339_772208260.arc 1 339 YES
/home/oracle/arch/ARC_2_0000000239_772208260.arc 2 239 YES
/home/oracle/arch/ARC_2_0000000240_772208260.arc 2 240 YES
NAME
THREAD#
SEQUENCE
# APPLIED
------------------------------------------------------------ ---------- ---------- ---------
/home/oracle/arch/ARC_2_0000000241_772208260.arc 2 241 YES
/home/oracle/arch/ARC_1_0000000340_772208260.arc 1 340
IN
-MEMORY
/home/oracle/arch/ARC_2_0000000238_772208260.arc 2 238 YES
/home/oracle/arch/ARC_2_0000000237_772208260.arc 2 237 YES
/home/oracle/arch/ARC_2_0000000242_772208260.arc 2 242 YES
|
至此,解决问题。在本案例中导致物理备库的SWITCHOVER_STATUS为FAILED DESTINATION的原因是口令文件出错,导致的,简单记录一下!