暂无图片
oracle的GDS是怎么获取数据库的运行状态?
我来答
分享
越过山丘
2023-12-25
oracle的GDS是怎么获取数据库的运行状态?

oracle的GDS(Global Data Services)组件,主要功能是服务的故障切换和负载均衡?有几个疑问?
1、GDS是怎么知道集群内数据库主备发生了切换?
2、怎么获取数据库的运行状态?通过broker获取的吗?还是GDS通过SQL连接,直接连接数据库来获取数据库的状态?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
shunwahⓂ️

Oracle的Global Data Services (GDS) 是一个高级的数据管理解决方案,它提供以下主要功能:

服务的故障切换:
GDS通过监控集群内数据库的运行状态来实现故障切换。当主数据库发生故障时,GDS能够检测到这个变化,并根据预先定义的策略自动将服务切换到备用数据库。
负载均衡:
GDS能够根据预定义的规则和策略,动态地在多个数据库实例之间分配工作负载,以优化系统性能和资源利用。
针对你的疑问:

GDS如何知道集群内数据库主备发生了切换?
GDS通过其内置的监控机制来跟踪和检测数据库的状态变化。这通常涉及到与数据库实例的持续通信以及对关键性能指标和健康检查的监控。当主数据库出现故障或者满足切换条件时,GDS会接收到相关的事件通知或者通过定期的轮询检查发现状态变化。
怎么获取数据库的运行状态?是通过broker获取的吗?还是GDS通过SQL连接,直接连接数据库来获取数据库的状态?
GDS获取数据库运行状态的方式可能会结合多种机制。一方面,它可能通过专门的代理或经纪人(broker)服务来收集和汇总各个数据库实例的状态信息。这些代理或经纪人服务可以部署在每个数据库节点上,负责监控本地数据库的状态并报告给GDS控制台。 另一方面,GDS也可能直接通过SQL连接或其他API接口与数据库实例进行通信,以获取更详细的运行状态和性能数据。这种直接连接的方式可以帮助GDS更准确、实时地了解数据库的状况。
总的来说,GDS获取数据库运行状态的方法可能是多样的,包括通过中间代理、直接SQL连接以及其他可能的监控和通信机制,具体取决于Oracle GDS的实现细节和配置选项。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
伟鹏

Oracle的GDS组件主要负责服务的故障切换和负载均衡。它使用全球服务的概念,管理多组复制数据库,每个服务代表一个具有共同属性、服务级别阈值和优先级的负载。GDS扩展了智能负载平衡和客户端故障切换的概念至全局分布式环境,在该环境中,有两个或更多的可用于保持可用性的故障切换目标。

为了实现数据库间的负载均衡和服务故障转移,GDS与Oracle生态系统良好集成,可在数据中心内和跨数据中心的复制数据库之间提供工作负载路由。具体来说,GSM(全球监听器)了解实时负载特征和复制数据库上的用户定义的服务布置策略。GDS CATALOG用于存储整个GDS的配置数据,而GDS POOL则定义了一个数据库全局服务组,通过角色驱动的自动化策略实现主备自动切换。

至于如何知道集群内数据库主备发生了切换,GDS并不直接获取数据库的运行状态。实际上,这是由GSM/GS根据规则实现Oracle TNS服务的代理来实现的,从而实现应用软件的负载均衡与主备数据库之间的自动故障切换。此外,可以通过查询V$DATABASE视图来查看备库的状态,包括OPEN_MODE、DATABASE_ROLE、SWITCHOVER_STATUS等参数。在主库切换到新备库前,还需要检查当前主备库的归档是否同步。

暂无图片 评论
暂无图片 有用 7
打赏 0
越过山丘
题主
2023-12-25
“实际上,这是由GSM/GS根据规则实现Oracle TNS服务的代理来实现的,从而实现应用软件的负载均衡与主备数据库之间的自动故障切换。” 这句话可以详细解释一下吗?我没有找到相关的文献资料。 oracle的白皮书中,介绍GSM的主要功能是: • Regional listener to the incoming database connections • Performs Connect-time load balancing • Publishes FAN events (via ONS) for service failovers and run-time load balancing advisory • Inter-database Service failover & management 其中,没有提到Oracle TNS服务。 我的疑问是,当数据库集群中的主备节点如果发生了切换,GDS会自动执行服务的故障切换,它怎么什么时候该做服务切换的?主库发生了切换,谁来告知GDS组件? 感谢大佬解答...
回答交流
Markdown


请输入正文
提交
相关推荐
redo 大小1g 10组 这种会使rman恢复变慢吗
回答 2
已采纳
不会,后续处理redo可以删除,重新添加几组几百m的redo,clear出来就很快
grid安装失败,已经得知是openssh版本问题,但MOS上面的解决方法并没有解决
回答 5
linux版本是多少?
Oracle数据被人修改了,想知道是哪个IP地址修改的,可以查询吗?
回答 5
使用 LOGMNR分析数据删除时间的归档日志就可以。
Oracle登录卡住的问题有没有大佬遇到过?
回答 4
已采纳
ping目标主机看看网络连通性telnet目标主机1521,看看1521端口连通性到oracle主机上,看看有没有磁盘空间满?主机load和cpu怎么样?如果没权限,就找dba😄️
oracle的一个节点系统时间不对,该怎么修改?
回答 3
已采纳
调整为和另一个节点一样就行,注意时区。
ogg复制进程初次启动报1001-ORA-01001: invalid cursor
回答 1
直接看这个报错,MOS检索不到什么信息。 看看DBAlert日志吧,看看有什么明显的报错日志。如果alert也没啥信息,看看对进程删除重建一下,取消集成注册后在删除重建;
用wifi连接Oracle数据库数据量大一点连接就会被关闭,是为什么?
回答 2
已采纳
查一下监听的sqlnet.ora是不是执行时间太久自动断开了
关于对大型ASM文件的可变大小区配置,以下哪两个陈述是正确的?
回答 1
已采纳
A、减少了用于跟踪SGA中区的元数据。B、ASM实例自动分配适当的区大小。
请问:Oracle的缓存融合有大量的跨节点热块和跨节点运算有什么比较好的优化方案吗?
回答 4
从业务方面优化会更好哦,比如一个业务建一个service这个可以只有一个节点然后另外一个备用!
oracle rman备份认为过期的逻辑
回答 3
已采纳
crosscheck和delete之前执行RMAN>reportobsolete;作用:1、对数据文件备份的处理:对于每一个已经备份的数据文件,rman会在保留策略内标识出一个最老的的全数据备份