ASM Setting Larger AU Sizes
ASM分配單元
ASM分配空間以chunks為單位,叫作分配單元(AUs)。一個AU是最細粒度的分配--每個ASM磁碟都以相 同大小的AU進行劃分。ASM 1MB條帶大小對於Oracle資料庫來說已經證明是最佳條帶深度並且將會支 持最大I/O請求。這個最佳條帶大小,再加上均勻分佈磁碟組中的區與RDBMS中的buffer cache,防止熱點。
對於VLDBs設定 Large AU Size
對於非常大的資料庫(VLDBs)--例如,資料庫大小為10TB與更大的來說,改變預設AU大小是有意義的 。以下是對於VLDB改變預設大小的優點:
.減小RDBMS例項中管理區對映的大小
.增加檔案大小限制
.減小資料庫開啟的時間,因為VLDB通常有許多大的資料檔案
增加AU大小可以提高oracle 10g開啟大資料庫的時間,也會減小區對映所消耗共享池的大小。使用 1MB AU與固定大小區,對於一個10TB資料庫來說區對映的大小大約是90MB,在開啟資料庫時會被讀取並被儲存在記憶體中。使用16M AU,對於10TB資料庫來說區對映大小減小為大約5.5MB。在Oracle 10g 中,一個檔案整個區對映是在檔案開啟時從磁碟進行讀取的。
Oracle 11g透過按需讀取區對映顯著的最小化了檔案開啟延遲問題。在Oracle 10g中,對於每個檔案 的開啟,完整的區對映需要構建並且從ASM例項傳送給RDBMS例項。對於大檔案,延長檔案開啟時間這 是不必要的。在oracle 11g中,在檔案開啟時只有區對映中的前60個區會被髮送。剩下的以批次方式被髮送到RDBMS。
在Oracle 11g中設定Large AU Size
對於Oracle 11g ASM系統,下面的create diskgroup命令可以被執行用來設定合適的AU大小:
SQL> CREATE DISKGROUP DATA DISK '/dev/raw/raw15', '/dev/raw/raw16', '/dev/raw/raw17' ATTRIBUTE 'au_size' = '16M', 'compatible.asm' = '11.1' 'compatible.rdbms' = '11.1';
對Oracle 10g設定Large AU Size
在Oracle 10g中,ASM提供了兩個隱藏引數(_asm_ausize,_asm_stripesize)來允許你使用16MB的AU大小來建立磁碟組並且對於1MB(代 替128K)有更好的細粒度條帶。
SQL> set long 200 SQL> set linesize 200 SQL> select x.ksppinm NAME,y.ksppstvl value,x.ksppdesc describ 2 from x$ksppi x, x$ksppcv y 3 where x.inst_id=USERENV('Instance') 4 and y.inst_id=USERENV('Instance') 5 and x.indx=y.indx 6 and x.ksppinm='_asm_stripesize'; NAME VALUE DESCRIB ------------------------------ -------------------- ------------------------------ _asm_stripesize 131072 ASM file stripe size SQL> select x.ksppinm NAME,y.ksppstvl value,x.ksppdesc describ 2 from x$ksppi x, x$ksppcv y 3 where x.inst_id=USERENV('Instance') 4 and y.inst_id=USERENV('Instance') 5 and x.indx=y.indx 6 and x.ksppinm='_asm_ausize' 7 ; NAME VALUE DESCRIB ------------------------------ -------------------- ------------------------------ _asm_ausize 1048576 allocation unit size
AU引數只在建立磁碟組時才使用,而且在磁碟組建立之後現有磁碟組的AU大小是不會改變的。下面的例子使用16MB AU大小來建立一個磁碟組並且對所有資料庫檔案允許使用1MB的細粒度條帶。
1.關閉ASM例項
oracle@jyrac3 ~]$ export ORACLE_SID=+ASM1 [oracle@jyrac3 ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Wed Nov 30 11:12:02 2016 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options SQL> shutdown immediate ASM diskgroups dismounted ASM instance shutdown oracle@jyrac4 ~]$ export ORACLE_SID=+ASM2 [oracle@jyrac4 ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Wed Nov 30 11:12:02 2016 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options SQL> shutdown immediate ASM diskgroups dismounted ASM instance shutdown
2.編輯ASM例項的initSID.ora檔案增加以下引數:
[oracle@jyrac3 dbs]$ vi init+ASM1.ora ...省略... #ASM AU 16MB _asm_ausize=16777216 #ASM fine grain stripesize 1MB _asm_stripesize=1048576 [oracle@jyrac4 dbs]$ vi init+ASM2.ora ...省略... #ASM AU 16MB _asm_ausize=16777216 #ASM fine grain stripesize 1MB _asm_stripesize=1048576
3.重新ASM例項。為了使用新引數生效ASM例項必須重啟。在設定完隱藏引數並重啟ASM例項,在這之 後建立的磁碟組將使用新的AU大小與細粒度條帶大小。
SQL> col name for a20 SQL> col value for a20 SQL> col describ for a20 SQL> select x.ksppinm NAME,y.ksppstvl value,x.ksppdesc describ 2 from x$ksppi x, x$ksppcv y 3 where x.inst_id=USERENV('Instance') 4 and y.inst_id=USERENV('Instance') 5 and x.indx=y.indx 6 and x.ksppinm='_asm_ausize'; NAME VALUE DESCRIB -------------------- -------------------- -------------------- _asm_ausize 16777216 allocation unit size SQL> select x.ksppinm NAME,y.ksppstvl value,x.ksppdesc describ from x$ksppi x, x$ksppcv y 2 3 where x.inst_id=USERENV('Instance') 4 and y.inst_id=USERENV('Instance') 5 and x.indx=y.indx 6 and x.ksppinm='_asm_stripesize'; NAME VALUE DESCRIB -------------------- -------------------- -------------------- _asm_stripesize 1048576 ASM file stripe size
4.建立磁碟組data_nrml
SQL> create diskgroup data_nrml normal redundancy failgroup fg1 disk '/dev/raw/raw5' failgroup fg2 disk '/dev/raw/raw6'; Diskgroup created.
5.查詢v$asm_diskgroup_stat或v$asm_diskgroup中的allocation_unit_size來驗證磁碟組data_nrml 的AU大小是否為16MB.
SQL> select name, allocation_unit_size from v$asm_diskgroup where name='DATA_NRML'; NAME ALLOCATION_UNIT_SIZE -------------------- -------------------- DATA_NRML 16777216
6.透過查詢v$asm_template檢視來檢視磁碟組data_nrml的ASM檔案模板,為了完成1MB的條帶大小需 要將磁碟組中所要儲存的所有檔案型別的條帶型別設定為FINE
SQL> select * from v$asm_template where group_number=2; GROUP_NUMBER ENTRY_NUMBER REDUNDANCY STRIPE SY NAME ------------ ------------ ------------ ------------ -- -------------------- 2 0 MIRROR COARSE Y PARAMETERFILE 2 1 MIRROR COARSE Y DUMPSET 2 2 HIGH FINE Y CONTROLFILE 2 3 MIRROR COARSE Y ARCHIVELOG 2 4 MIRROR FINE Y ONLINELOG 2 5 MIRROR COARSE Y DATAFILE 2 6 MIRROR COARSE Y TEMPFILE 2 7 MIRROR COARSE Y BACKUPSET 2 8 MIRROR COARSE Y AUTOBACKUP 2 9 MIRROR COARSE Y XTRANSPORT 2 10 MIRROR COARSE Y CHANGETRACKING 2 11 MIRROR FINE Y FLASHBACK 2 12 MIRROR COARSE Y DATAGUARDCONFIG
SQL> declare 2 cursor jl is select * from v$asm_template where group_number=2 and STRIPE='COARSE'; 3 begin 4 for r in jl loop 5 execute immediate 'alter diskgroup data_nrml alter template '||r.name||' attributes (fine)'; 6 end loop; 7 end; 8 / PL/SQL procedure successfully completed.
SQL> select * from v$asm_template where group_number=2; GROUP_NUMBER ENTRY_NUMBER REDUNDANCY STRIPE SY NAME ------------ ------------ ------------ ------------ -- -------------------- 2 0 MIRROR FINE Y PARAMETERFILE 2 1 MIRROR FINE Y DUMPSET 2 2 HIGH FINE Y CONTROLFILE 2 3 MIRROR FINE Y ARCHIVELOG 2 4 MIRROR FINE Y ONLINELOG 2 5 MIRROR FINE Y DATAFILE 2 6 MIRROR FINE Y TEMPFILE 2 7 MIRROR FINE Y BACKUPSET 2 8 MIRROR FINE Y AUTOBACKUP 2 9 MIRROR FINE Y XTRANSPORT 2 10 MIRROR FINE Y CHANGETRACKING 2 11 MIRROR FINE Y FLASHBACK 2 12 MIRROR FINE Y DATAGUARDCONFIG
這種改變的目的是儘管使用大AU設定,仍然保持1MB的檔案區分佈。如果使用預設的coarse條帶,那 麼將使用16MB進行條帶。在Oracle 11g中當使用可變區大小就不需要執行這種改變。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2129453/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-15196 WITH ASM DISKS LARGER THAN 2TB [ID 736891.1]ASM
- ORACLE 10GR2 ASM 如何修改AU_SIZE的大小Oracle 10gASM
- ASM 翻譯系列第一彈:基礎知識 ASM AU,Extents,Mirroring 和 FailgroupsASMAI
- Setting up ASM on linux with LVM (Doc ID 292348.1)ASMLinuxLVM
- oracle 11gR2 asm au_size 大小可以自定義OracleASM
- Multiple Block Sizes (53)BloC
- Specifying Database Block Sizes (91)DatabaseBloC
- set udev for setting disk permiss on ASM when using multipath OL 6.x_1521757.1devASM
- Centering HTML elements larger than their parentsHTML
- sendmail settingAI
- kafka 錯誤: larger than available brokersKafkaAI
- 歐特克AU中國“大師匯”線上會場 - AU China Virtual上線
- SMART Goal SettingGo
- 【Oracle-記憶體管理】-Multiple Block SizesOracle記憶體BloC
- Procedure for Setting Partner FunctionsFunction
- 阿里雲setting阿里
- LeetCode-Max Sum of Rectangle No Larger Than KLeetCode
- SAPGUI for Java Connect settingGUIJava
- Xcode的build settingXCodeUI
- Setting the Database Time Zone (80)Database
- vue2 setting配置Vue
- Changing between 32-bit and 64-bit Word Sizes
- Poster stopped: message is larger than configured max size
- MySQL報錯:Packets larger than max_allowed_packet are not allMySql
- ORA-00845 memory_target needs larger /dev/shmdev
- OGG EXTRACT / REPLICAT CHECKPOINT RBA IS LARGER THAN LOCAL TRAIL SIZEAI
- Audition 2021 for Mac(au 2021)Mac
- “setting.xml” has syntax errorsXMLError
- 【Basis】HANA Database SR Basis SettingDatabase
- configure Django db settingDjango
- Docker proxy setting ubuntu 14.04DockerUbuntu
- Mac address setting For RedhatMacRedhat
- django setting 配置資料庫Django資料庫
- raspberry pi bookworm setting static ipWorm
- ORACLE 記憶體管理 之六 SGA Multiple Block Sizes,Large PoolOracle記憶體BloC
- asm files,asm directories,asm templatesASM
- 452 Error writing file: A file cannot be larger than the value set by ulimit.ErrorMIT
- Setting file visibility under MacOSXMac