一、基本資料及概念
1、ASM是ORACLE公司的自動儲存管理軟體。它使用裸裝置和ASM磁碟。在使用該軟體之前需要安全相應平台的ASM庫驅動程式。
2、ASM將多塊磁碟組合起來形成一個磁碟組,磁碟組具有裸裝置的讀寫效能和檔案系統的管理效能,是集二者優點的存在。
3、ASM磁碟組由多塊磁碟組成,每塊磁碟由多個AUallocate unit:配置單位)組成,每個AU大小為1MB。
4、ASM磁碟組實現了資料容錯的功能,其包含三種冗餘層級:
外部冗餘EXTERNAL REDUNDANCY) :同一個AU在ASM磁碟組裡沒有有副本
標準冗餘NORMAL REDUNDANCY) :同一個AU在ASM磁碟組裡有一個副本
高冗餘HIGH REDUNDANCY):同一個AU在ASM磁碟組裡有兩個副本
5、ASM為了實現磁碟組的容錯,提出了故障組FAIL GROUP)的概念。且規定,同一個AU的副本永遠不能放在同一個故障組裡。
6、ASM磁碟組具有資料重平衡的功能。所謂重平衡的本質是:讓組內所有磁碟資料均勻,以實現I/O負載的均衡。
重平衡的工作原理:
當加入一塊磁碟時,ASM從磁碟組內已有的各塊磁碟上讀出部分AU寫入到新加入的磁碟中。以實現各盤資料量均衡。
當刪除一塊磁碟時,ASM從即將刪除的磁碟上讀出所有的AU,然後平均寫入到組內其它的磁碟上。以實現各盤資料量均衡。
二、執行個體
1、ASM執行個體和資料庫執行個體一樣,同樣有自己的參數檔案,它們的功能是相同的。
2、ASM執行個體只用兩個狀態:nomount、mount
3、ASM執行個體的啟動和資料庫的啟動一樣。 例如:startup nomount|mount
4、ASM執行個體的關閉和資料庫的關閉一樣。 例如:shutdown immediate|normal|transactional|abort
5、ASM執行個體的服務:
ASM執行個體有一個服務,名叫組服務group service),它將ASM執行個體能管理的全部磁碟組註冊到自己的管理資訊表裡。該表裡包還磁碟組的名稱以及如何訪問磁碟組的資訊。他的服務物件是資料庫的前台進程ASMB.進程ASMB只有在資料庫與ASM執行個體通訊時才產生。
6、ASM執行個體的功能:用於維護ASM磁碟組。包括:磁碟組的建立,刪除,修改。
7、ASM執行個體的操作:
$sqlplus /nolog
sql>connect / as sysdba #串連執行個體
sql>startup nomount #將執行個體啟動到NOMOUNT狀態,
sql>startup mount #將執行個體啟動到MOUNT狀態
sql>shutdown immediate #關閉執行個體
備忘:如果ASM執行個體處於NOMOUNT狀態,欲將其提升為MOUNT狀態,則應使用如下命令:
alter diskgroup diskgroup_name mount;
三、ASM執行個體的參數檔案
1、ASM執行個體的參數檔案的作用是用於建立ASM執行個體的記憶體結構和啟動ASM執行個體的後台進程。
2、ASM執行個體初始化參數的含義和資料庫初始化參數的含義相同。
如:user_dump_dest,
background_dump_dest
core_dump_dest
remote_login_passwordfile
3、重要參數的說明:
instance_type='asm' #ASM執行個體的設定值
instance_type='rdbms' #資料庫執行個體的設定值
asm_diskgroups='dgdata1,dgdata2' #指的是ASM啟動時預設掛載那些磁碟組。
如果沒有設定該值,則啟動ASM到MOUNT時會報沒有磁碟組被掛載的錯誤。
asm_diskstring='/dev/raw/raw*' #指的是ASM執行個體在哪裡以什麼樣的格式
搜尋磁碟。切記不是路徑,是搜尋模式。
asm_power_limit=[0 11] #表示重平衡的速度和輸送量,1最小,對使用者影
響最小。反之亦然。0表示關閉重平衡。
4、ASM執行個體的後台進程:
1)GMONglobal monitor):用於監控維護磁碟組的中繼資料操作。
2)RBAL:用於協調磁碟組內各磁碟的重平衡操作。負責產生重平衡計劃。
3)ARBx:負責實際的重平衡操作。
5、一個特殊的進程:
ASMB:負責資料庫執行個體與ASM執行個體通訊,它從GSgroup service)讀取資訊。只有在數
據庫執行個體與ASM執行個體通訊時才產生。屬於資料庫進程。
四、ASM執行個體的相關視圖說明:
1、使用初始化參數asm_diskstring】的時機:
1)建立磁碟組
2)向磁碟組中追加磁碟
3)訪問v$asm_disk
4)訪問v$asm_diskgroup
以上四種情況,ASM會根據初始化asm_diskstring】指定的磁碟字串搜尋所有可用的磁碟。注意:是磁碟字串,不是磁碟路徑。如:/dev/oracleasm/disks/DISK* 。
為了避免頻繁的搜尋磁碟,可以查詢檢視:v$asm_disk_stat,v$asm_diskgroup_stat .
2、視圖關係:
視圖:v$asm_disk與v$asm_disk_stat中的欄位相同,含義相同,只是前者搜尋磁碟,後者不搜尋。
視圖:v$asm_diskgroup與v$asm_diskgroup_stat中的欄位相同,含義相同,只是前者搜尋磁碟,後者不搜尋。
五、初始化參數asm_diskstring)使用說明
1、作用:指定asm磁碟的搜尋模式
2、定義:alter system set asm_diskstring='/dev/oracleasm/disk/DISK*' scope=spfile;
適用於ASM磁碟)
or
alter system set asm_diskstring='ORCL:DISK*' scope=spfile; 適用於ASM磁碟)
or
alter system set asm_diskstring='/dev/raw/raw*' scope=spfile; 適用於裸裝置)
3、註解:
在這裡該參數的值不能指定為磁碟的搜尋路徑,而且嚴格區分大小寫。
例如:裸裝置在/dev/raw/目錄下,則不能將asm_diskstring='/dev/raw/',應該設定為asm_diskstring='/dev/raw/raw*',否則ASM找不到磁碟。
4、執行個體操作:
第一組:
改變前
SQL> alter system set asm_diskstring='ORCL:DISK*' scope=spfile;
SQL> shutdown immediate
SQL> startup nomount
SQL> select group_number,disk_number,name,path,total_mb from v$asm_disk;
GROUP_NUMBER DISK_NUMBER NAME PATH TOTAL_MB
------------ ------------ -------- ---------------------- ----------
0 0 ORCL:DISK1 8189
0 3 ORCL:DISK4 8189
0 2 ORCL:DISK3 8189
0 1 ORCL:DISK2 8189
改變後:
SQL> alter system set asm_diskstring='orcl:disk*' scope=spfile;
SQL> shutdown immediate
SQL> startup nomount
SQL> select name,path from v$asm_disk;
no rows selected
第二組:
改變前:
SQL> alter system set asm_diskstring='/dev/oracleasm/disks/DISK*' scope=spfile;
SQL> shutdown immediate
SQL> startup nomount
SQL> select group_number,disk_number,name,path,total_mb from v$asm_disk;
GROUP_NUMBER DISK_NUMBER NAME PATH TOTAL_MB
------------ ----------- ------ ------------------ ----------
0 0 /dev/oracleasm/disks/DISK4 8189
0 3 /dev/oracleasm/disks/DISK1 8189
0 2 /dev/oracleasm/disks/DISK2 8189
0 1 /dev/oracleasm/disks/DISK3 8189
改變後:
SQL> alter system set asm_diskstring='/dev/oracleasm/disks/disk*' scope=spfile;
SQL> startup nomount
SQL> select group_number,disk_number,name,path,total_mb from v$asm_disk;
no rows selected
oracle視頻教程請關注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html