dataguard物理主备库切换错误记录

登陆primary数据库,查询v$database视图的switchover_status列。

E:\ora10g>set oracle_sid=geo1pri

E:\ora10g>sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on  星期四 12月 13 09:41:29 2007

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

已连接。

SQL>  select switchover_status from v$database;

SWITCHOVER_STATUS

--------------------

TO STANDBY

  如果该列值为"TO STANDBY"则表示primary数据库支持转换为standby角色,否则的话你就需要重新检查一下Data Guard配置,比如看看LOG_ARCHIVE_DEST_n之类参数值是否正确有效等等。

2、 启动switchover  --primary数据库操作

  首先将primary转换为standby的角色,通过下列语句:

SQL>  alter database commit to switchover to physical standby;

数据库已更改。

  语句执行完毕后,primary数据库将会转换为standby数据库,并自动备份控制文件到trace。

3、 重启动到mount  --原primary数据库操作

SQL>  shutdown immediate

ORA-01507:  未装载数据库

ORACLE  例程已经关闭。

SQL>  startup mount

ORACLE  例程已经启动。

Total System Global Area  167772160 bytes

Fixed Size                  1289484 bytes

Variable Size             104858356 bytes

Database Buffers           54525952 bytes

Redo Buffers                7098368 bytes

数据库装载完毕。

4、 检查是否支持switchover操作   --待转换standby数据库操作

  待原primary切换为standby角色之后,检查待转换的standby数据库switchover_status列,看看是否支持角色转换。

E:\ora10g>set oracle_sid=ge01standby

E:\ora10g>sqlplus " / as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on  星期四 12月 13 10:08:15 2007

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

已连接。

SQL> select switchover_status from v$database;

SWITCHOVER_STATUS

--------------------

TO PRIMARY

SQL>

  此时待转换standby数据库switchover_status列值应该是"TO_PRIMARY",如否则检查其初始化参数文件中的设置,提示一下,比着原primary数据库的初始化参数改改。

5、 转换角色到primary  --待转换standby数据库操作

  通过下列语句转换standby到primary角色:

SQL> alter database commit to switchover to primary;

数据库已更改。

  注意:待转换的物理standby可以处于mount模式或open read only模式,但不能处于open read write模式。

6、 完成转换,打开新的primary数据库

SQL> alter database open;

数据库已更改。

  注:如果数据库处于open read-only模式的话,需要先shutdown然后直接startup即可。

7、 验证一下

  新的primary数据库

SQL> show parameter db_unique

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_unique_name                       string      jsspdg

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

            67

SQL>  alter system switch logfile;

系统已更改。

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

            68

  新的standby数据库

SQL> show parameter db_unique

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_unique_name                       string      jssweb

SQL>  select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

            68

  转换成功。

 

 

在切换中发生一个错误,通过google查到错误的原因,切换到primary db是需要介质恢复

 

SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
--------------------
SWITCHOVER LATENT

SQL> alter database commit to switchover to primary;
alter database commit to switchover to primary
*
ERROR at line 1:
ORA-16139: media recovery required


SQL> alter database commit to switchover to primary;
alter database commit to switchover to primary
*
ERROR at line 1:
ORA-16139: media recovery required


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

Database altered.

SQL> alter database commit to switchover to primary;

Database altered.

SQL> alter database open;

Database altered.

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)
--------------
            49

SQL> alter system switch logfile;

System altered.

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)
--------------
            50

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值