深入了解 Oracle Flex ASM 及其优点
简介
Oracle Real Application Cluster (RAC) 是 Oracle 解决方案中的一个著名产品,用于保持业务数据的高可用性。Oracle RAC 允许在所有集群节点之间共享负载,采用 N-1 容错配置来应对节点故障,其中 N 是节点总数。Oracle RAC 一直在不断改进每个版本,此次也不例外。新的 12.1.0.1 版包含“Flex ASM”和“Flex 集群”两个属性,支持面向云计算的环境的各种苛刻需求。
Oracle RAC 12c 引入了两个新概念:
中心节点: 和以前的版本一样,它们通过专用网络相互连接,并且可以直接访问共享存储。这些节点可以直接访问 Oracle 集群注册表 (OCR) 和表决磁盘 (VD)。
叶节点: 这些节点是轻型节点,彼此不互连,也不能像中心节点一样访问共享存储。每个叶节点与所连接的中心节点通信,并通过所连接的中心节点连接到集群。
此拓扑允许松散耦合的应用服务器与紧密耦合的数据库服务器形成一个集群。紧密耦合的服务器是中心服务器,与集群中的其他中心服务器共享数据库、OCR 和表决设备的存储并进行对等通信。松耦合的服务器是叶服务器,与集群中的单个中心服务器形成松散通信关联,不需要与集群中的其他中心服务器或叶服务器共享存储,也不需要与之进行对等通信,只与所关联的中心服务器通信。在 12.1.0.1 中,叶服务器旨在提高应用的高可用性和实现多层资源管理。
在 Oracle 12c 之前,对于要使用 ASM 的数据库实例来说,所有节点上的 ASM 实例必须已处于运行状态,才能启动数据库实例。如果 ASM 实例未运行,则意味着在存储级使用 ASM 的数据库实例不能启动。这实际上意味着无论采用何种技术(即 RAC、ASM 和共享存储),均不能访问数据库实例。
随着 Oracle 12c 的推出,一个名为 Oracle Flex ASM 的特性解除了上述限制,它的一个主要特性是故障切换到集群中的其他节点。本质上是一个中心和叶架构,Oracle Clusterware 通过一个替代 ASM 实例将故障节点的连接将无缝转移到另一个成员节点。在给定集群中运行的 ASM 实例数被称作 ASM 基数,默认值为 3。但此基数值可以使用 Clusterware 命令修改。
Oracle Flex 集群
从架构上来说,Oracle Flex 集群包括一个中心和叶架构,其中只有中心节点可以直接访问 Oracle 集群注册表 (OCR) 和表决磁盘 (VD)。但是应用可以通过叶节点访问数据库,而不必在叶节点上运行 ASM 实例。通过中心节点连接到数据库使得它对应用透明。
图 1:描绘了一个典型的 Oracle Flex 集群,包含 4 个叶节点和 2 个中心节点。简单地说,Oracle Flex 集群需要 Oracle Flex ASM。
Oracle Flex ASM 的实现方面
Oracle Flex ASM 可通过两种方式实现:
纯 12c Flex ASM(相同版本)
Grid Infrasctructure (GI) 和数据库都运行在 Oracle 12c 上
Oracle 12c 之前的混合版本(不同版本)
和平常一样,ASM 实例将在每个节点上运行,Flex 配置支持 12c 之前的数据库。使用 ASM 磁盘组的兼容性参数管理各数据库实例之间的兼容性。这种方法的优点是,如果 Oracle 12c 数据库实例与一个 ASM 实例的连接断开,数据库连接将故障切换至其他服务器上的另一个 ASM 实例。通过将基数设置为 all 即可以实现这种故障切换。
使用 Oracle Flex ASM 的 Oracle RAC 12c
标准 Oracle Flex ASM 配置:
Oracle Flex ASM 配置上的 ASM 实例故障:
1. 登录 RAC 数据库实例 1 (rac1)
[oracle@oel6-112-rac1 Desktop]$ hostname oel6-112-rac1.localdomain
2. 检查 ASM 实例和 RAC 数据库实例的状态
[oracle@oel6-112-rac1 Desktop]$ ps -ef | grep pmon oracle 3325 1 0 17:39 ? 00:00:00 asm_pmon_+ASM1 oracle 3813 1 0 17:40 ? 00:00:00 mdb_pmon_-MGMTDB oracle 5806 1 0 17:42 ? 00:00:00 ora_pmon_orcl1 oracle 6193 1 0 17:42 ? 00:00:00 apx_pmon_+APX1
3. 从实例 1 (rac1) 检查 RAC 数据库实例中 ASM 实例的状态
[oracle@oel6-112-rac1 Desktop]$ srvctl status asm ASM is running on oel6-112-rac2,oel6-112-rac1
4. 在实例 1 (rac1) 中检查集群状态
[oracle@oel6-112-rac1 Desktop]$ crsctl check cluster CRS-4537: Cluster Ready Services is online CRS-4529: Cluster Synchronization Services is online CRS-4533: Event Manager is online
5. 用于检查 Oracle Flex ASM 是否启用的命令 (rac1)
[oracle@oel6-112-rac1 Desktop]$ asmcmd ASMCMD> showclustermode ASM cluster : Flex mode enabled ASMCMD> showclusterstate Normal
6. 用于更改 ASM 基数的命令 (rac1)
[oracle@oel6-112-rac1 Desktop]$ srvctl status asm -detail ASM is running on oel6-112-rac2,oel6-112-rac1 ASM is enabled. [oracle@oel6-112-rac1 Desktop]$ srvctl config asm -detail ASM home: /u01/app/12.1.0/grid Password file: +DATA/orapwASM ASM listener: LISTENER ASM is enabled. ASM instance count: 3 Cluster ASM listener: ASMNET1LSNR_ASM
7. 用于检查 Oracle Flex ASM 是否启用的命令 (rac2)
[oracle@oel6-112-rac2 Desktop]$ asmcmd ASMCMD> showclustermode ASM cluster : Flex mode enabled ASMCMD> showclusterstate Normal ASMCMD> exit
8. 如何更改 ASM 基数 (rac2)
[oracle@oel6-112-rac2 Desktop]$ srvctl config asm -detail ASM home: /u01/app/12.1.0/grid Password file: +DATA/orapwASM ASM listener: LISTENER ASM is enabled. ASM instance count: 3 Cluster ASM listener: ASMNET1LSNR_ASM
9. 在 RAC 数据库实例 1 (rac1) 中关闭 ASM 实例
[oracle@oel6-112-rac1 Desktop]$ srvctl stop asm -node oel6-112-rac1 -stopoption abort -force
10. 在 RAC 数据库实例 1 (rac1) 中检查 ASM 实例的状态
[oracle@oel6-112-rac1 Desktop]$ srvctl status asm PRCR-1070 : Failed to check if resource ora.asm is registered Cannot communicate with crsd
11. 在 RAC 数据库实例 1 (rac1) 中检查集群服务的状态
[oracle@oel6-112-rac1 Desktop]$ crsctl check cluster CRS-4535: Cannot communicate with Cluster Ready Services CRS-4529: Cluster Synchronization Services is online CRS-4533: Event Manager is online
12. 在实例 1 (rac1) 中检查 ASM 和 RAC 数据库的状态
[oracle@oel6-112-rac1 Desktop]$ ps -ef | grep pmon oracle 3813 1 0 17:40 ? 00:00:00 mdb_pmon_-MGMTDB oracle 5806 1 0 17:42 ? 00:00:00 ora_pmon_orcl1 oracle 6193 1 0 17:42 ? 00:00:00 apx_pmon_+APX1
注:在这里,数据库实例与特定节点中运行的特定 ASM 实例关联。如果因为某种原因,ASM 实例无法启动/服务关闭,数据库实例仍然可以启动,因为数据库实例将查找同一集群中运行的 ASM 实例。图 3 描绘了 Flex ASM 的高可用特性。
13. 在 RAC 数据库实例 1 (rac1) 中检查没有 ASM 实例的正在运行的 RAC 数据库实例的状态
[oracle@oel6-112-rac1 Desktop]$ . oraenv ORACLE_SID = [orcl1] ? orcl1 ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/12.1.0/db_1 The Oracle base remains unchanged with value /u01/app/oracle
14. 从 RAC 数据库实例 1 (rac1) 登录数据库实例
[oracle@oel6-112-rac1 Desktop]$ sqlplus /nolog SQL*Plus: Release 12.1.0.1.0 Production on Wed Sep 25 18:24:36 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved.SQL> connect sys/oracle@orcl as sysdba Connected.SQL> select instance_name,instance_number from gv$instance;INSTANCE_NAME INSTANCE_NUMBER ------------------------------------------- orcl2 2 orcl1 1 SQL> select instance_name,instance_number from v$instance;INSTANCE_NAME INSTANCE_NUMBER ------------------------------------------- orcl2 2SQL> connect sys/oracle@orcl as sysdba Connected.SQL> select instance_name,instance_number from gv$instance;INSTANCE_NAME INSTANCE_NUMBER ------------------------------------------- orcl1 1
15. 从 RAC 数据库实例 1 (rac1) 连接到 RAC 数据库实例 2 (rac2) 的 ASM 实例
[oracle@oel6-112-rac1 Desktop]$ . oraenv ORACLE_SID = [orcl1] ? +ASM2 ORACLE_HOME = [/home/oracle] ? /u01/app/12.1.0/grid The Oracle base remains unchanged with value /u01/app/oracle[oracle@oel6-112-rac1 Desktop]$ asmcmd --privilege sysasm --inst +ASM2ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 15342 4782 0 4782 0 Y DATA/ ASMCMD>
总结:数据库实例使用一个专用 ASM 实例,我们强制该 ASM 实例被停止工作来模拟故障,因此数据库实例重新连接到另一节点(在本示例中为节点 2 (rac2))上的现有 ASM 实例。
Oracle Database 11.2 或早期版本
如前面针对 Oracle 12c 的介绍所述,ASM 与数据库实例的关联本质上是特定的。这意味着,如果 ASM 实例无法启动,该节点/ASM 中的关联数据库实例也无法启动,从而导致该数据库无法访问。
1. 登录 RAC 数据库实例 1 (rac1)
login as: oracle oracle@192.168.xx.xx's 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 实例发生故障,同一节点上的数据库实例也会发生故障。
为何使用 Oracle Flex ASM
Oracle Flex ASM 支持 Oracle Database 12c 客户端使用更大的 LUN 大小。
支持的最大磁盘组数为 511。
可以灵活地重命名磁盘组中的 ASM 磁盘。
ASM 实例的补丁级验证
滚动补丁期间禁用补丁级验证
复制物理元数据
Oracle Flex ASM 中的网络增强
在早期版本中,集群要求:
一个供客户端应用访问的公共网络
一个或多个用于集群内节点间通信(包括 ASM 通信)的专用网络
Flex ASM 增加 ASM 网络,可用于 ASM 与其客户端之间的通信,以便隔离和分流 ASM 通信。
部署 Flex ASM
下面是 Flex ASM 安装程序的屏幕截图。
选择选项“Advanced Installation”
有三个存储选项:
标准 ASM
12c 之前的 ASM 配置模式
Oracle Flex ASM
推荐
非 ASM 托管的存储
管理 Flex ASM:
无需 Flex ASM 特定的实例参数
ASM 服务器实例使用自动内存管理 (AMM)
转:http://www.oracle.com/technetwork/cn/articles/database/flexasm-flexcluster-benefits-odb12c-2177371-zhs.html
转载于:https://www.cnblogs.com/andy6/p/5881180.html
深入了解 Oracle Flex ASM 及其优点相关推荐
- oracle flex cluster,Oracle Flex ASM和Flex集群
Oracle Flex ASM和Flex集群 Oracle RAC 12c 引入了两个新概念: 中心节点: 和以前的版本一样,它们通过专用网络相互连接,并且可以直接访问共享存储.这些节点可以直接访问 ...
- oracle flex asm ceph,关于12c flex cluster及 flex asm疑问
本帖最后由 Yong Huang 于 2016-1-29 11:52 编辑 12c ASM Flex architecture is something new to me. Based on wha ...
- oracle flex cluster,【Ora12c-GI】将Standard集群修改为Flex集群
Oracle12C支持两种集群模式:Standard和Flex. 11G即是Standard的:Flex是12C的新特性. 当将Standard修改为Flex时,出现如下问题: # crsctl se ...
- Oracle 12.2 Flex ASM安装RU后ASM、GIMR等资源未启动, 手动启动提示CRS-2549“it is not a valid candidate as per the place
今天遇到的一个案例,一套ORACLE 12.2 FLEX CLUSTER, 在安装了RU(20180417)后节点2的CRS启动正常,但是其它如ASM.DB.GIMR 等资源都未启动, GI aler ...
- ORACLE的ASM
2019独角兽企业重金招聘Python工程师标准>>> 自动存储管理 (ASM) 是 Oracle 数据库 10g/11g 的一个特性,它为数据库管理员提供了一个简单的存储管理界面, ...
- oracle flex cluster,12c flex cluster小记(3)
先是安装数据库软件,这很容易,这边省略不讲了.我要讲的是安装完数据库软件之后,我用dbca建库,建库过程没报什么错,但是却发现完成后,2个节点只有一个节点有db instance,另一节点就是没有db ...
- 故障诊断:12cR2 Flex ASM 环境中节点启动失败的诊断和分析
点击▲关注 "数据和云" 给公众号标星置顶 更多精彩 第一时间直达 作者 | 张维照,云和恩墨技术专家,Oracle ACEA,2006年起从事数据库管理工作,2009年转 O ...
- asm实例和oracle,关于ASM实例的相关概念
N多ASM文档七拼八凑组成了这一篇介绍 ----------------------------------------------------- 先来张架构图 文档一 1.ASM的作用 automa ...
- 【Oracle RAC+DG实验】Oracle RAC+ASM+DataGuard配置实验记录+常见问题
[Oracle RAC+DG实验]Oracle RAC+ASM+DataGuard配置实验记录+常见问题 1.环境规划: ---RAC环境介绍(primary database) ...
最新文章
- 【ACM】杭电OJ 2040
- 2019年深度学习自然语言处理最新十大发展趋势(附下载报告)
- 第十四节(接口(行为))
- (21)pandas.drop与dropna方法
- 利用unittest+ddt进行接口测试(二):使用yaml文件管理测试数据
- jquery 发送验证码60s倒计时,后重新发送
- 如何用html制作博客页面,HTML个人博客页面
- wincc工程组态论文_仪表人零基础学系统组态,必备知识!2020.12.12
- 分布式机器学习:算法、理论与实践
- 国庆马上到了,用python实现国旗头像
- TextView列表页面跳转的简洁写法.
- Android发送edp服务器,Android开发之基于OneNET平台的EDP传输协议的使用
- 在移动硬盘分区上装Win10系统,并在Mac上使用双系统
- 安卓开发笔记①:利用高德地图API进行定位、开发电子围栏、天气预报、轨迹记录、搜索周边(位置)
- tomcat php centeros,linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境...
- 【光学】(一) 光阑、光瞳
- 谁拿了奖金?HID2020竞赛、研讨会及颁奖典礼
- 《Android之大话设计模式》--设计原则 第三章:开放封闭原则 孙悟空任弼马温一职
- 怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译 2011-01-26 01:10 3175人阅读 评论(3) 收藏
- Typecho 博客美化
热门文章
- IntelliJ IDEA 安装问题解决
- 电子管计算机的操作者是谁,大一计算机第一学期考试重点及相应习题 作者
- 592zn rom/apk 自动签名工具_ios超级签名服务器
- 动力节点老杜mysql文件_mysql主从复制+mysql主从复制延迟解决方案
- 报告解读丨基于消费者洞察的鞋服品牌数字化营销新思路
- 西瓜创客张平曦:从商业目标出发解决数据治理中的困境
- 跑步碰撞大数据,走进悦跑圈的数据“大观园”
- 标签体系、用户分群、用户画像「玩味」解读,你沦为形式主义了吗?
- 2018 “神策杯”高校算法大师赛 6 强诞生,【招人】进行时……
- 实战 :为自己的公号搭建一个数据运营指标体系