Oracle12c 中RAC功能增强新特性之ASM&Grid

时间:2023-01-17 13:53:06

1.    自动存储管理(ASM)方面的增强

1.1.   Flex ASM

在典型的网格架构安装中,每个节点有自己的ASM实例运行并扮演该节点上数据库的存储容器的角色,对这种安装配置,存在单点失败的风险。例如,如果该节点上的ASM实例出现问题或失败,那么,运行在该节点上的数据库和实例都将会被影响。为了避免ASM实例的单点失败,Oracle12c 提供一个flex ASM特性。Flex ASM总体来说是个不同的概念和架构,其中,只需要几个ASM实例运行在簇中的一组服务器上,但一个节点上的ASM实例失败时,Oracle簇软件将会自动在其他不同节点上启动ASM来替代该失败的ASM实例以保证可用性。另外,这种安装配置也提供运行在节点上的ASM实例的负载平衡能力。Flex ASM的另一个好处是能被配置在单独的节点上。

当你把Flex Cluster选为簇的安装选项时,Flext ASM配置将自动被选择,因为Flex Cluster需要Flex ASM。你也可以选择常规簇来弃用Flext ASM。当你决定用Flext ASM时,你一定确认确定的网络是可用的。你可以在安装簇时,选择启用Flex ASM,也可以在标准簇环境中用ASMCA来启用Flex ASM。

下面的命令显示目前的ASM模式:

$ ./asmcmd showclustermode

$ ./srvctl config asm

或者连到ASM实例,然后查询INSTANCE_TYPE参数。如果输出值是ASMPROX,那么,说明Flex ASM被配置了。

1.2. 增加了ASM存储限制

ASM存储的ASM磁盘组和磁盘大小硬限制被极大的增加了。在12Cr1中,ASM支持的磁盘组从11gR2的63增加到511个,每个ASM磁盘也从20PB增加到现在的32PB。

1.3. 调整ASM再平衡操作

12c中新的“EXPLAIN WORK FOR”语句能测量一个ASM再平衡操作的工作量,并且将结果输入V$ASM_ESTIMATE动态视图中。用该动态视图,你可以调整“POWER LIMIT”子句来改善在平衡操作。例如,如果你想测量增加一个新ASM磁盘需要的工作量,在实际手工运行再平衡操作前,你就可以用下面语句:

SQL> EXPLAIN WORK FOR ALTERDISKGROUP DG_DATA ADD DISK data_005;

SQL> SELECT est_work FROMV$ASM_ESTIMATE;

SQL> EXPLAIN WORK SET STATEMENT_ID='ADD_DISK'FOR ALTER DISKGROUP DG_DATA AD DISK data_005;

SQL> SELECT est_work FROMV$ASM_ESTIMATE WHERE STATEMENT_ID = 'ADD_DISK’;

您能基于该动态视图的输出调整POWER limit以改善再平衡操作的性能。

1.4. ASM Disk Scrubbing

新的对普通或高冗余级别的ASM磁盘组的ASM Disk擦洗操作,可以验证该ASM磁盘组中所有ASM磁盘的逻辑数据崩溃,并且,自动修复逻辑崩溃。如果探测到,就使用ASM镜像磁盘。磁盘擦洗能在盘组,确定的磁盘或文件上执行,影响非常小。下面的例子说明磁盘擦洗场景:

SQL> ALTER DISKGROUP dg_data SCRUB POWERLOW:HIGH:AUTO:MAX;

SQL> ALTER DISKGROUP dg_data SCRUB FILE'+DG_DATA/MYDB/DATAFILE/filename.xxxx.xxxx' REPAIR POWER AUTO;

1.5. Active Session History (ASH) for ASM

V$ACTIVE_SESSION_HISOTRY动态视图现在也提供ASM实例的活动会话取样。可是,诊断包的使用需要许可。

2.   网格(GridInfrastructure)架构的增强

2.1. Flex

在进行簇安装时,Oracle 12c 提供两种类型的簇配置:传统标准簇和Flex簇。传统标准簇中,簇中的所有节点被互相紧密的集成在一起,通过私网交互,并且直接存取存储。另一方面,Flex簇引进了两种类型的节点,它们按照Hub节点和叶子节点的架构被安排。Hub类型的节点和传统标准簇类似,例如,它们通过私网互连,可以直接读写存储。叶子节点和Hub节点是不同的。它们不必直接存取底层存储,而是通过Hub节点去存取存储和数据。

你最大可以配置64个Hub节点,可以配置很多叶子节点。在一个Flex簇中,你可以值配置Hub节点而不配置叶子节点,但是不可以只配置叶子节点而不配置Hub节点。你可以为一个Hub节点配置多个叶子节点。在Oracle Flex簇中,只有Hub节点可以直接存取OCR/Voting盘。当你计划大规模的簇环境时,这将是一个可以使用的一大特性。这种配置大大减小了互连冲突,提供了传统标准簇的可伸缩空间。

有两种方法部署Flex簇:

1)  当配置一个全新簇时;

2)  从一个标准簇升级到Flex簇;

如果你正配置一个全新簇,你需要在第三步选择簇配置的类型,选择配置一个Flex簇选项,然后,你必须在第六步将节点分为Hub节点和叶子节点,针对每个节点,选择角色:Hub或叶子,另外,也可以选择虚拟主机名。

当从一个标准簇模式转换为一个Flex簇模式时需要如下步骤:

1)  用下面的命令获取簇的当前状态

$ ./crsctl get cluster mode status

2)  以root用户运行如下命令

$ ./crsctl set cluster mode flex

$ ./crsctl stop crs

$ ./crsctl start crs –wait

3)  按照你的设计改变每个节点的角色

$ ./crsctl get node role config

$ ./crsctl set node role hub|leaf

$ ./crsctl stop crs

$ ./crsctl start crs –wait

注意:

1)  你不能将Flex簇转换为标准簇模式。

2)  改变簇节点模式要求停/启簇。

3)  确信GNS被配置为固定VIP。

2.2. 在ASM盘组中备份OCR

12c中, OCR现在能被备份在ASM盘组中。这简化了通过各节点对OCR备份文件的存取。恢复OCR时,你不必担心OCR的最后一次备份在那个节点上的问题,仅仅确定ASM中的最新备份,并且可以很容易的完成恢复。下面的例子说明了如何把ASM盘组设置为OCR备份位置:

$ ./ocrconfig -backuploc +DG_OCR

2.3. IPv6支持

Oracle 12c中,Oracel现在支持同一网络的IPv4 and IPv6网络协议配置。 你现在可以配置公网(Public/VIP)IPv4,,IPv6或组合协议配置。可是,在同一个簇中的所有节点确信要用同一套IP协议配置方法。

3.   RAC(数据库)的增强

3.1. What-If命令评估

使用srvctl命令的新 What-if命令评估选项,可以决定运行该命令的影响。Srvctl命令的这个新选项,将允许你在不实际执行和对当前系统做出改变的情况下,来模拟该命令。当你想对当前系统做出改变,但并不确信结果是什么时,这个选项会特别有用。所以,该选项将提供做出改变的结果。-eval选项也可以和crsctl命令一起使用。例如,如果你想知道停掉某个特定的数据库会将会发生什么,你能用下面的例子:

$ ./srvctl stop database –d MYDB –eval

$ ./crsctl eval modify resource <resource_name>-attr “value”

3.2. Srvctl各方面的改善

Srvctl命令有些新添加的选项。下列说明新添加的启停簇上数据库/实例资源选项。

srvctlstart database|instance –startoption NOMOUNT|MOUNT|OPEN

srvctlstop database|instance –stopoption NOMOUNT|MOUNT|OPEN