随着 Oracle 12c 的推出,一个名为 Oracle Flex ASM 的特性解除了上述限制,它的一个主要特性是故障切换到集群中的其他节点。本质上是一个中心和叶架构,Oracle Clusterware 通过一个替代 ASM 实例将故障节点的连接将无缝转移到另一个成员节点。在给定集群中运行的 ASM 实例数被称作 ASM 基数,默认值为 3。但此基数值可以使用 Clusterware 命令修改。
纯 12c Flex ASM(相同版本)
Grid Infrasctructure (GI) 和数据库都运行在 Oracle 12c 上
Oracle 12c 之前的混合版本(不同版本)
和平常一样,ASM 实例将在每个节点上运行,Flex 配置支持 12c 之前的数据库。使用 ASM 磁盘组的兼容性参数管理各数据库实例之间的兼容性。这种方法的优点是,如果 Oracle 12c 数据库实例与一个 ASM 实例的连接断开,数据库连接将故障切换至其他服务器上的另一个 ASM 实例。通过将基数设置为 all 即可以实现这种故障切换。
[grid@rac12node1 ~]$ hostname
rac12node1
[grid@rac12node1 ~]$ ps -ef | grep pmon
grid 2038 25582 0 16:37 pts/1 00:00:00 grep pmon
grid 11838 1 0 15:04 ? 00:00:00 asm_pmon_+ASM1
oracle 12830 1 0 15:05 ? 00:00:00 ora_pmon_rac12db1
[grid@rac12node1 ~]$ srvctl status asm
ASM is running on rac12node1,rac12node2
[grid@rac12node1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@rac12node1 ~]$ asmcmd
ASMCMD> showclustermode
ASM cluster : Flex mode enabled
ASMCMD> showclusterstate
Normal
ASMCMD>
[grid@rac12node1 ~]$ srvctl status asm -detail
ASM is running on rac12node1,rac12node2
ASM is enabled.
ASM instance +ASM1 is running on node rac12node1
Number of connected clients: 2
Client names: rac12db1:rac12db:rac12no-cluster rac12node1:_OCR:rac12no-cluster
ASM instance +ASM2 is running on node rac12node2
Number of connected clients: 3
Client names: -MGMTDB:_mgmtdb:rac12no-cluster rac12db2:rac12db:rac12no-cluster rac12node2:_OCR:rac12no-cluster
[grid@rac12node1 ~]$
[grid@rac12node2 ~]$ asmcmd
ASMCMD> showclustermode
ASM cluster : Flex mode enabled
ASMCMD> showclusterstate
Normal
ASMCMD>
[grid@rac12node2 ~]$ srvctl config asm -detail
ASM home:
Password file: +ocrdg/orapwASM
Backup of Password file:
ASM listener: LISTENER
ASM is enabled.
ASM is individually enabled on nodes:
ASM is individually disabled on nodes:
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM
[grid@rac12node2 ~]$
节点2初始状态,grid用户下:
set line 200
col INSTANCE_NAME for a60
select distinct instance_name,db_name,status from v$asm_client;
INSTANCE_NAME DB_NAME STATUS
---------------------------------- ------------------ -----------------------
+ASM2 +ASM CONNECTED
-MGMTDB _mgmtdb CONNECTED
rac12db2 rac12db CONNECTED
rac12node2 _OCR CONNECTED
[grid@rac12node1 ~]$ srvctl stop asm -node rac12node1 -stopoption abort -force
[grid@rac12node1 ~]$ srvctl status asm
ASM is running on rac12node2
[grid@rac12node1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@rac12node1 ~]$ ps -ef | grep pmon
grid 3339 25582 0 16:42 pts/1 00:00:00 grep pmon
oracle 12830 1 0 15:05 ? 00:00:00 ora_pmon_rac12db1
注:在这里,数据库实例与特定节点中运行的特定 ASM 实例关联。如果因为某种原因,ASM 实例无法启动/服务关闭,数据库实例仍然可以启动,因为数据库实例将查找同一集群中运行的 ASM 实例。图 3 描绘了 Flex ASM 的高可用特性。
[oracle@rac12node1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Thu Oct 17 16:45:05 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
---在节点1上数据库实例并未受到影响
SQL> select instance_name,instance_number from gv$instance;
INSTANCE_NAME INSTANCE_NUMBER
---------------- ---------------
rac12db1 1
rac12db2 2
SQL> select instance_name,instance_number from v$instance;
INSTANCE_NAME INSTANCE_NUMBER
---------------- ---------------
rac12db1 1
SQL>
grid用户下:
查看节点2 asm连接信息,查看节点2上访问ASM实例的客户端,有了来自节点1的客户端访问。
SQL> select distinct instance_name,db_name,status from v$asm_client;
INSTANCE_NAME DB_NAME STATUS
---------------------------- ---------------- -----------------------
+ASM2 +ASM CONNECTED
-MGMTDB _mgmtdb CONNECTED
rac12db1 rac12db CONNECTED
rac12db2 rac12db CONNECTED
rac12node2 _OCR CONNECTED
asmcmd连接查看
---强制连接到+ASM1
[grid@rac12node1 ~]$ asmcmd --privilege sysasm --inst +ASM1
Connected to an idle instance.
---强制连接到+ASM2
[grid@rac12node1 ~]$ asmcmd --privilege sysasm --inst +ASM2
ASMCMD> lsct //查看asm实例连接情况
DB_Name Status Software_Version Compatible_version Instance_Name Disk_Group
+ASM CONNECTED 12.2.0.1.0 12.2.0.1.0 +ASM2 DATADG
+ASM CONNECTED 12.2.0.1.0 12.2.0.1.0 +ASM2 MGMTDG
+ASM CONNECTED 12.2.0.1.0 12.2.0.1.0 +ASM2 OCRDG
_mgmtdb CONNECTED 12.2.0.1.0 12.2.0.0.0 -MGMTDB MGMTDG
rac12db CONNECTED 12.2.0.1.0 12.2.0.0.0 rac12db1 DATADG
rac12db CONNECTED 12.2.0.1.0 12.2.0.0.0 rac12db2 DATADG
_OCR CONNECTED - - rac12node2 OCRDG
ASMCMD> lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 512 4096 4194304 8192 1824 0 1824 0 N DATADG/
MOUNTED EXTERN N 512 512 4096 4194304 40960 34232 0 34232 0 N MGMTDG/
MOUNTED EXTERN N 512 512 4096 4194304 3072 2736 0 2736 0 Y OCRDG/
ASMCMD>
总结:数据库实例使用一个专用 ASM 实例,我们强制该 ASM 实例被停止工作来模拟故障,因此数据库实例重新连接到另一节点(在本示例中为节点 2 (rac2))上的现有 ASM 实例。
节点2初始状态:
set line 200
col INSTANCE_NAME for a60
select distinct instance_name,db_name,status from v$asm_client;
INSTANCE_NAME DB_NAME STATUS
----------------------------------------------- ------------------------ --------------------------
+ASM2 +ASM CONNECTED
-MGMTDB _mgmtdb CONNECTED
rac12db2 rac12db CONNECTED
rac12node2 _OCR CONNECTED
手动关掉节点1 asm实例:
[grid@rac12node1 ~]$ srvctl stop asm -node rac12node1 -stopoption abort -force
手动关掉节点1 asm实例:
[grid@rac12node1 ~]$ srvctl stop asm -node rac12node1 -stopoption abort -force
再次查看节点2 asm连接信息,查看节点2上访问ASM实例的客户端,有了来自节点1的客户端访问。
SQL> select distinct instance_name,db_name,status from v$asm_client;
INSTANCE_NAME DB_NAME STATUS
-------------------------------------------- ---------------------- -------------------------------
+ASM2 +ASM CONNECTED
-MGMTDB _mgmtdb CONNECTED
rac12db1 rac12db CONNECTED
rac12db2 rac12db CONNECTED
rac12node2 _OCR CONNECTED
1. 登录 RAC 数据库实例 1 (rac1)
login as: oracle
oracle@192.168.xx.xxs password:
Last login: Fri Sep 27 06:05:44 2013
2. 检查 ASM 实例和 RAC 数据库实例的状态:
[oracle@rac1 ~]$ ps -ef | grep pmon
oracle 3053 1 0 05:56 ? 00:00:00 asm_pmon_+ASM1
oracle 3849 1 0 05:57 ? 00:00:00 ora_pmon_flavia1
3. 在 RAC 数据库实例 1 (rac1) 中检查 ASM 实例的状态
[oracle@rac1 ~]$ srvctl status asm
ASM is running on rac2,rac1
4. 在 RAC 数据库实例 1 (rac1) 中检查集群的状态
[oracle@rac1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
5. 在 RAC 数据库实例 1 (rac1) 中停止 ASM 实例
[oracle@rac1 ~]$ srvctl stop asm -n rac1 -o abort -f
6. 在 RAC 数据库实例 1 (rac1) 中检查 ASM 实例的状态
[oracle@rac1 ~]$ srvctl status asm
ASM is running on rac2
7. 检查 ASM 实例和 RAC 数据库实例 (rac1) 的状态
[oracle@rac1 ~]$ ps -ef | grep pmon
oracle 7885 5795 0 06:20 pts/0 00:00:00 grep pmon
总结:数据库实例与 ASM 实例强关联。如果 ASM 实例发生故障,同一节点上的数据库实例也会发生故障。
支持的最大磁盘组数为 511。
可以灵活地重命名磁盘组中的 ASM 磁盘。
ASM 实例的补丁级验证
滚动补丁期间禁用补丁级验证
复制物理元数据
在早期版本中,集群要求:
一个供客户端应用访问的公共网络
一个或多个用于集群内节点间通信(包括 ASM 通信)的专用网络
Flex ASM 增加 ASM 网络,可用于 ASM 与其客户端之间的通信,以便隔离和分流 ASM 通信。
更多精彩干货分享
点击下方名片关注
IT那活儿
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129880.html
摘要:什么是字节码程序通过编译之后生成文件就是字节码集合正是有这样一种中间码字节码,使得等函数语言只用实现一个编译器即可运行在上。 什么是字节码? java程序通过javac编译之后生成文件.class就是字节码集合,正是有这样一种中间码(字节码),使得scala/groovy/clojure等函数语言只用实现一个编译器即可运行在JVM上。看看一段简单代码。 public long ...
摘要:全称应用性能管理监控后面我会通过一系列的文章来介绍的原理框架设计与实现等等。在应用构建期间,通过修改字节码的方式来进行字节码插桩就是实现自动化的方案之一。 showImg(https://segmentfault.com/img/bVbbRX6?w=1995&h=1273); 欢迎关注微信公众号:BaronTalk,获取更多精彩好文! 一. 前言 性能问题是导致 App 用户流失的罪魁...
摘要:问题九库控制文件扩展报错库的扩展报错,用的是裸设备,和还是原来大小,主库的没有报错,并且大小没有变,求解释。专家解答从报错可以看出,控制文件从个块扩展到个块时报错,而裸设备最大只支持个块,无法扩展,可以尝试将参数改小,避免控制文件报错。 链接描述引言 近期我们在DBASK小程序新关联了运维之美、高端存储知识、一森咖记、运维咖啡吧等数据领域的公众号,欢迎大家阅读分享。 问答集萃 接下来,...
每篇一句 胡适:多谈些问题,少聊些主义 前言 Spring MVC和MyBatis作为当下最为流行的两个框架,大家平时开发中都在用。如果你往深了一步去思考,你应该会有这样的疑问: 在使用Spring MVC的时候,你即使不使用注解,只要参数名和请求参数的key对应上了,就能自动完成数值的封装 在使用MyBatis(接口模式)时,接口方法向xml里的SQL语句传参时,必须(当然不是100%的必须,...
摘要:来自于应用的一个新领域编译成的应用它是应用的一个全新流派,由的项目催生而来。所有外部数据在一个称为堆的对象中存储并被引用。到目前为止,大部分的使用情况下,代码性能是至关重要的比如运行游戏,图像,处理语言翻译和库。 正如许多开发者一样,我也为Asm.js的前景而感到兴奋不已。最近的新闻——Asm.js正在被Firefox支持——引起了我的兴趣。同样感兴趣的还有Mozilla和Epic声明...
阅读 1346·2023-01-11 13:20
阅读 1684·2023-01-11 13:20
阅读 1132·2023-01-11 13:20
阅读 1858·2023-01-11 13:20
阅读 4100·2023-01-11 13:20
阅读 2704·2023-01-11 13:20
阅读 1385·2023-01-11 13:20
阅读 3597·2023-01-11 13:20