博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASM_PREFERRED_READ_FAILURE_GROUPS
阅读量:7024 次
发布时间:2019-06-28

本文共 2895 字,大约阅读时间需要 9 分钟。

  最近有一些客户有这样一个需求,一个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,立即生效)

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

2. 检查修改结果 

1
2
3
4
SQL> show parameter prefer
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_preferred_read_failure_groups string DATA.QR01CEL03

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

1
2
3
4
5
6
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操作

1
select * from dba_objects;

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
窗口
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。也就不可能有优先写的概念。

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

本文转自 hsbxxl 51CTO博客,原文链接:http://blog.51cto.com/hsbxxl/1407678,如需转载请自行联系原作者
你可能感兴趣的文章
MyBatis的Batch处理导致秒杀系统超卖的问题
查看>>
远程备份电脑 —— 方案二:不需要使用.bat批运行文件
查看>>
解决Redhat Linux5 yum出现This system is not registered with RHN的方法
查看>>
10.23 linux任务计划cron 10.24 chkconfig工具 10.25 systemd管理服务 10.26 unit介绍 10.27 target介绍...
查看>>
2015/01/26PP租车面试总结
查看>>
荷露叮咚wp建站系列视频课程1.WordPress基本介绍
查看>>
在线重启Exadata CELL
查看>>
我的友情链接
查看>>
MySql客户端查询发生乱码的解决方法
查看>>
centos6.5修改ip地址
查看>>
create oncreate wm_create
查看>>
运维之我的docker-运行你第一个镜像实例-docker容器
查看>>
Zabbix安装配置指南
查看>>
MariaDB(MySQL)安装及MySQL慢查询分析mysqlsla安装使用
查看>>
Oracle 数据库查看client的用户登录信息包括ip
查看>>
cacti脚本数据采集
查看>>
centos 下 django + uwsgi + nginx 快速搭建
查看>>
Kernel Trace System
查看>>
linux文件系统详解
查看>>
Vim入门基础
查看>>