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实例故障转移验证。