第二章 ASM INSTANCE
ASM實例類型:
10g以後ORACLE instance 類型增加了一種ASM類型,參數INSTANCE_TYPE=ASM進行設置。
ASM實例啟動命令:
startup nomount啟動實例和後台進程,但沒有掛載磁盤組
mount以後,實例會啟動參數文件中ASM_DISKGROUPS指定的磁盤組,如果參數為空就會觸發ORA-15110報錯信息。
ASM 11G以後為mount命令引入了restricted啟動參數,以排他方式啟動ASM_DISKGROUPS指定的磁盤組,
限制RDBMS訪問磁盤組,restricted命令在維護磁盤組或rebalance時特別有用。
注意:resticted可以以磁盤組級別掛載磁盤組,而不是實例級別,好處是提供了細粒度的限制。
如:
alter diskgroup data mount restricted;
select name,state from v$asm_diskgroup;
NAME STATE
---------------------- -------------------
DATA RESTRICTED
後台進程:
ASM後台進程都是以asm_開頭的,就像rdbms是以ora_開頭一樣。
11g asm 後台進程介紹
ARBx These are the slave processes that do the rebalance activity (where x
is a number).
CKPTThe CKPTprocess manages cross-instance calls (in RAC).
DBWR This process manages the SGA buffer cache in the ASM instance.
DBW Rwrites out dirty buffers (changed metadata buffers) from the ASM
buffer cache to disk.
GMON This process is responsible for managing the disk-level activities
(drop/offline) and advancing diskgroup compatibility.
KATE The Konductor or ASM Temporary Errands (KATE) process is used
to process disks online. This process runs in the ASM instance and is started
only when an offlined disk is onlined.
LGWRThe LGWRprocess maintains the ASM Active Change Directory
(ACD) buffers from the ASM instance and flushes ACD change records to
disk.
MARK The Mark Allocation Unit (AU) for Resync Koordinator (MARK)
process coordinates the updates to the Staleness Registry when the disks go
offline. This process runs in the RDBMS instance and is started only when
disks go offline in ASM redundancy diskgroups.
PINGThe PINGprocess measures network latency and has the same
functionality in RDBMS instances.
PMON This manages processes and process death in the ASM instance.
PSP0 This process spawner process is responsible for creating and
managing other Oracle processes.
PZ9x These processes are parallel slave processes (where xis a number),
used in fetching data on behalf of GV$queries.
RBAL This opens all device files as part of discovery and coordinates the
rebalance activity.
SMON This process is the system monitor and also acts as a liaison to the
Cluster Synchronization Services (CSS) process (in Oracle Clusterware) for
node monitoring.
VKTM This process is used to maintain the fast timer and has the same
functionality in the RDBMS instances.
ASM SGA和參數設置
ASM啟動只需要很少的參數,參數文件可以是pfile也可以是spfile
*.instance_type=asm
*.asm_diskgroups=DATA,FLASH
*.processes=100
**** Note that asm_diskstring is site-specific and platform specific
*.asm_diskstring='/dev/rdsk/c3t19d*s4' --注意如果手動添加asm 磁盤組別忘記更新這個參數不然重啟後缺少的盤組無法自動帶起來
*.remote_login_passwordfile='SHARED'
******
**For 11g use only the diagnostics directory.
*.diagnostic_dest='/opt/app/admin/+ASM/diag' --11g的diagnostic_dest取代了10g的bdump,cdump,udump顯然簡介多了
*******
**For 10g use the standard dump locations
*.background_dump_dest='/opt/app/admin/+ASM/bdump'
*.core_dump_dest='/opt/app/admin/+ASM/cdump'
*.user_dump_dest='/opt/app/admin/+ASM/udump'
*******
BACKGROUND_DUMP_DEST,CORE_DUMP_DEST, and USER_DUMP_DEST這三個參數在11g中已經棄用了,ASM實例中不要配置這三個參數了。如果diagnostic_dest沒有配置,默認位置為$ORACLE_BASE/diag
例如下面的目錄結構會被創建:
$ORACLE_BASE/diag/<INSTANCE type>/<DB_UNIQUE_NAME>/<ORACLE_SID>
SQL> SELECT NAME, VALUE FROM V$DIAG_INFO
NAME VALUE
---------- ---------------
Diag Enabled TRUE
ADR Base /u01/app/oracle
ADR Home /u01/app/oracle /diag/asm/+asm/+ASM1
Diag Trace /u01/app/oracle/diag/asm/+asm/+ASM1/trace
Diag Alert /u01/app/oracle/diag/asm/+asm/+ASM1/alert
Diag Incident /u01/app/oracle /diag/asm/+asm/+ASM1/incident
Diag Cdump /u01/app/oracle/diag/asm/+asm/+ASM1/cdump
Health Monitor /u01/app/oracle/diag/asm/+asm/+ASM1/hm
Default Trace File
11g中所有的診斷信息都可以使用adrci來管理。
最佳實踐ASM參數
11g中ASM可以使用AMM特性在init.ora中配置MEMORY_TARGET和MEMORY_MAX_TARGET,與rdbms一樣這兩個參數可以實現內存自動管理。
然而,由於asm內存使用率非常平穩,ORACLE最佳實踐是不設置這兩個參數,默認使用256M,這個配置符合大多數的環境。
譯者注:在生產環境中ASM使用默認參數可能會引發ASM實例級別的4031錯誤,根據MOS文檔建議內存至少分配1G,這與最佳實踐又是矛盾的,
可見ORACLE的最佳實踐不一定靠譜,但可作為參考了。
如果有需要手工調整內存,只需要修改MEMORY_TARGET就可以了
alter system set memeory_target=300M;
當然如果你要禁用AMM可以把MEMROY_target設置為0,但是shared_pool,large_pool,db_cache_size這三個參數就需要配置。
DB_CACHE_SIZE This value determines the size of the buffer cache, which
is used to cache ASM metadata blocks. The DB_CACHE_SIZEis based on
a metadata block size of 4K. This block size is the buffer page size of the
cached metadata and has no bearing or impact on the database block size.
db_cache_size用於緩存metadata block,它是基於metadata block size 及4K,
不受db block size的影響。
SHARED_POOL This is used for standard memory usage (control structures
and so on) to manage the instance. The value is also used to store open file
extent maps.
shared_pool用於存儲管理實例用的數據結構,如果控制結構等,同時也存儲
extent maps等。
LARGE_POOLThe LARGE_POOLvalue is used for large page allocations.
PROCESSES This ASM init.ora parameter limits the number of processes
that can start in ASM instance. You may need to modify this parameter from
its default setting for Oracle Database 10gASM instances. The following
recommendation pertains to Oracle Database 10.1.0.3 through 10.2.xand
will work for RAC and non-RAC systems:
Processes = 25 + (10 + [max number of concurrent database file
creations, and file extend operations possible])*n
PROCESSES配置可以基於如上公式計算。
公式說明:
where n is the number of RDBMS instance (ASM clients) connecting to ASM
The source of concurrent file creations can be any of the following:
Several concurrent CREATE TABLESPACEcommands
Creation of a partitioned table with several tablespace creations
RMAN backup channels
Concurrent archive log file creations
max number of concurrent database file creations:
可以是create tablespace並發數,創建分區表涉及的表空間數,rman備份分配的通道數,並發創建歸檔數
10g中,ASM沒有AMM特性,一般配置如下:
SHARED_POOL_SIZE: 128MB
LARGE_POOL: 12MB
DB_CACHE_SIZE: 64MB
我們可以像管理數據庫一樣使用SQLPLUS管理ASM
如:
SQL>SHOW SGA
但是要注意大多數rdbms的參數不適用與ASM實例,如controlfile_files
當你嘗試設置這個參數時就會收到報錯
ORA-15021: parameter "control_files" is not valid in asm instance
注意參數文件參數:
SQL> SHOW PARAMETER CONTROL
NAME TYPE VALUE
------------------------------ ----------- ------------------------------control_files string /opt/oracle/app/product/10gr2/
dbs/cntrl+ASM.dbf
但是到操作系統中你卻找不到這個參數,這個參數時內部默認值對於
ASM是沒有實際意義的
兩個存儲在$ORACLE_HOME/dbs下的文件:
ab_<ASM SID>.dat 這個文件在asm實力啟動時生成,同時數據庫實例連接ASM實例
時獲取環境信息,如果這個文件被刪除了RDBMS就無法和ASM實例通訊了。
hc_<SID>.dat EM使用這個文件進行實例的監控檢查監控。如果這個文件被移除,健康
檢查結果就會是錯誤的。
ASM .dat 文件不會對ASM造成性能方面的影響,文件中存放的只是連接信息,需要的時候
與ASM實例通信。
注意,有時可能需要設置隱含參數,來協助問題診斷,如:
診斷參數_disable_instance_parms_check(這個參數不需要再11g)