Overview of Oracle Flex ASM In Oracle 19c RAC-20220111

Overview of Oracle Flex ASM  In Oracle 19c RAC-20220111

导读:

1.Oracle Flex ASM使Oracle ASM实例能够在一个独立的服务器为更多不同的数据库提供服务 。   

2.Oracle Flex ASM特性:解决了本地asm实例于本地oracle实例强绑定的问题。配置Oracle Flex ASM后:本地asm实例down时,本地oracle实例可随机分配至其他节点的asm实例中,保证了oracle实例运行的强壮性。


实验来证明Oracle Flex ASM特性:

本地asm实例down时,本地oracle实例故障转移验证。

1.查看gi版本

[grid@rac3:/home/grid]$sqlplus / as sysasm
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jan 4 21:34:39 2022
Version 19.9.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.9.0.0.0

2.查看是否开启oracle flex asm(默认开启)

[grid@rac3:/home/grid]$asmcmd showclustermode
ASM cluster : Flex mode enabled - Direct Storage Access

3.查看flex asm配置信息

[grid@rac3:/home/grid]$srvctl config asm
ASM home: 
Password file: +OCR/orapwASM
Backup of Password file: +OCR/orapwASM_backup
ASM listener: LISTENER
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM

4.查看flex asm监听状态

[grid@rac3:/home/grid]$lsnrctl status ASMNET1LSNR_ASM
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 04-JAN-2022 20:42:15
Copyright (c) 1991, 2020, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=ASMNET1LSNR_ASM)))
STATUS of the LISTENER
------------------------
Alias                     ASMNET1LSNR_ASM
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                04-JAN-2022 20:35:00
Uptime                    0 days 0 hr. 7 min. 14 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/19.0.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/rac3/asmnet1lsnr_asm/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=ASMNET1LSNR_ASM)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.203)(PORT=1525)))
Services Summary...
Service "+ASM" has 3 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
  Instance "+ASM3", status READY, has 2 handler(s) for this service...
Service "+ASM_ARCH" has 3 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
  Instance "+ASM3", status READY, has 2 handler(s) for this service...
Service "+ASM_DATA" has 3 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
  Instance "+ASM3", status READY, has 2 handler(s) for this service...
Service "+ASM_OCR" has 3 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
  Instance "+ASM3", status READY, has 2 handler(s) for this service...
The command completed successfully

5.节点3可以访问节点1的asm实例

[grid@rac3:/home/grid]$sqlplus sys/oracle@192.168.56.201:1525/+ASM as sysasm
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jan 4 20:45:39 2022
Version 19.9.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.9.0.0.0
SQL> select instance_name from v$instance;
INSTANCE_NAME
--------------------------------
+ASM1
# 正因为节点3可用访问节点1的asm实例这个特点。进而使flex asm解决了本地asm实例于oracle实例强绑定的问题。
# 配置flex asm后,本地asm实例down时,本地oracle实例可随机分配至其他节点的asm实例中,保证了oracle实例运行的强壮性。

6.关闭节点3的asm实例,instance实例仍是open

[grid@rac3:/home/grid]$srvctl stop asm -n rac3
节点3的oracle实例仍open,进程ora_smon_racdb3是ok
[grid@rac3:/home/grid]$ps -ef | grep smon
root        4059       1  1 20:31 ?        00:00:20 /u01/app/19.0.0/grid/bin/osysmond.bin
oracle      9036       1  0 20:36 ?        00:00:00 ora_smon_racdb3
grid       31026    5165  0 20:59 pts/0    00:00:00 grep --color=auto smon 
[grid@rac3:/home/grid]$srvctl status database -d racdb -detail
Instance racdb1 is running on node rac1
Instance racdb1 is connected to ASM instance +ASM1
Instance racdb2 is not running on node rac2  <=手动关闭节点2
Instance racdb3 is running on node rac3
Instance racdb3 is connected to ASM instance +ASM1  <=instance从+asm3转移至+asm1
# 节点3的instance racdb3已连接+asm1实例
节点1通过v$asm_client视图查看连接asm实例的信息
SQL> select INST_ID,instance_name,db_name,status from gv$asm_client order by 2;
   INST_ID INSTANCE_NAME    DB_NAME      STATUS
---------- -------------------- ---------------- ------------------------
     1 +ASM1        +ASM         CONNECTED
     1 +ASM1        +ASM         CONNECTED
     1 rac1         _OCR         CONNECTED
     1 racdb1       racdb        CONNECTED
     1 racdb1       racdb        CONNECTED
     1 racdb3       racdb        CONNECTED
6 rows selected.
# instance racdb3已连接+asm1实例(即inst_id=1)
# 节点rac3此时asm实例已经down,但是oracle实例仍然open。
# 说明:本地asm实例与本地oracle实例不是强制绑定,本地asm实例是否open对oracle实例影响不是决定的。

7.查看crs资源节点3的asm实例已offline,但节点3的instance仍是online。

证明:本地asm实例down时,本地oracle实例故障转移验证。

[grid@rac3:/home/grid]$crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
               ONLINE  ONLINE       rac3                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
               ONLINE  ONLINE       rac3                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
               ONLINE  ONLINE       rac3                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
               ONLINE  ONLINE       rac3                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ARCH.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
# +ASM3关闭,所以实例3服务的磁盘组也会offline
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
# +ASM3关闭,所以实例3服务的监听也会offline
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
# +ASM3关闭,所以实例3服务的磁盘组也会offline
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.OCR.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
# +ASM3关闭,所以实例3服务的磁盘组也会offline
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     Started,STABLE
      2        ONLINE  ONLINE       rac2                     Started,STABLE
      3        OFFLINE OFFLINE                               Instance Shutdown,ST
                                                             ABLE
# +ASM3关闭,所以实例+ASM的服务会offline
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
# +ASM3关闭,所以实例3服务的asm network资源也会offline
ora.cvu
      1        ONLINE  ONLINE       rac1                     STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.rac3.vip
      1        ONLINE  ONLINE       rac3                     STABLE
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open,HOME=/u01/app/o
                                                             racle/product/19.0.0
                                                             /db_1,STABLE
      2        ONLINE  ONLINE       rac2                     Open,HOME=/u01/app/o
                                                             racle/product/19.0.0
                                                             /db_1,STABLE
      3        ONLINE  ONLINE       rac3                     Open,HOME=/u01/app/o
                                                             racle/product/19.0.0
                                                             /db_1,STABLE
# flex asm 特性,虽然+ASM3实例不可用,但是rac3数据库实例由其他asm实例提供服务rac3数据库实例仍可运行
ora.scan1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
--------------------------------------------------------------------------------

8.结论

   a)oracle 19c 默认的asm存储选项就是使用flex asm。

   b) flex asm解决了本地asm实例于oracle实例强绑定的问题;同时本地asm实例down时,本地oracle实例故障转移验证。


请使用浏览器的分享功能分享到微信等