如何实现物理DataGuard客户端的无缝切换

分类:编程技术 时间:2024-02-20 15:53 浏览:0 评论:0
0
本文主要讲解“如何实现物理DataGuard客户端的无缝切换”。文章中的讲解内容简单明了,易学易懂。请跟随小编的思路慢慢深入,一起研究学习《如何实现Physical DataGuard客户端无缝切换》吧!

项目客户一直希望能够实现DataGuard主备切换的自动化,即主库故障后自动切换到备库,并使这个过程能够被应用感知。在咨询了DG经纪人后,考虑到其可用性、易用性和许可证问题,我放弃了该经纪人。但是,将物理备用数据库切换到主数据库对于应用程序来说仍然是透明的。我曾经写过一篇歪文,讲的是通过Linux系统的IP漂移设置,让主备切换对应用程序透明。对于Oracle 11g的dataguard切换,自动切换可以通过创建触发器来实现。主要步骤如下:

主库执行:

1.创建服务

开始

DBMS_SERVICE.CREATE_SERVICE (Service_name => 'dg_taf_pri',

network_name => 'dg_taf_pri',

aq_ha_notifications => true,

Failover_Method => '基本',

Failover_type => '选择',

Failover_retries => 30,

                                                                          failover_delay                                                                                                       2.创建存储过程,主库启动服务监控

创建或替换过程dg_taf_proc为p>从v$数据库中选择database_role到v_role;

如果 v_role = 'primary' 则

dbms_seRVICE.START_SERVICE('dg_taf_pri');

其他

其他

DBMS_SERVICE.STOP_SERVICE('dg_taf_pri');

结束如果;

结束;;所有者,object_name ,procedure_name from dba_procedures where object_name='DG_TAF_PROC';

选择不同的名称,owner from dba_source where name like 'DG_TAF_PROC%';

3.创建触发器,所有者 主备切换时触发

启动后创建或替换TRIGGER dg_taf_trg_startup

或数据库上的db_role_change

begin

dg_taf_proc;

结束;

/

从 dba_triggers 中选择触发器名称、触发器名称

,其中触发器名称 = 'DG_TAF_TRG_STARTUP';

4. 客户端配置:

dg_taf =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = tcp)(主机 = 12.12.12.123)(端口 = 1521))

(地址 = (协议 = tcp)(主机 = 12.12.12.125)(端口 = 1521))

< p> (LOAD_BALANCE = 是)

(CONNECT_DATA =

(服务器 = 专用)

(SERVICE_NAME = dg_taf_pri)

( FAILOVER_MODE =

(类型=会话)

(方法=基本)

(重试= 180)

(延迟= 5)

)

)

)

感谢您的阅读。以上就是《如何实现物理DataGuard客户端的无缝切换》的内容。看完文章,相信大家对于如何实现物理DataGuard客户端的无缝切换有了一定的了解。更深刻的理解和具体运用还需要通过实践来验证。在此,小编将为大家推送更多相关知识点的文章,欢迎关注!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何实现物理DataGuard客户端的无缝切换

用户评论