探索Oracle RAC时间服务器的使用和优势 (oracle rac时间服务器)

在当今信息时代,时间对于企业的运营和管理非常重要。对于数据库系统而言,时间同样是至关重要的,精准的时间戳对于数据的同步和管理非常重要。Oracle RAC时间服务器就是在这样的背景下被推出的,它可以提供精准的时间同步服务,优化数据库的性能,提高系统的可用性和可靠性。

什么是Oracle RAC时间服务器?

Oracle Real Application Cluster (RAC)是Oracle公司推出的一款基于共享存储架构的数据库集群解决方案。其最新版本通常被称为Oracle database 19c RAC。RAC时间服务器是一种负责为这个集群提供统一精准时间同步服务的节点。它需要部署在RAC集群中,成为集群节点之一。

RAC时间服务器的工作原理

RAC时间服务器主要由NFServer、NFTM、NTP Daemon 三部分组成。其中NFServer负责同步其他节点的时间,使用了“单文本”引入、整合和校准的技术,通过统一同步时间和元数据,集中精确时间同步和管理。NFTM负责提取中央时钟源的时间,并将其同步到其他节点。NTP Daemon负责为RAC集群提供标准化时间服务,确保各个节点的时钟同步,从而保障集群的高可用性和可靠性。

Oracle RAC时间服务器的优势

1. 精准的时间同步服务

Oracle RAC时间服务器采用了先进的时间同步技术,可以确保各个节点的时钟同步,并精准提供标准化的时间服务。

2. 提高数据库性能

时间同步是数据库的基础,精准的时间戳可以提高各种数据库操作的效率,减少数据重复和错误。

3. 提高系统的可用性和可靠性

数据库系统中的各个节点使用同一时钟以及精准的时间戳进行对外响应,避免了节点之间的时间差异,在集群容错机制中提高了系统的可用性和可靠性。

4. 简化时间管理

RAC时间服务器为集群提供统一的时间管理服务,管理员无需单独配置每个节点,从而简化了时间管理的工作。

Oracle RAC时间服务器的使用

在使用RAC时间服务器之前,需要先确定服务器中的时钟设置是正确的,并确保服务器之间的时间同步已经配置。配置RAC时间服务器时,需要通过以下步骤:

1. 安装Oracle Grid Infrastructure软件,选择“Enterprise Manager Agent”组件,并将实例配置为“管理器”等级。

2. 安装Oracle database软件,并使用DBCA工具创建一个RAC数据库实例。

3. 在数据库节点上创建RAC时间服务器,并配置NTP Daemon使其支持NTP服务。

4. 在Grid Infrastructure中配置NTP服务的使用,包括NTP服务器和NTP客户端。

5. 在RAC数据库实例中配置同步到RAC时间服务器。

Oracle RAC时间服务器是为Oracle RAC集群提供时间同步服务的一种解决方案。使用它可以提高数据库性能,提高系统的可用性和可靠性,降低管理员的时间管理成本。在配置RAC时间服务器时,需要注意正确配置NTP服务,并确保各个节点的时钟同步。

相关问题拓展阅读:

oracle 定时任务 与rac 有没有什么关系

Oracle RAC的优势在于利用多个节点(数据库实例)组成一个数据库旦裂答,这样在保证了数据库高可用性的情况下更充分的利用了多个主机的性能,而且可以通过增加节点进行性能的扩展。实现Oracle RAC需要解决的关键问题就是多节点进行数据访问时如何保证数据的一致性,Oracle是通过各节点间的私有连接进行内存融合(cache fusion)来保证各节点数据访问的一致性。用一个例子来解释一下内存融合的过程,在存在A、B两个节点的RAC环境中,当A节点使用DML语句(如Update)对一个数据块中的数据进行修改时,A节点实例会到GRD(Global Resource Directory)中查找该数据块的信息,这些信息包括该数据块的Master(之一次读这个数据块的节点),Owner(当前拥有这个数据块的节点),以及数据块在各个节点间的传递记录。A节点如果发现GRD中没有需要读取的数据块的信息,说明该数据块是一个干净的数据块,A节点从磁盘或Buffer Cache中获得该数据块,然后对需要修改的行加锁,进行相应的修改,模慧当然SCN会随之增加。在A完成修改而没有提交或回滚的情况下,如果B节点也需要访问这个数据块修改某些行(假设不同于A修改的行),B同样去到GRD中查找该数据块的信息,当然B发现该数据块的Master为A,Owner也为A,为了保证A的修改不丢失,B需要发信息给A,让A将需要修改的数据块通过私有连接直接从内存中传给B,当然该数据块中包含A的锁信息,这样A节点与B节点间的一次内存的数据传递就是内存融合。Oracle RAC的内存融源世合也面临一些问题,继续刚刚的例子,如果A又再次请求对该数据块修改或者结束事务(提交或回滚)的时候,又需要从B节点内存中取得数据块,又要发生内存融合,这样在两个节点业务没有合理分割的情况下,数据库繁忙时,大量的内存融合会对数据库性能造成严重的影响。通过对Oracle RAC技术的理解,在实现Oracle RAC架构时的业务分割就成为了保证系统性能的重要手段,业务分割的根本在于使不同的实例不能访问相同的数据块,这样业务分割规则可以小到表的级别(不同的表不会共享一个数据块),大到表空间、Schema的级别。心跳应该用独立的网卡。

  当然,rac本身之保证了数据库服务器的高可用和高性能,所以更好有其他的存储技术来保证存储的高可用,例如raid\vplex等。

  在距离不太远(几十公里),且速度较快(例如裸光纤)下,延时较小,,米足够多,可以考虑使用oracle rac实现双活或者灾备,RTO RPO=0。

附:

1.rac基本理论知识

1.1 Public NIC接入公共网络,private NIC接入私有网络,这是个完全隔离的网络传递的数据只是RAC节点的心跳数据和cache fusion数据。oracle不建议私有网络直接用交叉线连接。

1.2 RAC最重要的是共享存储。数据文件、联机日志、控制文件、参数文件都必须放在共享存储上。现在的存储环境基本上都是基于SAN的,跑FC协议(FC协议封装了SCSI协议)。

1.3 RAC环境需要OS必须版本相同包括小版本、补丁包都必须一致。

1.4 集群件安装在OS之上,负责管理整个集群环境中的硬件资源并为上层的RAC集群提供基础服务。如果把集群看成是一台虚拟的计算机,那么集群件就是这台计算机上的OS,而RAC是运行在其上的一个应用。

10g之前,oracle只针对linux、windows两个OS提供了一个不完善的集群件产品OCM(oracle cluster manager),其它平台需要第三方集群产品比如HACMP、sun cluster。10g开始,10.1版本提供CRS,10.2版本提供oracle clusterware(10.1的改名)。10.2开始的集群件提供API接口,因此还能够为其它软件提供HA功能。CRS可以和其它集群件产品集成。10g之前oralce只提供对裸设备的支持,所以9i RAC裸设备是常见选择。10后oracle提供OCFS和A两种存储方案。

1.5 OEL(oracle enterprise linux)是oracle在RHEL基础上重新开发出的linux。

1.6 需要强调的是,10g的clusterware的vote disk、ocr在目前的版本上还只能创建在裸设备、ocfs上。VIP在clusterware安装过程中创建(调用VIPCA),不需要手工设置。

1.7 集群的分类:高性能计算集群(用在科学计算)、LB、HA、

1.8 健忘症:集群环境配置文件不是集中存放,每个节点都有一个本地副本,用户修改任何节点的集群配置会将更改同步到其它节点。但这样有一个问题:节点1正常维护需要关闭,然后在节点2修改了配置,然后节点2关闭,启动节点1,由于没有同步,所以节点1启动后,它用的仍然是旧的配置文件,这时就造成配置丢失,这就叫健忘症。RAC的解决方案是OCR。

1.9 脑裂:节点间了解彼此的健康状况是通过心跳机制来实现的。如果仅仅是心跳出了问题,各节点还正常运行,这时每个节点都认为其它节点宕机,自己是集群环境的唯一健在者自己应该获得集群的控制权,因为存储是共享的,这意味着数据灾难。这就叫脑裂。RAC解决脑裂的方法是引入Quorum disk,谁先得到quorum disk这一票谁获胜,另一个节点被踢出集群。

1.10 IO隔离:解决被踢出集群的节点不能操作共享存储上的数据。

1.11 CRS resource:CRS对运行于其上的应用进行监视,并在发生异常时进行重启、切换等干预手段。这些被CRS监控的对象就叫CRS resource。这些resource是在RAC安装过程中自动或手动创建的,并且注册登记到CRS中,以metadata的形式被记录在OCR磁盘上,这些metadata包括resource的名称、如何启动、停止、如何检查健康状况等配置信息。RAC的CRS resource包括GSD、ONS、VIP、database、instance、listener等。

1.12 oracle clusterware的运行环境由两个磁盘文件、若干后台进程及网络元素组成。OCR解决健忘问题,OCR位于共享存储上保存整个群集的配置,无论在哪个节点修改配置都是修改相同的配置文件。配置信息以“key-value的形式保存其中,10g以前这个文件叫server manageability repository(SRVM)。OCR的位置记录在ocr.loc文件中,9i对应的是srvConfig.loc文件。

1.13 能读写OCR disk中内容的节点称OCR master。这个节点的OCR process负责更新本地和其它节点的OCR cache。其它节点想修改OCR需要向本节点的OCR process提出请求,然后本节点的process再向OCR master的OCR process提出请求。

1.14 voting disk主要记录节点成员状态,在出现脑裂时,仲裁哪个partion获得集群的控制权。它的位置可以用这个命令来查看:$crsctl query css votedisk

1.15 clusterware最重要的三个后台进程:CRSD、CSSD、EVMD。在安装clusterware的最后阶段会要求在每个节点执行root.sh,目的是在/etc/inittab文件中添加三行使每次系统重启时,cluseter也会自动启动。EVMD和CRSD两个进程如果出现异常,系统会自动重启这两个进程。如果CSSD出现异常,系统会立即重启。

OCSSD进程:该进程提供CSS(cluster synchronization service)服务,CSS服务通过多种心跳机制实时监控集群健康状态,提供脑裂保护等基础集群服务功能。心跳机制包含两种:私有网络、voting disk。

两个心跳都有更大时延,对于disk heartbeat,这个时延叫IOT,对于network heartbeat,这个时延叫MC,两个参数都是以秒为单位,缺省IOT大于MC。可以通过以下命令来查看这两个参数:

$crsctl get css disktimeout $crsctl get css misscount

另外这个进程还用来支持A instance和RDBMS instance之间的通信。如果在已经安装了A的节点上安装RAC,会遇到一个问题,RAC要求节点只有一个OCSSD进程,并且是运行在$CRS_HOME目录下的。这就需要先停止A,并通过$ORACLE_HOME/bin/localconfig.sh delete删除之前的inittab条目。

CRSD进程:实现HA的主要进程,它所提供的服务叫CRS(cluster ready service)它监控资源,并在资源运行异常时进行干预,包括关闭、重启进程或转移服务。默认情况下,CRS会自动尝试重启资源5次,如果还是失败则放弃尝试。

EVMD进程:负责发布CRS产生的各种事件,这些event可以通过两种方式发布给客户–ONS和callout script。另外它还负责CRSD和CSSD两个进程间的通信。

RACGIMON进程:负责检查数据库健康状态,负责service的启动、停止、故障转移,这个进程会建立到数据库的持久连接,定期检查SGA中的特定信息,该信息由PMON进程定时更新。

OPROCD进程:也叫process monitor daemon。在非linux平台且没有使用第三方集群软件时,会看到这个进程,用来检测节点的CPU挂起,如果调度时间超过1.5S,会认为CPU工作异常,会重启节点。在linux平台上时候时利用hangcheck-timer模块来实现IO隔离功能的。

1.16 IP利用的是TCP层超时,VIP利用的是应用层的立即响应。详见P94。

1.17 clusterware的日志体系比较复杂,日志的根目录在$CRS_HOME/log/

关于oracle rac时间服务器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 探索Oracle RAC时间服务器的使用和优势 (oracle rac时间服务器)