Data Guard 环境中客户端的自动切换
来源:互联网 发布:傲梦编程 编辑:程序博客网 时间:2024/05/18 02:53
使用Data Guard架构时,当角色发生转换switchover,也就是主库成备库处于mount状态,备库成新主库open状态,这时客户端再连接时就会收到ORA-0133:ORACLE initialization or shutdown in progress错误,而不会选择下一个可用的地址,因为原来的主库处于mout状态,监听是可用的。
在switchover发生后,尽量不修改应用和数据库的配置所耽误的时间,则需要提前对应用和数据库做出一个合理的配置方案,使用应用能够自动重连新的主库,对于failover的情况,原主库得到修复后,起到mount状态应用间隔的日志时也是这样的状况。
一种方式是通过设置客户端和TNS和数据库的service_names来访问。
针对物理主库操作
步骤如下:
1.客户端的tnsnames.ora
test = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = HostA)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = HostB)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) )
2.设置连接超时
在客户端sqlnet.ora文件中添加以下内容:SQLNET.OUTBOUND_CONNECT_TIMEOUT=3
3.在primary数据库运行
begin dbms_service.create_service('test','test'); end; /begin DBMS_SERVICE.START_SERVICE('test'); end; / 停止为:begin DBMS_SERVICE.STOP_SERVICE('test'); end; /删除为:begin DBMS_SERVICE.DELETE_SERVICE('test'); end; /
4.在primary数据库创建触发器:
create trigger test_trig after startup on database declare dg_role varchar(30);begin select database_role into dg_role from v$database; if dg_role='PRIMARY' then DBMS_SERVICE.START_SERVICE('test'); end if;end;/
对于逻辑备库,则应使用DB_ROLE_CHANGE系统事件创建触发器。
另外使用OCI驱动的程序,则需要配置service的TAF就可以实现客户端透明切换;使用JDBC thin方式的应用,则应该在应用程序写入这样的重连机制,例如weblogic连接池重连机制。
这个方案就是将两边的数据库的service name都设置成test,应用使用test这个服务名连接数据库。当发生角色转换时,由触发器在主数据库角色下,startup的时候修改动态service_names参数并重新注册。
5.在primary库上设置service的TAF功能
begindbms_service.modify_service('test',FAILOVER_METHOD=>'BASIC',FAILOVER_TYPE=>'SELECT',FAILOVER_RETRIES=>15,FAILOVER_DELAY=>5);end;/
- Data Guard 环境中客户端的自动切换
- Data guard环境做到client的自动切换
- 12C pdb环境下的 Data Guard switchover切换
- 【DATAGUARD】物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置
- DATA GUARD物理STANDBY的 SWITCHOVER切换
- DATA GUARD物理STANDBY的 SWITCHOVER切换
- 关于Oracle Data Guard的角色切换
- Oracle data guard 切换
- Data Guard模式切换
- Data Guard模式切换
- DATA GUARD架构中数据库搬迁,在线切换(2/2)
- Oracle Data Guard Switchover 切换
- Oracle Data Guard Switchover 切换
- Oracle Data Guard Switchover 切换
- DataGuard - 在Data Guard环境中使用Broker
- Oracle Data Guard 环境配置
- DATA GUARD的概述
- Oracle Data Guard 环境下的数据库升级方法
- spring中各个包的作用
- 根据浏览者的IP切换成不同语言,新浪网易IP地区信息查询API接口调用方法
- 创建R的example时序列错误的处理ORA-02289
- Yacc 与 Lex 快速入门
- fatal error LNK1104: 无法打开文件“LIBCD.lib”
- Data Guard 环境中客户端的自动切换
- nginx alias 无法解析php的解决办法(附带一些nginx基本设置)
- Android launcher icon size
- 策略模式VS桥模式
- PHP截取字符串---中英文都按一个字符计算
- java发送带附件邮件
- 敏捷开发“松结对编程”系列之十一:L型代码结构(团队篇之一)
- Android中Preferences的基本使用
- Android学习 - 用Eclipse生成jar文件