逻辑DG主备库转换的failover

逻辑DG主备库转换的failover 

既然是failover,那么就认为PRIMARY数据库已经崩溃,需要马上将其中的一个逻辑STANDBY数据库置为PRIMAYD

 

虽然primary数据库已经崩溃,如果能打开数据到mount状态,可以先查看一下日志情况,这样可以对日志进行一些操作,尽量的来减少数据的丢失,当然,也可以在数据库不能mount的时候去归档路径下查看归档信息。

 

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

MAX(SEQUENCE#)

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

            15

 

STANDBY > select sequence#,applied from dba_logstdby_log;

 SEQUENCE# APPLIED

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

        15 CURRENT

 

此处日志已经完全被应用,如果发现有日志未被发送到STANDBY,可以手工的将日志复制过去,并执行alter database register logical logfile ‘filename’语句手动的注册

 

查看逻辑standby的日志应用情况

 

STANDBY > select applied_scn,latest_scn from v$logstdby_progress;

APPLIED_SCN  LATEST_SCN

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

     540775     540775

如果两结果一致则证明日志已经应用完毕,如果不一致,则需要启动SQL应用

 

配置一下日志的归档路径

 

STANDBY >  alter system set log_archive_dest_1='location=/u01/log/arch_online valid_for=(online_logfiles, all_roles) db_unique_name=orcl_std';

System altered.

 

STANDBY >  alter system set log_archive_dest_3='location=/u01/log/arch_pri_log valid_for=(standby_logfiles, standby_roles) db_unique_name=orcl_std’;

System altered.

 

STANDBY > show parameter archive_dest;

 

NAME                                 TYPE        VALUE

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

log_archive_dest                     string

log_archive_dest_1                   string      location=/u01/log/arch_online

                                                 valid_for=(online_logfiles, al

                                                 l_roles) db_unique_name=orcl_s

                                                 td

log_archive_dest_10                  string

log_archive_dest_2                   string      service=orcl_p_tns arch valid_

                                                 for=(online_logfiles,primary_r

                                                 ole) db_unique_name=orcl_pri

log_archive_dest_3                   string      location=/u01/log/arch_pri_log

                                                  valid_for=(standby_logfiles,

                                                 standby_roles) db_unique_name=

                                                 orcl_std

转换之前先看一下数据库的角色

STANDBY > select database_role,force_logging from v$database;

 

DATABASE_ROLE    FOR

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

LOGICAL STANDBY  YES

 

开始转换

STANDBY > alter database activate logical standby database finish apply;

Database altered.

 

该语句会听着该standby数据库的RFS服务,并应用当前已经接收但并未应用的日志,并执行完毕手关闭SQL应用

 

再次查看数据库的角色

STANDBY > select database_role,force_logging from v$database;

 

DATABASE_ROLE    FOR

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

PRIMARY           YES

将该新的primary数据库加入到原来的Data Guard环境中

 

standby数据库执行:

SQL> alter session disable guard;

Session altered.

 

SQL> create database link dg_recover connect to scott identified by oracle using 'orcl_p_tns';

Database link created.

注意连接用户必须有select_catalog_role的权限,可以在想要的standby数据库端赋予权限

SQL > grant select_catalog_role to scott;

Grant succeeded.

 

SQL> alter session enable guard;

Session altered.

 

SQL> select sysdate from dual@dg_recover;

SYSDATE

---------

09-MAR-14

 

将该standby数据库加入新的DG环境中去

 

SQL> alter database start logical standby apply new primary dg_recover;

Database altered.

 

要是有多个standby只需将它们添加到新的primary即可。

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

转载于:http://blog.itpub.net/29320885/viewspace-1104086/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值