Oracle RAC19c 技术架构

Oracle Real Applications Cluster 19c Technical Architecture

翻译于oracle官方文档:

链接地址: https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/19/rac/main.html

   Oracle数据库可以通过两种基本方式配置:作为单个实例(SI)数据库(非集群)或实际应用程序集群(RAC)数据库。单个实例数据库将Oracle软件、数据库文件、内存和进程都放在一台服务器上。(链接到数据库技术架构图)。单个实例数据库的实例(内存和进程)与数据库(数据库文件)之间存在一对一的关系。然而,Oracle RAC环境在数据库和实例之间有一对多的关系。Oracle RAC数据库最多可以有100个实例,所有这些实例都访问一个数据库。Oracle RAC环境中单个数据库的所有服务器必须属于同一个Oracle Real Applications集群。

所有实际的应用程序集群都有一些共同之处,每个集群都在每个节点上本地安装了网格基础设施(GI)。网格基础设施包括几个产品:自动存储管理、Oracle集群软件等。

 

Oracle RAC集群中的每个实例都访问存储在共享存储上的数据库文件。每个节点还需要本地存储,用于存储GI和Oracle数据库软件。

 

每个节点至少需要一个公共接口和一个私有接口。每个网络可以使用多个网络接口卡来增加带宽、可用性或容错能力。Oracle公司建议每个网络使用多个网络接口卡(nic),每个网络使用多个网络交换机,以避免单点故障。

 

集群由多个相互连接的计算机或服务器组成,这些计算机或服务器看起来就像是终端用户和应用程序的一台服务器。带有Oracle数据库的Oracle RAC选项使您能够对Oracle数据库进行集群。Oracle RAC使用Oracle Clusterware作为基础架构来绑定多个服务器,使它们作为单个系统运行。

 

Oracle Clusterware是一个与Oracle数据库集成的可移植集群管理解决方案。Oracle Clusterware是使用Oracle RAC所需的组件,它提供了运行Oracle RAC所需的基础设施。Oracle集群还管理资源,如虚拟Internet协议(VIP)地址、数据库、监听器、服务等。此外,Oracle Clusterware还支持非集群Oracle数据库和Oracle RAC数据库使用Oracle高可用性基础设施。Oracle Clusterware和Oracle自动存储管理(Oracle ASM)(这两个一起组成了Oracle网格基础结构)使您能够创建一个集群存储池,供非集群数据库和Oracle RAC数据库的任何组合使用。

 

Oracle集群软件是在Oracle RAC运行的大多数平台上需要的惟一集群软件。如果您的数据库应用程序需要供应商集群软件,那么如果该供应商集群软件通过了Oracle RAC认证,那么您可以将这些集群软件与Oracle集群软件一起使用。

 

实际的应用程序集群(RAC)数据库在RAC集群上托管多个数据库实例。这些实例访问共享存储上的一组数据库文件。共享存储通常由托管RAC数据库实例的节点本地的ASM实例提供。在Oracle的ASM 19c中只有一个配置选项,那就是Flex ASM, Flex ASM可以为集群中的ASM实例设置多种位置,通过设置集群中的基数(即ASM实例的数量)来控制。

RAC数据库是共享存储上的一组文件,可以跨多个节点。

 

RAC数据库实例是一组处理数据库文件的进程和内存。RAC数据库实例驻留在一个节点上。它通过全局进程和集群与同一集群中的其他RAC数据库实例进行通信。RAC数据库实例与单个实例数据库具有相同的内存和后台进程,但添加了缓存融合和全局进程。缓存融合是Oracle Real Applications集群中的一种无磁盘缓存一致性机制,它直接将块的副本从持有实例的内存缓存提供给请求实例的内存缓存。这提供了跨集群中的DB实例的SGA的逻辑合并。全局进程(没有全部显示)提供必要的服务来维护缓存的一致性,并在节点发生故障时进行恢复。

 resides 居住,存在

Cache Fusion 缓存融合   Global Processes 全局进程

缓存融合和集群接口都使用专用网络(互连)进行集群节点之间的通信。

Oracle Real Application Clusters One Node (Oracle RAC One Node)是运行在集群中一个节点上的Oracle Real Application Clusters (Oracle RAC)数据库的单个实例。该选项增加了Oracle为数据库整合提供的灵活性。您可以用最少的开销将多个数据库合并到一个集群中,同时还提供了故障转移保护、在线滚动补丁应用程序和操作系统和Oracle集群的滚动升级等高可用性优势。

 

数据库实例可以迁移到集群中的另一个节点,同时保持应用程序的连续性。一个RAC节点实例可能与同一集群中的其他RAC数据库实例共存,假设有足够的节点和足够的资源为所有实例提供服务。

 

Oracle RAC一个节点和Oracle RAC之间的主要区别是,对于Oracle RAC一个节点数据库,在正常操作下一次只运行一个实例。如果这个实例受到意外停机的影响,那么在很短的一段时间内不会运行任何数据库实例。

 stack 堆栈

堆栈用于Oracle RAC节点保证数据库服务将尽可能快的恢复,但是技术和与任何其他故障转移集群解决方案,有片刻的时间,在此期间,没有实例的Oracle RAC节点数据库可以执行任何工作。在多节点Oracle RAC系统中不会出现这种情况,因为多个实例已经并发运行,访问同一个数据库

Relocation n. 重新安置 再布置,变换布置

RAC

工具

这张幻灯片在下面的注释中有描述。

您可以使用服务器控制实用工具(SRVCTL)、Oracle Enterprise Manager、SQL*Plus和其他实用工具将集群数据库管理为单系统映像。

 Cluster Verification Utility (CVU)

集群验证实用工具(CVU): CVU是一个命令行工具,除了操作系统组和用户之外,您还可以使用它来验证一系列集群和Oracle RAC组件,比如共享存储设备、网络配置、系统需求和Oracle集群软件。您可以使用CVU对集群环境进行安装前检查和安装后检查。CVU在预安装和安装Oracle集群和Oracle RAC组件时特别有用。Oracle Universal Installer在安装Oracle Clusterware和Oracle数据库后运行CVU来验证您的环境。在安装Oracle RAC之前安装并使用CVU,以确保您的配置满足最低的Oracle RAC安装要求。另外,使用CVU来验证正在进行的管理任务的完成情况,比如节点添加和节点删除。

 

Oracle Enterprise Manager:用于管理非集群数据库和Oracle RAC数据库环境的Oracle Enterprise Manager云控制GUI界面。Oracle建议尽可能使用Oracle Enterprise Manager执行管理任务。

 您可以使用Oracle Enterprise Manager云控制来管理Oracle RAC单节点数据库。

 

SQL*Plus: SQL*Plus命令操作当前实例。当前实例可以是初始化SQL*Plus会话的本地默认实例,也可以是与Oracle Net Services连接的远程实例。

 

服务器控制实用程序(SRVCTL): SRVCTL是一个命令行接口,您可以使用它从一个点管理Oracle RAC数据库。您可以使用SRVCTL来启动和停止数据库和实例,以及删除或移动实例和服务。您还可以使用SRVCTL来管理配置信息、Oracle Real Application Clusters One Node (Oracle RAC One Node)、Oracle Clusterware和Oracle ASM。

 

DBCA:用于创建和初始配置Oracle RAC、Oracle RAC单节点和Oracle非集群数据库的推荐实用程序。

 

舰队补丁和供应:使用舰队补丁和供应补丁,升级和供应Oracle RAC数据库。

每个实例必须能够访问所有的数据文件,包括与Undo表空间相关的数据文件和控制文件。每个实例必须有一个专用于它的Undo表空间。所有的undo表空间必须在共享存储上。所有重做日志文件必须对所有实例都可访问,每个重做日志文件应该像在单个实例中那样多路复用。当使用具有正常冗余度的ASM时,每个重做日志成员被镜像,第二个多路复用成员被放置在不同的磁盘组中。每个实例必须至少有两个重做日志组(也称为线程)。

 

*与共享临时表空间相关的tempfiles位于共享存储中,在使用本地临时表空间时可能溢出到本地存储。有关更多信息,请参见临时表空间。

 

可以通过指定临时表空间子句来创建共享临时表空间。共享临时表空间将tempfiles存储在共享磁盘上,因此所有数据库实例都可以访问临时空间。从Oracle Database 12c Release 2(12.2)开始,可以通过指定本地临时表空间子句来创建本地临时表空间。本地临时表空间在Oracle集群环境中非常有用。它们为每个数据库实例存储一个单独的、非共享的临时文件,这可以提高I/O性能。本地临时表空间必须是大文件表空间

 

应该至少有两个多路复用的控制文件可以被所有的实例访问,就像重做日志文件一样,每个多路复用的控制文件应该放在不同的磁盘组中。

 

强烈建议在共享存储中使用一个公共(默认)SPFILE,其中包含公共参数和实例特定参数。SPFILE可以存储在ASM中。在集群中的所有实例中,一些初始化参数必须是相同的,一些必须是每个实例唯一的,大多数参数应该是相同的,以保持一致的行为。

 

数据库密码文件(orapwd*)可以放在共享存储中,也可以放在每个本地节点上。此文件包含特权用户的密码,在数据库未打开时必须可用。

 

创建数据库时,DBCA将在指定的文件位置创建SPFILE。这个位置可以是ASM磁盘组、集群文件系统文件或共享原始设备。如果您手动创建数据库,建议您从PFILE创建SPFILE。集群数据库中的所有实例都使用相同的SPFILE。因为SPFILE是二进制文件,所以不要编辑它。可以使用EM或ALTER SYSTEM SQL语句更改SPFILE设置。RAC仅在SPFILE不存在或在启动命令中指定PFILE时才使用传统的PFILE。使用SPFILE可以简化管理,维护一致的参数设置,并保证跨数据库关闭和启动的参数设置的持久性。此外,您可以配置RMAN来备份SPFILE。

可以使用ALTER SYSTEM SET命令修改初始化参数的值。这与单实例数据库相同,除了可以在SCOPE子句之外指定SID子句。通过使用SID子句,可以指定值生效的实例的SID。如果要更改所有实例的参数值,请指定SID='*'。如果您只想更改实例SID的参数值,请指定SID=' SID '。此设置优先于前面和后面指定SID='*'的ALTER SYSTEM SET语句。如果实例是用SPFILE启动的,那么如果没有指定SID子句,则SID='*'是缺省值。如果您指定了当前实例之外的实例,那么如果您没有使用SPFILE作用域,则会向该实例发送一条消息来更改其内存中的参数值。ALTER SYSTEM RESET命令的SCOPE=MEMORY和SID=' SID '的组合允许您重写当前使用的<dparam>条目的优先级。这允许使用当前*。<dparam>条目将被使用,或者用于下一次创建*。<dparam>条目要考虑到特定的SID。使用最后一个示例,您可以从SPFILE中删除一行。

 

CLUSTER_DATABASE:允许以集群模式启动数据库。设置为TRUE。

CLUSTER_DATABASE_INSTANCES:设置RAC环境中的实例数量。对该参数进行适当的设置可以提高内存使用。

cluster_interconnections:指定当有多个互连时的集群互连。有关此参数的使用、语法和行为,请参阅特定于Oracle平台的文档。通常不需要设置cluster_interconnections参数。例如,不要为以下常见配置设置此参数:

如果您只有一个集群互连

如果默认的集群互连满足RAC数据库的带宽要求(通常是这种情况)

如果NIC连接被用于互连

当OIFCFG的全局配置可以指定正确的集群互连时。它只需要被指定为OIFCFG的一个覆盖。

DB_NAME:如果在特定于实例的参数文件中为DB_NAME设置一个值,则所有实例的设置必须相同。

DISPATCHERS:设置此参数以启用共享服务器配置,即配置为允许多个用户进程共享非常少的服务器进程的服务器。

 

RAC实例用于透明数据库加密(TDE)的钱包可以是多个节点共享的公共钱包的本地副本,也可以是驻留在所有节点都可以访问的共享存储上的共享副本。

在共享磁盘上使用单个钱包的部署不需要额外的配置来使用透明数据加密。

如果您想使用本地副本,则必须复制钱包,并在初始配置之后将其提供给所有其他节点。对于使用透明数据加密和加密钱包的系统,可以使用任何标准的文件传输协议。对于使用透明数据加密和模糊钱包的系统,建议通过安全通道传输文件。钱包必须驻留在为sqlnet.ora中的WALLET_LOCATION或ENCRYPTION_WALLET_LOCATION参数设置指定的目录中。在19c中,WALLET_ROOT初始化参数代替sqlnet.ora中的设置。在透明数据加密使用期间,不需要同步钱包的本地副本,直到通过ALTER SYSTEM SET key SQL语句重新键入服务器密钥。每次在数据库实例上运行ALTER SYSTEM SET KEY语句时,必须再次复制驻留在该节点上的钱包,并使其对所有其他节点可用。为了避免不必要的管理开销,在您确定服务器主密钥已被破坏而不重新密钥将导致严重的安全问题的例外情况下,保留重新密钥。

原文地址:https://www.cnblogs.com/zykLove/p/12162660.html