11g ASM asm_preferred_read_failure_group
ASM優先讀取
asm_preferred_read_failure_group引數被用來指定一個故障磁碟組列表,它指定了RAC中每個節點的本地讀取方式。asm_preferred_read_failure_group格式如下:
asm_preferred_read_failure_groups=diskgroup_name.failuregroup_name,...
每個條目包含了diskgroup_name,它是磁碟組名字,failuregroup_name,它是磁碟組所使用的故障磁碟組名字,這兩個變數使用一個句號進行分隔。多個條目可以使用逗事情進行分隔。這個 引數可以進行動態修改。
在extended rac中,為asm_preferred_read)failure_groups引數所指定的故障磁碟組應該只包含本地節點中的磁碟,v$asm_disk中的preferred_read列指示了優先讀取磁碟。
注意,當增加或刪除磁碟時,最佳的方法是從儲存將要發生改變的節點執行增加或刪除命令。這能更有效的執行重新平衡,因為區重新定位使用同樣的故障磁碟組進行本地化--,也就是相同節點。
下面的例子將顯示如何部署優先讀取功能與展現其一些優點。這個例子演示當asm_preferred_read_failure_groups引數沒有設定時的I/O模式,以及修改引數之後對I/O的影響。
1.建立有兩個故障磁碟組的ASM磁碟組data_nrml,其中raw5/6/7磁碟是與節點1在一個機房,raw/12/13/14磁碟是與節點2在另一個機房:
SQL> create diskgroup data_nrml normal redundancy 2 failgroup fg1 disk '/dev/raw/raw5','/dev/raw/raw6','/dev/raw/raw7' 3 failgroup fg2 disk '/dev/raw/raw12','/dev/raw/raw13','/dev/raw/raw14'; Diskgroup created.
2.在節點2,建立表測試表t1
SQL> create table t1 as select * from dba_tables; Table created. SQL> insert into t1 select * from t1; 3668 rows created. ..... SQL> / SQL> / 1467392 rows created. SQL> commit; Commit complete. SQL> alter system flush buffer_cache; System altered.
3.查詢磁碟組的讀寫I/O累計資訊,可以看到例項1中的FG1,FG2的讀寫分別為169,176,例項2中的FG1,FG2的讀寫分別為43,59
SQL> set long 9999 SQL> set linesize 9999 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 169 3809 1 FG2 176 3809 2 FG1 43 17201 2 FG2 59 17201
4.執行查詢:
SQL> show parameter asm_preferred_read_failure_groups NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ asm_preferred_read_failure_groups string SQL> set timing on SQL> select count(*) from jy.t1; COUNT(*) ---------- 1467392 Elapsed: 00:00:07.23
5.再次查詢磁碟組的讀寫I/O累計資訊,可以看到例項1中的FG1,FG2的讀寫分別為450,564,比之前增加了450-169=281,564-176=388,例項2中的FG1,FG2的讀寫分別為85,99,比之前加了85- 43=42,99-59=40,從這些資料可以看到,獲取資料時同時訪問了兩個故障磁碟組,因為我的資料是在節點2進行插入的,顯示的讀取I/O資料從故障磁碟組FG2的還要比FG1稍微多點,執行時間為7秒。
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 450 8879 1 FG2 564 8879 2 FG1 85 38166 2 FG2 99 38166
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'; System altered. SQL> alter system set asm_preferred_read_failure_groups='DATA_NRML.FG2' scope=both sid='+ASM2'; System altered.
7.檢查例項的優先讀取磁碟組資訊,從下面的查詢結果可以看到,例項1的優先讀取故障磁碟組為FG1,例項2為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 PR ---------- ------------------------------------------------------------ ------------------------------------------------------------ -- 1 FG1 DATA_NRML_0002 Y 1 FG1 DATA_NRML_0000 Y 1 FG1 DATA_NRML_0001 Y 1 FG2 DATA_NRML_0003 N 1 FG2 DATA_NRML_0005 N 1 FG2 DATA_NRML_0004 N 2 FG1 DATA_NRML_0001 N 2 FG1 DATA_NRML_0000 N 2 FG1 DATA_NRML_0002 N 2 FG2 DATA_NRML_0004 Y 2 FG2 DATA_NRML_0003 Y 2 FG2 DATA_NRML_0005 Y 12 rows selected.
8.在節點1開啟會話再次執行查詢
SQL> alter system flush buffer_cache; System altered. SQL> set timing on SQL> select count(*) from jy.t1; COUNT(*) ---------- 1467392 Elapsed: 00:00:03.26
9.再次查詢磁碟組的讀寫I/O累計資訊,可以看到例項1中的FG1,FG2的讀寫分別為867,567,比之前增加了867-450=417,567-564=3,例項2中的FG1,FG2的讀寫分別為88,102,比之前加了88- 85=3,102-99=3,從這些資料可以看到,獲取資料時基本上都是訪問的故障磁碟組FG1,從這些資料可以看到,例項1也基本上都是訪問的故障磁碟組FG1,對FG2讀取次為3,例項2對於故障磁碟組 FG1,FG2的訪問次數為3,都很少,執行時間從7秒變為了3秒。
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 867 8891 1 FG2 567 8891 2 FG1 88 38166 2 FG2 102 38166
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2128983/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 11g單機使用asmASM
- oracle 11g ASM問題OracleASM
- ASM 11g New Features - How ASM Disk Resync WorksASM
- 11G R2 ASM管理ASM
- 11g rac standby asm---04ASM
- 11g rac multipath asmlib ASM asm_open error Operation not permittedASMErrorMIT
- oracle 11g asm自動備份asm磁頭任務OracleASM
- 11g asm Oracle 系統核心修改ASMOracle
- 11g資料庫遷移ASM資料庫ASM
- install 11G ASM on RedHat step by stepASMRedhat
- ASM 11g新功能fast disk resyncASMAST
- [轉]Important ASM changes in 11g Release 2ImportASM
- RAC 11G ASM磁碟損壞恢復ASM
- 11G R2 ASM啟動方法ASM
- oracle 11g ASM 的管理使用者OracleASM
- oracle 11g asm 磁碟組相容屬性OracleASM
- 11g asm md_backup md_restoreASMREST
- RAC 11G ASM下修改spfile檔案ASM
- Oracle 11g R1中ASM增強OracleASM
- oracle 11g 操作ASM許可權問題OracleASM
- oracle 11g ASM 磁碟組線上擴容實驗:OracleASM
- dbca建立oracle 11g rac發現不了asm磁碟OracleASM
- oracle 11G新特性--SYSASM 角色--用來管理ASMOracleASM
- 安裝oracle 11g 使用ASM儲存 詳細OracleASM
- oracle 11g R1 asm 磁碟組新特性OracleASM
- 11g asm metadata 備份恢復演練ASM
- 11G ORACLE RAC DBCA 無法識別asm磁碟組OracleASM
- AIX6.1安裝ORACLE 11g(單機使用ASM)AIOracleASM
- How to create user for oracle10g/11g asm instanceOracleASM
- 11G RAC 為 ASM 磁碟組增加一個磁碟。(AIX)ASMAI
- oracle 11g rac asm ORA-15064錯誤OracleASM
- oracle之 RAC 11G ASM下控制檔案多路複用OracleASM
- Oracle 11g單例項ASM遷移到檔案系統Oracle單例ASM
- oracle 11g for aix 5L 配置asm時遇到的問題OracleAIASM
- Oracle 11g 自動刪除ASM歸檔檔案指令碼OracleASM指令碼
- Oracle 11g RAC 建立例項DBCA無法發現ASM DiskgroupOracleASM
- OCP(11g)------> ASM Command-Line Utility (ASMCMD)和 使用 ASMCMDASM
- asm files,asm directories,asm templatesASM