文档内容
|
|
用途 |
|
|
问题和答案 |
| 什么是 Oracle Flex ASM? |
| 什么是 Oracle proxy ASM Instance? |
| Oracle Flex Cluster 和 Oracle Flex ASM 区别是什么? |
| 什么是 ASM 网络和 ASM 监听器? |
| 怎样实现 Flex ASM? |
| 怎样验证是否设置了 Flex ASM? |
| 怎样改变 ASM 的 cardinality? |
| 怎样重新分配数据库客户端到不同的 ASM? |
| 怎样检查 ASM 实例运行的节点? |
| 怎样把 Non-Flex ASM 转变成 Flex ASM(或者相反)? |
|
|
参考 |
适用于:
Oracle Database - Enterprise Edition - 版本 12.1.0.1 到 12.1.0.2 [发行版 12.1]本文档所含信息适用于所有平台
用途
提供一些关于12c 新特性: Oracle Flex ASM 的常见问题的解答。
问题和答案
什么是 Oracle Flex ASM?
Oracle Flex ASM 是一个基于 cardinality 定义在集群环境中运行的 ASM 实例。 默认的 cardinality 是 3, 但是你可以使用” srvctl modify asm”的命令来修改它。这意味着 ASM 实例并不是需要在每个节点都运行。
在过去的版本里,ASM 实例需要在每一个节点运行,而 ASM 的客户端(Database,ACFS,ADVM)只可以访问本地的 ASM 实例。
如果使用了 Oracle Flex ASM, ASM 的客户端就可以通过网络(比如:ASM 网络)访问远程的 ASM 实例。如果一个运行 ASM 实例的节点宕掉,Oracle 集群会在另外一个节点上启动一个新的 ASM 实例以此维持它的 cardinality。 同样,如果一个 12c 数据库实例连接了某一个 ASM 实例,而这个 ASM 实例 crash 掉或者实例运行出错,这个数据库的实例会尝试重新连接在另一个节点的一个已经存在的 ASM 实例。 这些新特性统称为 Oracle Flex ASM。
什么是 Oracle proxy ASM Instance?
Oracle 通过配置 proxy ASM Instance 来支持 ACFS/ADVM。Oracle proxy ASM 可以运行在 ASM instance 的相同节点,也可以运行在 Flex ASM 情况下的不同节点。
以下的图示表明,节点2的 ACFS/ADVM 和同节点的 Oracle Proxy ASM 通信, 而 Oracle Proxy ASM 又连接到节点1上的 ASM 实例。
Oracle Flex Cluster 和 Oracle Flex ASM 区别是什么?
Oracle Flex Cluster 是一个包含 Hub 节点和 Leaf 节点的集群环境。只有 Hub 节点可以直接访问 OCR 和 Voting disk。Leaf 节点没有访问共享存储的权限。
Flex Cluster 需要 Flex ASM 的支持, 但是 Flex ASM 并不一定只能支持 Flex Cluster。
在一个 FlexCluster 的环境上,Flex ASM 可以运行在 Hub 节点上去为其他的 Flex Cluster 的 Hub 节点提供服务。
默认情况下,Oracle Flex Cluster 是 disable 的,用户需要显式启用这个功能。
什么是 ASM 网络和 ASM 监听器?
在之前的 12c 版本,Oracle 集群需要一个共有网络来提供用户数据访问,同样也需要一个私有网络来提供节点间的通讯包括,这当中也包括集群中 ASM 节点间的通讯。
在 Flex ASM 环境中,ASM 网络提供专用的网络来承载 ASM 内部的通讯。OUI 为 DBA 提供了是否使用 ASM 专用网络的选项。ASM 网络是数据库实例和 ASM 实例之间数据通讯的通道。 这些数据主要是原数据,比如某些文件区段位图。 根据客户的选择,就可以由 ASM 私有网络提供专有的 ASM 通讯,或者是如果不需要专有的网络也可以和 CSS 共享私有网络。
每个运行 Flex ASM 的实例的节点都会有本地的 ASM 监听器。 ASM 客户端通过使用 ASM 监听器在 ASM 网络上连接 Flex ASM 实例。同时,通过使用多达三个监听地址的 ASM 监听器来实现在集群内的高可用性以及负载均衡。
怎样实现 Flex ASM?
Flex ASM 可以通过以下方法实现:
* 纯 12c Flex ASM – 在这种模式下,集群软件和数据库需要都使用版本 12c。数据库可以使用所有的 12c 的新特性。
* pre-12c 混合模式 – 在这种模式下, 每个节点都有 ASM 运行来支持 12c 之前的数据库。这种模式可以通过设置
ASM 的 cardinality为“all”来实现,这样就可以保证每个 cluster 的节点都有一个 ASM 实例。这种方式的优点是,在
12c 的数据库实例到 ASM 实例的连接失败以后,还是可以转移到另一个节点的 ASM 实例上。
怎样验证是否设置了 Flex ASM?
ASMCMD> showclustermode
ASM cluster : Flex mode enabled
ASMCMD> showclusterstate
Normal
怎样改变 ASM 的 cardinality?
[root@ol6r02 bin]# ./srvctl config asm
ASM home: /u01/app/12.1.0/grid
Password file: +DATA/orapwASM
ASM listener: LISTENER
ASM instance count: 4
Cluster ASM listener: ASMNET1LSNR_ASM
注: 最小的 cardinality 值是2。
在 12.1.0.1,是可以把 cardinality 设置成小于2的,但是这样是不推荐的。在安装 patch 17990656 以后,这样的设置会报错:
在文档 1968485.1 有讨论类似的情况。
怎样重新分配数据库客户端到不同的 ASM?
如果当前连接的 ASM instance 出现故障以后,客户端会根据负载均衡的原则自动重分配到其他的实例上。
客户端也可以使用“ALTER SYSTEM RELOCATE CLIENT”命令手动重分配到其他的实例:
ALTER SYSTEM RELOCATE CLIENT command.
– 语法如下:
SQL> ALTER SYSTEM RELOCATE CLIENT '
— 查询 GV$ASM_CLIENT 视图,可以看到实例名以及数据库名信息。
怎样检查 ASM 实例运行的节点?
$ srvctl status asm -detail
ASM is running on ol6r01,ol6r02
ASM is enabled
怎样把 Non-Flex ASM 转变成 Flex ASM(或者相反)?
标准的 ASM cluster 到 Flex ASM,可以使用 ASMCA 图形界面或者静默模式
i) 使用 ASMCA GUI 或者静默模式:
[oracle@ol6r01 ~]$ asmca -silent -convertToFlexASM -asmNetworks eth1/10.154.138.0 -asmListenerPort 1521
To complete ASM conversion, run the following script as privileged user in local node.
/u01/app/oracle/cfgtoollogs/asmca/scripts/converttoFlexASM.sh
/u01/app/oracle/cfgtoollogs/asmca/scripts/converttoFlexASM.sh
CRS-2673: Attempting to stop 'ora.crsd' on 'ol6r01'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'ol6r01'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN2.lsnr' on 'ol6r01'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN3.lsnr' on 'ol6r01'
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'ol6r01'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'ol6r01'
CRS-2673: Attempting to stop 'ora.cvu' on 'ol6r01'
CRS-2677: Stop of 'ora.LISTENER_SCAN2.lsnr' on 'ol6r01' succeeded
CRS-2673: Attempting to stop 'ora.scan2.vip' on 'ol6r01'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'ol6r01' succeeded
CRS-2673: Attempting to stop 'ora.ol6r01.vip' on 'ol6r01'
CRS-2677: Stop of 'ora.LISTENER_SCAN3.lsnr' on 'ol6r01' succeeded
CRS-2673: Attempting to stop 'ora.scan3.vip' on 'ol6r01'
CRS-2677: Stop of 'ora.cvu' on 'ol6r01' succeeded
CRS-2672: Attempting to start 'ora.cvu' on 'ol6r02'
CRS-2676: Start of 'ora.cvu' on 'ol6r02' succeeded
CRS-2677: Stop of 'ora.scan2.vip' on 'ol6r01' succeeded
CRS-2672: Attempting to start 'ora.scan2.vip' on 'ol6r02'
CRS-2677: Stop of 'ora.scan3.vip' on 'ol6r01' succeeded
CRS-2672: Attempting to start 'ora.scan3.vip' on 'ol6r02'
CRS-2676: Start of 'ora.scan2.vip' on 'ol6r02' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN2.lsnr' on 'ol6r02'
CRS-2677: Stop of 'ora.ol6r01.vip' on 'ol6r01' succeeded
CRS-2672: Attempting to start 'ora.ol6r01.vip' on 'ol6r02'
CRS-2676: Start of 'ora.scan3.vip' on 'ol6r02' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN3.lsnr' on 'ol6r02'
CRS-2676: Start of 'ora.ol6r01.vip' on 'ol6r02' succeeded
CRS-2672: Attempting to start 'ora.storage' on 'ol6r02'
CRS-2676: Start of 'ora.storage' on 'ol6r02' succeeded
+ echo 'Cluster bounced in node ol6r02'
Cluster bounced in node ol6r02
ASMCMD> showclustermode
ASM cluster : Flex mode enabled
ASMCMD> showclusterstate
Normal
不能够把一个 Flex ASM 转化成一个标准的 ASM cluster。
参考
NOTE:1968485.1 - 12c: "ORA-00600: [kfzUserPwd_nousr]" Is Reported In Flex ASM Configuration (After Set "ASM Count = 1")