ITPub博客

首页 > 数据库 > Oracle > 11g Physical standby,switchover Ora-16139错误解决

11g Physical standby,switchover Ora-16139错误解决

原创 Oracle 作者:sdusun 时间:2019-04-12 18:24:07 0 删除 编辑

主库:11gR1 + win2003 32bit

备库:11gR1 + RHEL4 U5 32bit

执行switchover

[@more@]

1 主库switchover
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 D:appAdministratorflash_recovery_areaPRIMARYARCHIVELOG
最早的联机日志序列 150
下一个存档日志序列 152
当前日志序列 152
SQL>
SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
----------------------------------------
TO STANDBY

SQL>
SQL> alter database commit to switchover to physical standby;

数据库已更改。

SQL>
SQL> select database_role from v$database;
select database_role from v$database
*
第 1 行出现错误:
ORA-01507: 未装载数据库


SQL> shutdown immediate
ORA-01507: 未装载数据库


ORACLE 例程已经关闭。
SQL>
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 293602196 bytes
Database Buffers 234881024 bytes
Redo Buffers 5844992 bytes
数据库装载完毕。

SQL>
SQL> select database_role, switchover_status from v$database;

DATABASE_ROLE SWITCHOVER_STATUS
-------------------------------- ----------------------------------------
PHYSICAL STANDBY TO PRIMARY

SQL>


2 察看备库
SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
--------------------
NOT ALLOWED

SQL> r
1* select switchover_status from v$database

SWITCHOVER_STATUS
--------------------
SWITCHOVER PENDING

SQL>
SQL> r
1* select switchover_status from v$database

SWITCHOVER_STATUS
--------------------
SWITCHOVER PENDING

SQL>
SQL> select database_role from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY

SQL>
SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
--------------------
SWITCHOVER PENDING

状态一直是“SWITCHOVER PENDING”

3 备库switchover看看有没有问题
SQL> alter database commit to switchover to primary;
alter database commit to switchover to primary
*
ERROR at line 1:
ORA-16139: media recovery required

到这里,感觉应该是主备库日志不一致导致。确认以下


4 问题定位
主库:
SQL>
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 D:appAdministratorflash_recovery_areaPRIMARYARCHIVELOG
最早的联机日志序列 152
下一个存档日志序列 0
当前日志序列 154
SQL>
SQL>


备库:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oradata/standby/archive
Oldest online log sequence 152
Next log sequence to archive 0
Current log sequence 154
SQL>
SQL> select sequence#, applied from v$archived_log;

SEQUENCE# APP
---------- ---
138 YES
137 YES
139 YES
140 YES
141 YES
142 YES
143 YES
144 YES
145 YES
146 YES
147 YES

SEQUENCE# APP
---------- ---
148 YES
149 YES
150 YES
151 YES
152 NO
153 NO
154 NO

18 rows selected.

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

Database altered.

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

SEQUENCE# APP
---------- ---
138 YES
137 YES
139 YES
140 YES
141 YES
142 YES
143 YES
144 YES
145 YES
146 YES
147 YES

SEQUENCE# APP
---------- ---
148 YES
149 YES
150 YES
151 YES
152 YES
153 YES
154 YES

18 rows selected.

SQL>
SQL> alter database commit to switchover to primary;

Database altered.

SQL>
SQL> select database_role, switchover_role from v$database;
select database_role, switchover_role from v$database
*
ERROR at line 1:
ORA-00904: "SWITCHOVER_ROLE": invalid identifier


SQL>
SQL> select database_role, switchover_status from v$database;

DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PRIMARY TO STANDBY

SQL>
SQL>

问题解决,异构switchover成功。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/593324/viewspace-1009658/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2005-09-13

  • 博文量
    116
  • 访问量
    118267