Oracle12c 中RAC功能增强新特性之ASM&Grid
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
----------------------------------------------------------
《高性能SQL调优精要与案例解析》
blog1:http://www.cnblogs.com/lhdz_bj
blog2:http://blog.itpub.net/8484829
blog3:http://blog.csdn.net/tuning_optmization