最近有一些客户有这样一个需求,一个ASM磁盘组中分别挂载不同性能的存储或磁盘。希望ASM在读取的时候,优先读取性能好的磁盘,性能差的磁盘更多的是扮演'standby'的角色。
    oracle提供一个参数ASM_PREFERRED_READ_FAILURE_GROUPS,来实现ASM优先读取的功能,但是以FAILURE_GROUP为单位实现的。我们可以将不同性能的存储(磁盘),分别划分到不同的FAILURE_GROUP,然后根据这个参数来指定优先读取哪个FAILURE_GROUP

关于参数说明
ASM_PREFERRED_READ_FAILURE_GROUPS specifies the failure groups that contain preferred read disks. Preferred disks are instance specific. This parameter is only valid in ASM instances.

下面就是在测试环境测试的过程:

1. 修改参数(无需重启instance,立即生效)

SQL> alter system set ASM_PREFERRED_READ_FAILURE_GROUPS='DATA.QR01CEL03';
System altered.

2. 检查修改结果

SQL> show parameter prefer
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_preferred_read_failure_groups string DATA.QR01CEL03

下面是测试部分:
1. 查询修改后每个FAILGROUP的读取次数

SQL> select instname, failgroup, sum(reads), sum(writes) from v$asm_disk_iostat group by instname,failgroup order by 1,2;
INSTNAME  FAILGROUP SUM(READS) SUM(WRITES)
---------------------------------------------------------------- -----------
dbm2                QR01CEL01  12608 5470
dbm2 QR01CEL02  3544   4529
dbm2 QR01CEL03  1997  4107

2. 另一个窗口2,执行read操作

select * from dba_objects;

3. 窗口1,可以看到,读取都是QR01CEL03上的reads是一直增加的,而其他的FAILGROUP是没有reads的

SQL> /
INSTNAME  FAILGROUP SUM(READS) SUM(WRITES)
---------------------------------------------------------------- -----------
dbm2  QR01CEL01  12608  5492
dbm2  QR01CEL02  3545   4550
dbm2  QR01CEL03  2081   4128
SQL> /
INSTNAME  FAILGROUP SUM(READS) SUM(WRITES)
---------------------------------------------------------------- -----------
dbm2  QR01CEL01  12608 5508
dbm2  QR01CEL02  3545  4560
dbm2  QR01CEL03  2102  4138
SQL> /
INSTNAME  FAILGROUP SUM(READS) SUM(WRITES)
---------------------------------------------------------------- -----------
dbm2  QR01CEL01  12608  5561
dbm2  QR01CEL02  3546   4606
dbm2  QR01CEL03  2250   4185
SQL> /
INSTNAME  FAILGROUP SUM(READS) SUM(WRITES)
---------------------------------------------------------------- -----------
dbm2  QR01CEL01  12608  5645
dbm2  QR01CEL02  3546   4669
dbm2  QR01CEL03  2414   4246

最后可以看到本次查询共读取2414-1997=417次。并且全部在FAILGROUP-QR01CEL03上。

4. 下面我们测试写入部分:

窗口1
SQL> /
INSTNAME  FAILGROUP SUM(READS) SUM(WRITES)
---------------------------------------------------------------- -----------
dbm2  QR01CEL01  12619  5991
dbm2  QR01CEL02  3558   4957
dbm2  QR01CEL03  3389   4539
窗口2
SQL> create table test as select * from dba_objects;
窗口1
SQL> /
INSTNAME  FAILGROUP SUM(READS) SUM(WRITES)
---------------------------------------------------------------- -----------
dbm2  QR01CEL01  12621 6178
dbm2  QR01CEL02  3559  5097
dbm2  QR01CEL03  3720  4675

实际测试显示,对写操作是没有影响。
   写操作的测试--很白痴的行为,想想也是,data磁盘组是normal模式,一定会根据算法,将数据块分配到不同的FAILGROUP。也就不可能有优先写的概念。

总结,很简单的一个参数设置,可以实现和实用的一个功能。

参考文档
Init.ora Parameter "ASM_PREFERRED_READ_FAILURE_GROUPS" Reference Note (Doc ID 567088.1)
ASM Reads From the Preferred Failure Groups With Compatible.Rdbms=10.2 If RDBMS is 11.1 (Doc ID 779807.1)
http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams013.htm#REFRN10279
ASMIOSTAT Script to collect iostats for ASM disks (Doc ID 437996.1)

转载于:https://blog.51cto.com/hsbxxl/1407678

ASM_PREFERRED_READ_FAILURE_GROUPS相关推荐

  1. 11.2.0.2 asmcmd lsdg show incorrect diskgroup number

    今天在给ASM扩磁盘组的时候发现11.2.0.2上asmcmd中lsdg命令所显示的磁盘组数不正确,现象如下: Node A lsdg正常: ASMCMD> lsdg State Type Re ...

  2. Oracle ASM 11g新特性

    一.什么是ASM ASM全称为Automated Storage Management,即自动存储管理,它是自Oracle10g这个版本Oracle推出的新功能.这是Oracle提供的一个卷管理器,用 ...

  3. Oracle 11g 新特性简介

    Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...

  4. [转]Oracle DB 管理ASM实例

    • 描述使用ASM 的好处 • 管理ASM 实例 • 创建和删除ASM 磁盘组 • 扩展ASM 磁盘组 • 通过使用各种实用程序检索ASM 元数据 Automatic Storage Manageme ...

  5. Oracle11g RAC常用操作 (维护及管理)

    1. 查看各资源状态(nodeapps节点应用程序,ASM实例,数据库实例等): [root@rac01 u01]# su - grid   [grid@rac01 ~]$ crs_stat -t   ...

  6. 关于 Oracle 存储双活配置和实战

    作者简介 任小闯 云和恩墨交付技术顾问,6年以上数据库开发维护工作经历,Oracle 10g OCM,Oracle 11g OCP,曾就职于某互联网行业任数据库的设计和开发优化,现任某省移动运营商负责 ...

  7. mysql异地双活架构,银行跨数据中心数据库双活架构设计:五大难点攻克

    银行跨数据中心数据库双活架构设计:五大难点攻克 发布时间:2018-12-09 10:21, 浏览次数:327 数据库双活技术已成为企业重点关注的对象,社区最近组织了交流活动,以帮助大家更好的明确理解 ...

  8. oracle11g登录企业管理器,Oracle11g RAC常用操作 (维护及管理)

    1. 查看各资源状态(nodeapps节点应用程序,ASM实例,数据库实例等): [root@rac01 u01]# su - grid [grid@rac01 ~]$ crs_stat -t   ( ...

  9. oracle 11.2 RAC 安装新主机 识别老存储

    在有些场景下,RAC环境中如果主机出现问题,比如硬件故障等,不能启动,我们需要尽快存储上的启动数据库,恢复业务,那么就需要迁移以前的RAC环境到新的主机环境下,我测试了11.2和12.1的RAC,恢复 ...

最新文章

  1. Web开发融会贯通: 深入浅出 告别浮云
  2. Delphi Math里的基本函数,以及浮点数比较函数(转)
  3. 再谈typedef(重点为函数指针)
  4. 看完这篇后,别再说你不懂JVM类加载机制了~
  5. pytorch from_numpy
  6. Linux服务器傻瓜安装(图解下)(4)
  7. 异步消息的传递-回调机制(转)
  8. 亿安科技作手_亿安科技作手(2)-李B
  9. Win10配置ssh密钥免密连接Linux服务器
  10. Unity多人联机框架Mirro学习记录(一)
  11. 1750. 救生员 Lifeguards S
  12. 面试官通用面试问题---------------经典回答
  13. vue 样式标签使用 scoped
  14. SQL SERVER 2008中使用VARBINARY(MAX)进行二进制数据存取的实现方法
  15. 玩儿转ffmeg的7个技巧
  16. RocketMQ使用详解以及高并发系统实践问题
  17. Ubuntu源码编译安装PCL
  18. arm 关于m a r系列区别
  19. 如何成长为一名优秀的产品经理?
  20. java swing方块移动

热门文章

  1. session的存储方式和配置
  2. erlang mnesia数据库简单应用
  3. 数据库监听。数据库一次notify,Activity多次接收
  4. 【转】面向GC的Java编程
  5. Intent.FLAG_ACTIVITY_CLEAR_TOP 的使用注意
  6. 由浅入深:自己动手开发模板引擎——解释型模板引擎(二)
  7. 1.MVC的工作流程
  8. 翻看雷军近10年演讲、采访,我们整理出70条干货
  9. 交互,真的没有你想象的那么重要
  10. 1.2.1bat脚本命令 DIR 显示磁盘目录与重定向符号 通配符