Oracle 集群进程服务
Oracle Clusterware由两个单独的技术堆栈组成:一个由集群准备服务(CRS)守护程序(CRSD)作为锚点的上层技术堆栈,以及一个由Oracle高可用性服务守护程序(OHASD)作为锚点的下层技术堆栈。根据平台的不同,Clusterware组件会有所变化。
可以使用addnode.sh脚本向现有集群添加节点。在Oracle 19c Grid Infrastructure中,可以使用安装程序gridSetup.sh或Fleet Patching and Provisioning工具rhpctl来向现有集群添加新节点。
Cluster Ready Services (CRS)技术堆栈利用多个进程来管理各种服务,是集群中管理高可用性操作的主要程序。
CRSD根据存储在OCR中的每个资源的配置信息来管理集群资源。这包括启动、停止、监视和故障转移操作。当安装了Oracle RAC时,CRSD进程会监视Oracle数据库实例、监听器等,并在发生故障时自动重新启动这些组件。
尽管CRS和High Availability Services具有相同命名的程序,它们在本质上是完全不同的,例如:oraagent和orarootagent。
Oracle高可用性服务技术栈利用图表中显示的多个进程来提供Oracle Clusterware的高可用性。尽管CRS和高可用性服务有同名的程序,但它们在本质上是完全不同的,例如:oraagent和orarootagent。
关于完整的进程列表和描述,请参阅《Oracle高可用性服务技术栈》。
***.***/en/database/oracle/oracle-database/19/cwadd/introduction-to-oracle-clusterware.html#GUID-10B78E53-2047-46DE-A9E0-6EA15117D373
HA事件是在Oracle Clusterware环境中资源状态发生变化时生成的。Oracle Notification Service (ONS) 是一种设施,它在中间层服务器或应用程序之间建立桥梁,将这些事件传输到应用逻辑中进行处理或响应。ONS是Fast Application Notification (FAN) 的一部分。通过FAN,应用程序使用这些事件来实现对故障的快速检测以及在发生故障和恢复后重新平衡连接池。当FAN与Oracle数据库一起使用时,高级排队 (AQ Advanced Queuing) 功能允许外部应用程序(例如.NET客户端)接收HA事件。要无需费力地获得FAN的所有好处,最简单的方式就是使用与FAN集成的客户端,例如:
1) Java数据库连接 (JDBC) 隐式连接缓存
2) 用户可扩展的调用功能
3) 连接管理器 (CMAN)
4) 监听器
5) Oracle Notification Service (ONS) API
6) OCI连接池或会话池
7) 透明应用程序故障转移 (TAF Transparent Application Failover)
8) ***.***连接池
注意:并非所有上述应用程序都能接收所有类型的FAN事件。
GPnP服务:GPnP服务由所有GPnP代理共同提供。它是一种复制配置文件的分布式方法。该服务在域中的每个节点上都作为一个GPnP代理实例化。此服务是点对点的,没有主控进程。这使得它具有高可用性,因为任何GPnP代理崩溃,新节点仍将得到服务。GPnP需要标准的IP多播协议(由mDNS提供)来定位对等服务。使用多播发现,GPnP可以在不进行任何配置的情况下定位对等节点。这是新节点上的GPnP代理定位可能应该使用其配置文件的另一个代理的方式。
名称解析 GPnP域中定义的名称在以下情况下可解析:
1) 域内的主机使用普通DNS解析域外主机的名称。它们会访问常规DNS服务并继续。它们可以通过全局配置或从DHCP获得DNS服务器的地址。
2) 在GPnP域内,主机名使用mDNS进行解析。这需要每个节点上都有一个mDNS响应程序,该程序知晓该节点使用的名称和地址,并且操作系统客户端库支持使用该多播协议进行名称解析。给定一个名称,客户端执行gethostbyname,导致一个mDNS查询。如果名称存在,拥有该名称的节点上的响应程序将返回IP地址。客户端软件可以缓存解析结果,以给定的生存时间值为准。
3) 在GPnP域外的机器无法使用多播解析GPnP域中的名称。为了解析这些名称,它们使用它们常规的DNS。配置管理机构安排全局DNS将子域(区域)委派给GPnP域中的已知地址。GPnP创建了一个称为GNS的服务来解析该固定地址上的GPnP名称。运行GNS服务器的节点监听DNS请求。一旦收到请求,它们会转换和转发到mDNS,收集响应,转换并发送回外部客户端。GNS是“虚拟”的,因为它是无状态的。多播域中的任何节点都可以托管服务器。只有GNS配置是全局的:
i. 在标准DNS端口53上监听的地址
ii. 要服务的域名(s)
4) 出于可用性的原因,可能需要尽可能多的GNS实体。Oracle提供的GNS可以使用CRS来确保单个GNS提供者的可用性。
SCAN和Local Listeners:当客户端提交连接请求时,SCAN监听器会代表客户端联系SCAN IP地址和SCAN端口。由于集群上的所有服务都注册在SCAN监听器上,SCAN监听器会回复提供服务的当前负载最轻的节点的本地监听器的地址。最终,客户端通过提供服务的节点上的监听器建立连接。所有这些操作都对客户端透明,无需在客户端上进行任何显式配置。在安装期间,监听器会在SCAN IP地址的节点上创建。Oracle Net Services将应用程序请求路由到提供服务的负载最轻的实例。因为SCAN地址解析为集群,而不是集群中的节点地址,所以可以在不影响SCAN地址配置的情况下添加或移除集群中的节点。
服务器池是单个集群中的节点组。安装Oracle Clusterware时,会自动创建两个内部服务器池:通用和自由。初始时,所有服务器都分配给自由服务器池。服务器会根据需要自动从自由服务器池移到新定义的服务器池中。
服务器池提供资源隔离,阻止在一个服务器池中运行的应用程序访问另一个服务器池中正在运行的资源。Oracle Clusterware在服务器池之间提供了细粒度的角色分离。这种能力可以在由不同组织管理的具有集群环境的组织中维护所需的管理角色分离。
Oracle RAC数据库支持两种服务器池管理模式:基于策略的管理和管理员管理。
若Oracle RAC One Node只在一个服务器池中运行。这个服务器池与任何其他服务器池一样对待。在线重定位Oracle RAC One Node数据库实例允许计划迁移数据库从一个节点到另一个节点。重定位必须始终在服务器池内进行。
基于策略的管理
1) 允许根据定义的策略在线重新分配服务器,以满足工作负载容量需求
2) 确保按策略定义关键工作的必需资源分配
3) 在必要时确保隔离,以便您可以为集群中的应用程序和数据库提供专用服务器
4) 可以配置策略以根据业务需求或应用程序需求更改服务器池,使服务器池在合适的时候提供所需的容量
管理员管理的Oracle RAC数据库部署基于Oracle RAC 11.2之前的部署类型,要求静态配置每个数据库实例在集群中的特定节点上运行,以及要求您配置数据库服务以在属于某个数据库的特定实例上运行,使用“preferred”和“available”指示。当查看管理员管理的数据库的数据库资源时,会看到一个与Oracle数据库同名的服务器池。此服务器池是特殊的Oracle定义的通用服务器池的一部分。Oracle RAC管理通用服务器池以支持管理员管理的数据库。使用srvctl或DBCA添加或删除管理员管理的数据库时,Oracle RAC将创建或删除通用服务器池的成员。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作