返回顶部
首页 > 资讯 > 数据库 >oracle11g dg broker配置服务的高可用例子分析
  • 787
分享到

oracle11g dg broker配置服务的高可用例子分析

2024-04-02 19:04:59 787人浏览 安东尼
摘要

这篇文章主要介绍“oracle11g dg broker配置服务的高可用例子分析”,在日常操作中,相信很多人在oracle11g dg broker配置服务的高可用例子分析问题上存在疑惑,小编查阅了各式资料

这篇文章主要介绍“oracle11g dg broker配置服务的高可用例子分析”,在日常操作中,相信很多人在oracle11g dg broker配置服务的高可用例子分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”oracle11g dg broker配置服务的高可用例子分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

前提:

主库:10.9.21.178 db_name :db2

dg库:10.9.21.179 db_name :db1

一:oracle DG 服务的自动故障切换操作整体步骤:

1.配置先创建服务dbha

2.创建触发器 自动在主库启动hbha服务

3.在primary库上设置service的TAF功能

4.修改程序 中的 url,实现服务的自动切换

二:解释几个概念

1.TAF(Transparent Application Failover)即透明应用程序故障转移技术。当初始化连接出现问题无法连接时,该功能可以保证应用程序重新连接到可用服务。在重新连接过程中,之前的活动事务将会被回滚,但在“具体条件”下TAF可以保证SELECT语句不被终止。

TAF的特性:

1:TAF是ORACLE客户端提供的一项特性,使用TAF,对客户端的环境有一定的要求,比如JAVA的JDBC驱动、Oracle客户端的版本等(8i开始支持TAF);

2:大致上TAF可以分为2种,连接时的TAF和会话建立后TAF;

3:TAF本身与是否RAC环境无关,但一般都用在RAC环境,最小程度的减少最应用的影响,单实例环境下也可以使用TAF,这样使用PL/sql developer连接数据库,即使数据库实例重启,也不需要重新连接;

4:TAF配置可以在客户端也可以在服务器端,也就是在连接数据库的时候,比如程序url添加,

或者tnsname.ora中配置FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 180)(DELAY = 15))),这就是客户端的配置,那么服务端配置的话就是在服务端修改每个服务的属性!

begin

dbms_service.modify_service

('dbha',

FAILOVER_METHOD=>'BASIC',

FAILOVER_TYPE=>'SELECT',

FAILOVER_RETRIES=>15,

FAILOVER_DELAY=>5);

end;

/

5:配置listener.ora文件的GLOBAL_DBNAME参数后将会禁用TAF;

6:oracle TAF特性和scan ip failover的区别是,scan ip连接的话如果scan ip所在的节点故障,

那么该连接就断开了,如果程序中没有自动重连机制,或者程序连接池中的timeout值还没有

到时间,那么你就必须重启服务以便于重连数据库,但是TAF的话不会让程序报错,只是会回滚

没有提交的事务,自动重连另一个节点,并且FAILOVER_TYPE=>'SELECT'这种方式下select是不会

停的,继续在另一个节点查出结果!

三:具体流程如下:

3.1在主库添加并启动服务,注意这个服务是要给程序中配置URL使用的!

先添加,然后启动该服务,如果不启动,那么show parameter service_name 看不到,启动后service_name参数中就出现了新的服务,并且pmon进程自动完成监听注册上这个服务,并且重启数据库后添加的服务就消失了,失效了!

添加服务的程序包如下:

DBMS_SERVICE.CREATE_SERVICE(

service_name IN VARCHAR2,

network_name IN VARCHAR2,

Goal IN NUMBER DEFAULT NULL,

dtp IN BOOLEAN DEFAULT NULL,

aq_ha_notifications IN BOOLEAN DEFAULT NULL,

failover_method IN VARCHAR2 DEFAULT NULL,

failover_type IN VARCHAR2 DEFAULT NULL,

failover_retries IN NUMBER DEFAULT NULL,

failover_delay IN NUMBER DEFAULT NULL,

clb_goal IN NUMBER DEFAULT NULL,

edition IN VARCHAR2 DEFAULT NULL);

--The network name of the service as used in SQLNet connect descriptors for client connections. This is limited to the NET

具体执行:其中第一个dbha是添加服务的名字,第二个是网络服务名

1.添加服务

begin

dbms_service.create_service('dbha','dbha');

end;

/

2.启动服务

begin

DBMS_SERVICE.START_SERVICE('dbha');

end;

/

这时候你去看监听的状态,你会发现刚添加的服务已经被pmon进程动态注册了

oracle11g dg broker配置服务的高可用例子分析

3.停止服务:

begin

DBMS_SERVICE.STOP_SERVICE('dbha');

end;

/

4.删除服务:

begin

DBMS_SERVICE.DELETE_SERVICE('dbha');

end;

/

3.2.在主库添加触发器,该触发器的作用是判断这个实例为主库角色(read write)则启动前边添加的

服务(dbha)

create trigger tri_startservice 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('dbha');

end if;

end;

/

3.3在主库给前面添加的服务开启TAF特性:

begin

dbms_service.modify_service

('dbha',

FAILOVER_METHOD=>'BASIC',

FAILOVER_TYPE=>'SELECT',

FAILOVER_RETRIES=>15,

FAILOVER_DELAY=>5);

end;

/

oracle11g dg broker配置服务的高可用例子分析

3.4.修改程序的URL

datasource.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.9.21.178)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.9.21.179)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=dbha)(FAILOVER_MODE=(TYPE=SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5)) ) )

如果是oracle rac 的话:

datasource.url=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.216)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.217)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = yes)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = cbl)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 180)(DELAY = 15))))

至此oracle 11g adg服务高可用配置完毕

总结:这时候可以测试下,当你主库shutdown abort的时候,你的从库自动转换成主库,然后触发器启动dbha服务,然后pmon自动注册监听,然后由于你配置了TAF特性,所以你的服务并不会报错(ORA-0133:ORACLE initialization or shutdown in progress错误),而是自动的连接到新的主库!

验证过程:

1.客户端配置tnsnames.ora

dbha=

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.9.21.178)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.9.21.179)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = dbha)

)

)

2.使用dbha服务连接数据库,

[oracle@beijing-fuli-hadoop-02 admin]$ sqlplus liuwenhe/liuwenhe@dbha

SQL*Plus: Release 11.2.0.4.0 Production on Sat Jul 13 17:11:55 2019

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

确认连接的是主库db2

SQL> select instance_name from v$instance;

INSTANCE_NAME

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

db2

3.异常关闭db2

SQL> shu abort

ORACLE instance shut down.

4.在之前连接好的会话继续查询实例名字,不报错但是卡着,因为主库db2已经关闭了,而dg库

db1还在自动转换中,所以都无法提供服务(大概10秒),然后连接上了db1:

SQL> select instance_name from v$instance;

INSTANCE_NAME

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

db2

SQL> select instance_name from v$instance; -----卡了10秒大概之后显示了db1

INSTANCE_NAME

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

db1

到此,关于“oracle11g dg broker配置服务的高可用例子分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: oracle11g dg broker配置服务的高可用例子分析

本文链接: https://lsjlt.com/news/63819.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • oracle11g dg broker配置服务的高可用例子分析
    这篇文章主要介绍“oracle11g dg broker配置服务的高可用例子分析”,在日常操作中,相信很多人在oracle11g dg broker配置服务的高可用例子分析问题上存在疑惑,小编查阅了各式资料...
    99+
    2024-04-02
  • oracle11g rac监听配置的示例分析
    这篇文章主要介绍了oracle11g rac监听配置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。(1)概述rac配置如下:[gr...
    99+
    2024-04-02
  • MySQL5.7+MHA+Keepalived高可用配置的示例分析
    这篇文章主要介绍了MySQL5.7+MHA+Keepalived高可用配置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。数据库架构...
    99+
    2024-04-02
  • PLSQL Developer连接Oracle11g 64位数据库配置的示例分析
    这篇文章主要为大家展示了“PLSQL Developer连接Oracle11g 64位数据库配置的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PLSQ...
    99+
    2024-04-02
  • SpringCloud分布式微服务b2b2c电子商务docker-feign配置的示例分析
    这篇文章主要介绍了SpringCloud分布式微服务b2b2c电子商务docker-feign配置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。讨论一下feign配...
    99+
    2023-06-05
  • MySQL中高可用的示例分析
    这篇文章给大家分享的是有关MySQL中高可用的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、MHA对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还...
    99+
    2023-06-20
  • RocketMQ Broker实现高可用高并发的消息中转服务
    目录RocketMq-broker注册消息存储消息读取消费者拉取消息按照key查询RocketMq-broker broker主要作用就是存储消息。所以重点就放在它对于消息的处理上面...
    99+
    2023-05-17
    RocketMq Broker RocketMq Broker消息中转
  • MySQL高可用运维的示例分析
    这篇文章将为大家详细讲解有关MySQL高可用运维的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、基本知识介绍1、MHA定义Master HA。是一个开源的高可...
    99+
    2024-04-02
  • Hadoop高可用搭建的示例分析
    这篇文章给大家分享的是有关Hadoop高可用搭建的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Hadoop高可用搭建超详细实验环境安装jdk修改hostname修改hosts映射,并配置ssh免密登录设...
    99+
    2023-06-27
  • MySQL之高可用架构的示例分析
    小编给大家分享一下MySQL之高可用架构的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MySQL高可用MySQL的高可用也是同样的思路,首先要有多个MySQL实例提供服务,其次就是当某个实例挂掉时,可以自动切换流...
    99+
    2023-06-22
  • vue.config.js常用配置的示例分析
    小编给大家分享一下vue.config.js常用配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用vue-cli3...
    99+
    2024-04-02
  • webpack常用配置的示例分析
    小编给大家分享一下webpack常用配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先我们明确一下需求:打包调试提...
    99+
    2024-04-02
  • keepalived+vip+mysql双机高可用的示例分析
    这篇文章主要为大家展示了“keepalived+vip+mysql双机高可用的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“keepalived+vip...
    99+
    2024-04-02
  • MySQL高可用之keepalived方案的示例分析
    这篇文章主要为大家展示了“MySQL高可用之keepalived方案的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL高可用之keepalive...
    99+
    2024-04-02
  • Redis哨兵模式高可用的示例分析
    这篇文章将为大家详细讲解有关Redis哨兵模式高可用的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、序言Redis高可用有两种模式:哨兵模式和集群模式,本文基于哨兵模式搭建一主两从三哨兵Red...
    99+
    2023-06-29
  • redis配置文件中常用配置的示例分析
    这篇文章主要介绍redis配置文件中常用配置的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!此次安装的版本为: 5.0.3[root@localhost local]# redis-ser...
    99+
    2023-06-14
  • RxJava2配置及使用的示例分析
    这篇文章主要介绍了RxJava2配置及使用的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。RxJava2.0是一个非常棒的流式编程,采用的观察者模式思想,事件的产生者...
    99+
    2023-05-31
    rxjava2
  • CentOS中DNS基本和高级配置的示例分析
    这篇文章主要为大家展示了“CentOS中DNS基本和高级配置的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CentOS中DNS基本和高级配置的示例分析”这篇文章吧。DNS服务器工作原理...
    99+
    2023-06-10
  • MySQL高可用架构在业务层面举例分析
    本篇内容主要讲解“MySQL高可用架构在业务层面举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL高可用架构在业务层面举例分析”吧!一,MySQL...
    99+
    2024-04-02
  • Spring常用配置及解析类的示例分析
    这篇文章将为大家详细讲解有关Spring常用配置及解析类的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。springMVC配置用法的文章很多,但具体描述清楚的不多,这里主要介绍下常用的配置项的用法...
    99+
    2023-05-30
    spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作