在 Oracle 12c 之前,对于要使用 ASM 的数据库实例来说,所有节点上的 ASM 实例必须已处于运行状态,才能启动数据库实例。如果 ASM 实例未运行,则意味着在存储级使用 ASM 的数据库实例不能启动。这实际上意味着无论采用何种技术(即 RAC、ASM 和共享存储),均不能访问数据库实例。
随着 Oracle 12c 的推出,一个名为 Oracle Flex ASM 的特性解除了上述限制,它的一个主要特性是故障切换到集群中的其他节点。本质上是一个中心和叶架构,Oracle Clusterware 通过一个替代 ASM 实例将故障节点的连接将无缝转移到另一个成员节点。在给定集群中运行的 ASM 实例数被称作 ASM 基数,默认值为 3。但此基数值可以使用 Clusterware 命令修改。
简介
Oracle Flex ASM使Oracle ASM实例能够与数据库服务器在单独的物理服务器上运行。通过此部署,更大的Oracle ASM实例集群可以支持更多的数据库客户端,同时减少整个系统的Oracle ASM占用空间。
使用Oracle Flex ASM时,Oracle ASM客户端可以直接访问存储。
使用Oracle Flex ASM,可以将所有存储需求整合到一组磁盘组中。所有这些磁盘组由在一个集群中运行的一小组Oracle ASM实例安装和管理。可以指定具有基数设置的Oracle ASM实例的数量。默认是三个实例。
集群是提供组成员资格服务的一组节点。每个群集都有一个全局唯一的名称。每个集群都有一个或多个Hub节点。 Hub节点可以访问Oracle ASM磁盘。每个群集至少有一个私有网络和一个公共网络。如果集群要使用Oracle ASM进行存储,则它至少有一个Oracle ASM网络。单个网络可以用作私有和Oracle ASM网络。出于安全考虑,Oracle ASM网络不应公开。集群中只能运行一个Oracle Flex ASM配置。
Oracle ASM实例可以在Oracle Flex ASM中的多个配置中运行:
可直接访问Oracle ASM磁盘的本地Oracle ASM客户端(标准Oracle ASM集群)
使用此模式,图中所示为Hub节点A,Oracle ASM将继续支持使用同一主机上的Oracle ASM实例运行数据库客户端的现有标准架构。 仅在Hub节点上支持本地客户端体系结构。
在此配置中,数据库实例与Oracle ASM实例位于相同的Hub节点上,称为本地Oracle ASM客户端实例。 Oracle ASM元数据在Oracle ASM和数据库实例之间移动。 该客户端具有对Oracle ASM磁盘的直接I / O访问。
本地模式不使用Oracle Flex ASM,因此使用本地Oracle ASM配置的群集不需要Oracle ASM网络,也不包含其他Oracle Flex ASM服务。
Oracle Flex ASM客户端可直接访问Oracle ASM磁盘
上图中所示为Hub Node B,在Oracle ASM群集的Hub节点上运行的数据库客户机远程访问Oracle ASM以进行元数据,但是直接向Oracle ASM磁盘执行块I / O操作。运行Oracle ASM服务器和远程数据库客户端的主机必须都是Hub节点。Hub节点是Oracle ASM集群中与其他服务器紧密连接并可直接访问共享磁盘的节点。
在此配置中,数据库实例位于与附近的Oracle ASM实例不同的主机上,如图中的Hub Node C所示,称为Oracle ASM客户端实例。
数据库与Oracle ASM实例位于同一个Oracle ASM群集中,数据库实例位于Hub节点上。 Oracle ASM元数据在Oracle ASM和数据库实例之间移动。该客户端能够对Oracle ASM磁盘的直接I / O访问。
根据数据库实例和Oracle ASM实例的分布情况,数据库客户端可以在同一节点上本地访问Oracle ASM,也可以通过Oracle ASM网络远程访问。数据库客户机在Oracle ASM群集的Hub节点上使用此操作模式。直接访问模式也是Oracle ASM群集文件系统唯一支持的Oracle Flex ASM配置。
Oracle ACFS通过Oracle ASM Proxy实例访问
Oracle ASM代理实例是在具有直接Oracle ASM客户端的Hub节点上运行的Oracle实例。 Oracle ASM代理实例支持Oracle自动存储管理群集文件系统(Oracle ACFS)和Oracle ASM动态卷管理器(Oracle ADVM)。
下图显示了在Oracle Flex ASM中使用Oracle ASM代理服务器的Oracle ACFS和Oracle ADVM的配置。
对于Oracle ASM Proxy实例,INSTANCE_TYPE初始化参数设置为ASMPROXY。
基于网络的Oracle ASM磁盘组与Oracle IOServer(IOS)的连接
Oracle IOServer实例为不具有与Oracle ASM托管磁盘连接的Oracle成员集群的节点上的Oracle数据库实例提供Oracle ASM文件访问。
下图显示了成员集群中Oracle IOServer和Oracle数据库的关系。
此外,IOS使得能够在这些节点上配置客户端集群。在存储集群中,IOServer实例打开客户端发送其IO的网络端口。 IOServer实例从客户端接收数据包,并对与其他数据库客户端类似的Oracle ASM磁盘执行相应的IO。在客户端,数据库可以使用dNFS与IOServer实例进行通信。但是,没有客户端配置,因此您不需要提供服务器IP地址或任何其他配置信息。在配置为通过IOServer访问Oracle ASM文件的节点和集群上,会自动发现Oracle IOS实例。
IOS实例包含以下进程:
ASM_IO_PROCESSES初始化参数指定要在Oracle IO服务器实例中启动的IO工作进程数。有关ASM_IO_PROCESSES初始化参数的信息,请参阅ASM_IO_PROCESSES。
Shadow Copies
通过直接复制ASM的文件快速生成测试或生产数据库的克隆。
Quota Group
Quota group是在ASM磁盘中分出的物理的区间,不能分散在多个磁盘组之间,一个文件组只能属于一个quota group,但对于PDB和它的克隆数据库,则可以使用同一个quota group。
文件组可以从一个quota group 移动到另外一个quota group。