下面的例子将显示如何部署优先读取功能与展现其一些优点。这个例子演示当asm_preferred_read_failure_groups参数没有设置时的I/O模式,以及修改参数之后对I/O的影响。 1.创建有两个故障磁盘组的ASM磁盘组 JL 其中fg1 是高性能,fg2是nas盘 2.在节点1,创建表测试表t1 SQL> create table t1 as select * from dba_tables; Table created. SQL> insert into t1 select * from t1; SQL> / ... 1430528 rows created. SQL> alter system flush buffer_cache; System altered. 3.查询磁盘组的读写I/O累计信息,可以看到实例1中的FG1,FG2的读写分别为5816599,5837805,实例2中的FG1,FG2的读写分别为5843814,5853830 set long 9999 set linesize 9999 select inst_id, failgroup, sum(reads), sum(writes) from gv$asm_disk where failgroup in ('FG1','FG2') group by inst_id, failgroup; set long 9999 set linesize 9999 select inst_id, failgroup, sum(reads), sum(writes) from gv$asm_disk where failgroup in ('FG1','FG2') group by inst_id, failgroup; INST_ID FAILGROUP SUM(READS) SUM(WRITES) ---------- ------------------------------ ---------- ----------- 1 FG1 5816599 56483 1 FG2 5837805 56483 2 FG1 5843814 966 2 FG2 5853830 966 4.执行查询: SQL> show parameter asm_preferred_read_failure_groups NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ asm_preferred_read_failure_groups string SQL> select count(*) from sys.t1; COUNT(*) ---------- 2861056 5.再次查询磁盘组的读写I/O累计信息,可以看到实例1中的FG1,FG2的读分别增加了 781,497 实例2 分别增加了2832 ,80 INST_ID FAILGROUP SUM(READS) SUM(WRITES) ---------- ------------------------------ ---------- ----------- 1 FG1 5817380 56813 1 FG2 5838302 56813 2 FG1 5846646 1013 2 FG2 5853910 1013 6.设置 asm_preferred_read_failure_groups参数,让节点1优先从故障磁盘组FG1进行读取,让节点2优先从故障磁盘组FG2进行读取 SQL> alter system set asm_preferred_read_failure_groups='DATA_NRML.FG1' scope=both sid='+ASM1'; alter system set asm_preferred_read_failure_groups='BPM.FG1','FR.FG1','JL.FG1','KFK.FG1','SC.FG1','ZHPT.FG1' scope=both; SQL> alter system set asm_preferred_read_failure_groups='BPM.FG1','FR.FG1','JL.FG1','KFK.FG1','SC.FG1','ZHPT.FG1' scope=both; System altered. SQL> show parameter asm_preferred_read_failure_groups NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ asm_preferred_read_failure_groups string BPM.FG1, FR.FG1, JL.FG1, KFK.F G1, SC.FG1, ZHPT.FG1 修改前查询时间 15:04:11 SQL> set timing on 15:04:17 SQL> select count(*) from sys.t1; COUNT(*) ---------- 2861056 Elapsed: 00:00:04.16 7.检查实例的优先读取磁盘组信息,从下面的查询结果可以看到,优先都是读FG1,其次是FG2: SQL> select inst_id, failgroup, name, preferred_read from gv$asm_disk where failgroup in ('FG1','FG2') order by inst_id, failgroup; INST_ID FAILGROUP NAME P ---------- ------------------------------ ------------------------------ - 1 FG1 BPM_0001 Y 1 FG1 ZHPT_0001 Y 1 FG1 FR_0001 Y 1 FG1 KFK_0001 Y 1 FG1 SC_0001 Y 1 FG1 JL_0001 Y 1 FG2 BPM_0000 N 1 FG2 KFK_0000 N 1 FG2 JL_0000 N 1 FG2 SC_0000 N 1 FG2 ZHPT_0000 N INST_ID FAILGROUP NAME P ---------- ------------------------------ ------------------------------ - 1 FG2 FR_0000 N 2 FG1 SC_0001 Y 2 FG1 JL_0001 Y 2 FG1 ZHPT_0001 Y 2 FG1 BPM_0001 Y 2 FG1 FR_0001 Y 2 FG1 KFK_0001 Y 2 FG2 JL_0000 N 2 FG2 BPM_0000 N 2 FG2 ZHPT_0000 N 2 FG2 KFK_0000 N INST_ID FAILGROUP NAME P ---------- ------------------------------ ------------------------------ - 2 FG2 FR_0000 N 2 FG2 SC_0000 N 12 rows selected. 8.在节点1开启会话再次执行查询 SQL> alter system flush buffer_cache; System altered. SQL> set timing on 15:13:53 SQL> select count(*) from SYS.t1; COUNT(*) ---------- 2861056 Elapsed: 00:00:00.73 Elapsed: 00:00:04.16 可以看到两次的执行时间存在明细差距,调整前为4s调整后为0.7s 9 查询当前的读写数据 set long 9999 set linesize 9999 select inst_id, failgroup, sum(reads), sum(writes) from gv$asm_disk where failgroup in ('FG1','FG2') group by inst_id, failgroup; INST_ID FAILGROUP SUM(READS) SUM(WRITES) ---------- ------------------------------ ---------- ----------- 1 FG1 5821644 59588 1 FG2 5839272 59586 2 FG1 5869843 1504 2 FG2 5854523 1504 再次执行sql, select count(*) from SYS.t1; 9.再次查询磁盘组的读写I/O累计信息,可以看到 读基本都到了FG1上面 852和512,FG2的读很少 都是6 SQL> select inst_id, failgroup, sum(reads), sum(writes) from gv$asm_disk where failgroup in ('FG1','FG2') group by inst_id, failgroup; INST_ID FAILGROUP SUM(READS) SUM(WRITES) ---------- ------------------------------ ---------- ----------- 1 FG1 5822496 59647 1 FG2 5839278 59647 2 FG1 5870355 1512 2 FG2 5854529 1512
ASM优先读取测试
来源:这里教程网
时间:2026-03-03 20:52:44
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 破解 ORA-14551:在 PL/SQL 中执行 DML 的陷阱与解决方案
- Oracle 统一审计- Best 实践四
Oracle 统一审计- Best 实践四
26-03-03 - Oracle SQL语句为什么不走索引-场景三
Oracle SQL语句为什么不走索引-场景三
26-03-03 - 数据库去O搞了个寂寞!甲骨文股价翻倍,市值突破5200亿美金!
数据库去O搞了个寂寞!甲骨文股价翻倍,市值突破5200亿美金!
26-03-03 - Oracle 统一审计- Best 实践五
Oracle 统一审计- Best 实践五
26-03-03 - 查询DBA_FREE_SPACE缓慢问题
查询DBA_FREE_SPACE缓慢问题
26-03-03 - Oracle Linux 8.10 图形化安装 Oracle Database 21c
- 长沙岳麓区家具馆:邂逅高颜值餐桌,开启优雅用餐时光
长沙岳麓区家具馆:邂逅高颜值餐桌,开启优雅用餐时光
26-03-03 - 芯片行业ERP系统设计需要考虑哪些因素
芯片行业ERP系统设计需要考虑哪些因素
26-03-03 - 软件签名添加时间戳
软件签名添加时间戳
26-03-03
