本篇內(nèi)容介紹了“ASM磁盤(pán)管理分析”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到宿遷網(wǎng)站設(shè)計(jì)與宿遷網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋宿遷地區(qū)。
1.ASM 磁盤(pán)組
ASM存儲(chǔ)管理除了ASM實(shí)例之外,最大的組成部分就是ASM磁盤(pán)組。一個(gè)ASM磁盤(pán)組由過(guò)多個(gè)ASM磁盤(pán)組成。
一個(gè)磁盤(pán)組內(nèi)可以存放多個(gè)數(shù)據(jù)文件,一個(gè)數(shù)據(jù)文件僅僅只能位于一個(gè)磁盤(pán)組內(nèi),不能跨磁盤(pán)組。
多個(gè)數(shù)據(jù)庫(kù)可以共享相同的或多個(gè)磁盤(pán)組。
磁盤(pán)組的冗余類(lèi)型可以分為三類(lèi):標(biāo)準(zhǔn)冗余,高度冗余,外部冗余。
對(duì)于已創(chuàng)建的磁盤(pán)組,不能夠更改其冗余級(jí)別,如要更改,需要?jiǎng)h除該磁盤(pán)組后再重新創(chuàng)建。
2.ASM 磁盤(pán)
ASM磁盤(pán)通過(guò)標(biāo)準(zhǔn)的OS接口來(lái)訪問(wèn),由Oracle用戶(hù)來(lái)讀寫(xiě),在聚集的所有節(jié)點(diǎn)可以被訪問(wèn)。
ASM磁盤(pán)在不同的節(jié)點(diǎn)可以使用不同的名字。
ASM磁盤(pán)可以使網(wǎng)絡(luò)文件系統(tǒng)。
ASM磁盤(pán)上的對(duì)象被冗余保護(hù)。
每一個(gè)ASM磁盤(pán)的第1塊用于定義磁盤(pán)的頭部信息,ASM磁盤(pán)名字編號(hào),創(chuàng)建的時(shí)間戳等。
ASM文件會(huì)均勻分布在一個(gè)ASM組內(nèi)的各個(gè)磁盤(pán)中。
3.ASM 故障組
一個(gè)磁盤(pán)組可以由兩個(gè)或多個(gè)故障組組成。
一個(gè)故障組由一個(gè)或多個(gè)ASM磁盤(pán)組成。
故障組提供了共享相同資源的冗余,我們可以這樣來(lái)理解標(biāo)準(zhǔn)冗余。
假定有磁盤(pán)組DG1,且創(chuàng)建了兩個(gè)故障組。
fgroup1,fgroup2,每個(gè)故障組由2個(gè)ASM磁盤(pán)組成,則對(duì)標(biāo)準(zhǔn)冗余而言,兩個(gè)故障組互為鏡像。
failgroup1 --> asmdiskA , asmdiskB
failgroup2 --> asmdiskC , asmdiskD
假定文件datafileA大小為4MB,則4個(gè)extent均勻分布到asmdiskA,asmdiskB,同樣asmdiskC,asmdiskD也包含該文件的1至4個(gè)extent。
即只要有一個(gè)extent在故障組fgroup1中存在,必定有一個(gè)鏡像的extent存在于fgroup2中,反之亦然,兩個(gè)extent互為鏡像。
當(dāng)一個(gè)故障組中的某個(gè)磁盤(pán)損壞,假定為asmdiskA ,則asmdiskA中原來(lái)保存的extent將會(huì)從failgroup2中復(fù)制到asmdiskB中。
總之,故障組failgroup1和failgroup2必定有相同的extent副本。
標(biāo)準(zhǔn)冗余至少需要2個(gè)故障組,高度冗余則至少需要3個(gè)故障組。事實(shí)上對(duì)于未明確指定故障組的情況下,一個(gè)標(biāo)準(zhǔn)冗余至少需要2個(gè)
asm磁盤(pán),而高度冗余至少需要3個(gè)asm磁盤(pán)。
4.分配單元
ASM磁盤(pán)的最小粒度是分配單元,大小默認(rèn)是1M,也可設(shè)置為128K進(jìn)行細(xì)粒度訪問(wèn)。
支持粗粒度和細(xì)粒度分配單元進(jìn)行讀寫(xiě)來(lái)實(shí)現(xiàn)裝載平衡和減少延遲。
ASM文件由一些分配單元的集合組成。
5.ASM 文件
對(duì)Oracle自身而言,實(shí)際上與標(biāo)準(zhǔn)的文件并沒(méi)有太多區(qū)別。
ASM文件一般位于磁盤(pán)組內(nèi)創(chuàng)建的子目錄內(nèi),磁盤(pán)組以加號(hào)開(kāi)頭,相當(dāng)于Linux系統(tǒng)的根目錄。
如+DG1/oradb/datafile/system.258.346542
ASM可以為控制文件,數(shù)據(jù)文件,聯(lián)機(jī)日志文件,參數(shù)文件,歸檔日志,備份等。
不支持trace文件,可執(zhí)行文件,OCR,Votingdisk等,注:Oracle 11g R2可支持。
使用extent maps來(lái)記錄文件到磁盤(pán)的映射。
6.I/O分布
可以使用條帶化和鏡像來(lái)保護(hù)數(shù)據(jù)。
文件被平均分布在一個(gè)組內(nèi)的所有磁盤(pán)中。
磁盤(pán)的添加與刪除,ASM會(huì)自動(dòng)重新分配AU,因此也不存在碎片的問(wèn)題。
將I/O分配到不同的磁盤(pán)控制器提高了讀寫(xiě)數(shù)據(jù)。
7.Rebalance
ASM 文件被均衡地分布在一個(gè)磁盤(pán)組的所有磁盤(pán)中。
磁盤(pán)添加時(shí),當(dāng)前磁盤(pán)組加載的所有磁盤(pán)中共享的部分extent將會(huì)被移植到新的磁盤(pán)中,直到重新分布完成才正常提供I/O均衡。
磁盤(pán)刪除或故障時(shí),刪除磁盤(pán)或故障磁盤(pán)的extent將會(huì)被均勻的分布到剩余的磁盤(pán)中。
未使用force關(guān)鍵字drop磁盤(pán)操作,該磁盤(pán)上所有數(shù)據(jù)rebalance完畢后才被釋放.即完畢后磁盤(pán)脫機(jī),置磁盤(pán)頭部狀態(tài)為former。
總之,任意存儲(chǔ)性質(zhì)改變(磁盤(pán)增加,刪除,故障)都將導(dǎo)致rebalance,且由asm自動(dòng)完成,無(wú)需人工干預(yù),在一個(gè)時(shí)間段通常會(huì)鎖定一個(gè)盤(pán)區(qū)。
8.ASM磁盤(pán)組的管理
通常建議創(chuàng)建兩個(gè)磁盤(pán)組,一個(gè)用于保存數(shù)據(jù)文件,一個(gè)用于保存閃回,備份恢復(fù)使用。
Flash Recovery Area 的大小取決于閃回內(nèi)容需要保留的時(shí)間長(zhǎng)短。
盡可能將數(shù)據(jù)區(qū)與閃回區(qū)使用不同的物理通道。
盡可能一次性mount所有需要用到的磁盤(pán)。
建議使用性能,磁盤(pán)大小相近的磁盤(pán)。假定兩個(gè)故障組FG1,F(xiàn)G2各使用一塊磁盤(pán),則FG1內(nèi)的磁盤(pán)應(yīng)保持與FG2內(nèi)的磁盤(pán)大小相同,否則會(huì)以最小的磁盤(pán)空間作為可使用空間。
9.ASM磁盤(pán)組的管理方式
SQLPlus
OEM
DBCA
ASMCMD
ASM磁盤(pán)創(chuàng)建及管理
-----------------------------------------------------------------------------------------------------------------
1.查看ASM配置磁盤(pán)搜索信息
SQL> show parameter instance_type
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_type string ASM
SQL> show parameter asm_diskst
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring string /dev/oracleasm/disks/VOL*
2.使用oracleasm創(chuàng)建磁盤(pán)
[root@zhouwanchun ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdd1
Marking disk "VOL1" as an ASM disk: [ OK ]
[root@zhouwanchun ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdd2
Marking disk "VOL2" as an ASM disk: [ OK ]
[root@zhouwanchun ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sde1
Marking disk "VOL3" as an ASM disk: [ OK ]
[root@zhouwanchun ~]# /etc/init.d/oracleasm createdisk VOL4 /dev/sde2
Marking disk "VOL4" as an ASM disk: [ OK ]
[root@zhouwanchun ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
3.創(chuàng)建磁盤(pán)組語(yǔ)法
CREATE DISKGROUP diskgroup_name
[ { HIGH | NORMAL | EXTERNAL } REDUNDANCY ]
[ FAILGROUP failgroup_name ]
DISK [ NAME disk_name ] [ SIZE size_clause ] [ FORCE | NOFORCE ] ...;
4.創(chuàng)建磁盤(pán)組
SQL> create diskgroup DG1 normal redundancy disk '/dev/oracleasm/disks/VOL1' name VOL1;
create diskgroup DG1 normal redundancy disk '/dev/oracleasm/disks/VOL1' name VOL1
*
ERROR at line 1:
ORA-15018: diskgroup cannot be created --標(biāo)準(zhǔn)冗余至少需要兩塊磁盤(pán)
ORA-15072: command requires at least 2 failure groups, discovered only 1
SQL> create diskgroup DG1 normal redundancy
2 disk '/dev/oracleasm/disks/VOL1' name DG1_VOL1 ,'/dev/oracleasm/disks/VOL2' name DG1_VOL2;
SQL> create diskgroup DG2 normal redundancy --使用標(biāo)準(zhǔn)冗余創(chuàng)建磁盤(pán)組DG2
2 failgroup FG1 disk '/dev/oracleasm/disks/VOL3' name DG2_FG1_VOL3
3 failgroup FG2 disk '/dev/oracleasm/disks/VOL4' name DG2_FG2_VOL4;
SQL> create diskgroup DG_ext external redundancy disk '/dev/oracleasm/disks/VOL10' name DG_ext_VOL10; --外部冗余
SQL> select group_number gno,name,state,type,total_mb,free_mb, --查看創(chuàng)建的磁盤(pán)組
2 required_mirror_free_mb rmfmb,usable_file_mb ufmb
3 from v$asm_diskgroup;
GNO NAME STATE TYPE TOTAL_MB FREE_MB RMFMB UFMB
---------- --------------- ----------- ------ ---------- ---------- ---------- ----------
1 DG1 MOUNTED NORMAL 3066 2964 0 1482
2 DG2 MOUNTED NORMAL 3066 2964 0 1482
3 DG_EXT MOUNTED EXTERN 100 50 0 50
SQL> select group_number gno,name,failgroup fgno,state,total_mb,free_mb,header_status from v$asm_disk;
GNO NAME FGNO STATE TOTAL_MB FREE_MB HEADER_STATU
---------- --------------- --------------- -------- ---------- ---------- ------------
2 DG2_FG2_VOL4 FG2 NORMAL 1537 1486 MEMBER
2 DG2_FG1_VOL3 FG1 NORMAL 1529 1478 MEMBER
1 DG1_VOL2 DG1_VOL2 NORMAL 1537 1486 MEMBER
1 DG1_VOL1 DG1_VOL1 NORMAL 1529 1478 MEMBER
3 DG_EXT_VOL10 DG_EXT_VOL10 NORMAL 100 50 MEMBER
5.磁盤(pán)組添加故障組和成員
--為非故障組添加成員
SQL> alter diskgroup DG1 add disk '/dev/oracleasm/disks/VOL5' name DG1_VOL5;
--為DG2添加一個(gè)故障組FG3及成員
SQL> alter diskgroup DG2
2 add failgroup FG3 disk '/dev/oracleasm/disks/VOL6' name DG2_FG3_VOL6; --添加故障組及成員
--為DG2的個(gè)故障組各添加一個(gè)成員
SQL> alter diskgroup DG2
2 add failgroup FG1 disk '/dev/oracleasm/disks/VOL7'
3 add failgroup FG2 disk '/dev/oracleasm/disks/VOL8'
4 add failgroup FG3 disk '/dev/oracleasm/disks/VOL9';
6.刪除磁盤(pán)組中的磁盤(pán),故障組中的成員,磁盤(pán)組
SQL> alter diskgroup DG1 drop disk DG1_VOL5; --刪除磁盤(pán)組DG1中的磁盤(pán)VOL5
SQL> alter diskgroup DG2 drop disk DG2_0003; --刪除故障組中的單個(gè)成員
SQL> alter diskgroup DG2 drop disks in failgroup FG3; --刪除故障組及所有成員,注意此時(shí)為drop disks 復(fù)數(shù)形式
SQL> alter diskgroup DG1 drop disk DG1_VOL4 --刪除磁盤(pán)組中的磁盤(pán),同時(shí)添加故障組FG3
add failgroup FG3 disk '/dev/oracleasm/disks/VOL9' name DG1_VOL11;
SQL> drop diskgroup DG1; --刪除磁盤(pán)組
7.調(diào)整磁盤(pán)組的容量
----故障組FG3的容量將被調(diào)整到G,如果磁盤(pán)空間不足,則調(diào)整失敗
SQL> alter diskgroup DG2 resize disks in failgroup FG3 size 10G;
8.手動(dòng)Rebalance
SQL> alter diskgroup DG2 rebalance power 3 wait;
9.磁盤(pán)組的加載與卸載及內(nèi)部一致性檢查
SQL> alter diskgroup all dismount;
SQL> alter diskgroup DG2 mount;
SQL> alter diskgroup DG2 check all;
10.查看磁盤(pán)組的partner
SQL> select name,state,type from v$asm_diskgroup where group_number=3; --查看磁盤(pán)組DG3的信息
NAME STATE TYPE
--------------- ----------- ------
DG3 MOUNTED NORMAL
SQL> select grp,disk,number_kfdpartner from x$kfdpartner where grp=3;
GRP DISK NUMBER_KFDPARTNER
---------- ---------- -----------------
3 0 1 --磁盤(pán)組DG3使用了3個(gè)磁盤(pán),且冗余度為標(biāo)準(zhǔn)冗余
3 0 2 --磁盤(pán)組0的partner 為磁盤(pán)組1,2
3 1 0 --磁盤(pán)組1的partner 為磁盤(pán)組0,2
3 1 2
3 2 0 --磁盤(pán)組2的partner 為磁盤(pán)組0,1
3 2 1
ASM磁盤(pán)組中目錄、文件的管理
-------------------------------------------------------------------------------------------------------------------------------
1.為磁盤(pán)組增加目錄
SQL> alter diskgroup DG2 add directory '+DG2/datafile';
--為磁盤(pán)組增加目錄
SQL> alter diskgroup DG2 rename directory '+DG2/datafile' to '+DG2/dtfile'; --重命名目錄
SQL> alter diskgroup DG2 drop directory '+DG2/dtfile'; --刪除目錄
SQL> alter diskgroup DG2 add directory '+DG2/asmdb/datafile'; --為磁盤(pán)組增加目錄
alter diskgroup DG2 add directory '+DG2/asmdb/datafile'
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15173: entry 'asmdb' does not exist in directory '/ '--收到錯(cuò)誤提示,asmdb目錄不存在,必須要先創(chuàng)建
SQL> alter diskgroup DG2 add directory '+DG2/asmdb/'; --首先添加asmdb
SQL> alter diskgroup DG2 add directory '+DG2/asmdb/datafile'; --再次添加目錄成功
2.為文件添加別名,重命名別名
SQL> alter diskgroup DG1 add alias '+DG1/asmdb/datafile/users.dbf' --添加別名
2 for '+DG1/asmdb/datafile/users.263.734885485' ;
SQL> select name,group_number,file_number,alias_index,alias_directory,system_created
2 from v$asm_alias where file_number=263;
NAME GROUP_NUMBER FILE_NUMBER ALIAS_INDEX A S
------------------------- ------------ ----------- ----------- - -
USERS.263.734885485 1 263 215 N Y
users.dbf 1 263 216 N N
SQL> alter diskgroup DG1 rename alias '+DG1/asmdb/datafile/users.dbf' --重命名一個(gè)別名
2 to '+DG1/asmdb/datafile/users01.dbf';
SQL> select name,group_number,file_number,alias_index,alias_directory,system_created
2 from v$asm_alias where file_number=263;
NAME GROUP_NUMBER FILE_NUMBER ALIAS_INDEX A S
------------------------- ------------ ----------- ----------- - -
USERS.263.734885485 1 263 215 N Y
users01.dbf 1 263 216 N N
3.為文件刪除別名
SQL> alter diskgroup DG1 drop alias '+DG1/asmdb/datafile/users01.dbf';
ASM磁盤(pán)組,TEMPLATE的管理
---------------------------------------------------------------------------------------------------
TEMPLATE是一個(gè)模板,為數(shù)據(jù)庫(kù)中新增的文件定義了缺省分配單元大小,以及冗余級(jí)別。對(duì)于不同類(lèi)型的文件,使用了不同的AUs以及不同的冗余度。如對(duì)控制文件采用高度冗余,條帶使用精細(xì)化條帶(128kb),而參數(shù)文件,數(shù)據(jù)文件則采用標(biāo)準(zhǔn)冗余,粗級(jí)別條帶(1MB)。這個(gè)特性正是Oracle asm 管理不同于外部冗余的特性,即可以基于文件的不同屬性而使用不同級(jí)別的冗余度和不同大小的條帶化分配單元。當(dāng)然,我們可以根據(jù)不同的需求來(lái)修改該模板,使得創(chuàng)建新的文件時(shí)根據(jù)需要來(lái)應(yīng)用其冗余和條帶花特性。系統(tǒng)管理人員能改變系統(tǒng)缺省template, 但不能刪除該刪除,管理員能增加自己的template,然后在該模板上創(chuàng)建數(shù)據(jù)文件。
1.缺省的條帶化及其冗余級(jí)別
SQL> select * from v$asm_template where group_number=1;
GROUP_NUMBER ENTRY_NUMBER REDUND STRIPE S NAME
------------ ------------ ------ ------ - -----------------------------------
1 0 MIRROR COARSE Y PARAMETERFILE
1 1 MIRROR COARSE Y DUMPSET
1 2 HIGH FINE Y CONTROLFILE
1 3 MIRROR COARSE Y ARCHIVELOG
1 4 MIRROR FINE Y ONLINELOG
1 5 MIRROR COARSE Y DATAFILE
1 6 MIRROR COARSE Y TEMPFILE
1 7 MIRROR COARSE Y BACKUPSET
1 8 MIRROR COARSE Y AUTOBACKUP
1 9 MIRROR COARSE Y XTRANSPORT
1 10 MIRROR COARSE Y CHANGETRACKING
1 11 MIRROR FINE Y FLASHBACK
1 12 MIRROR COARSE Y DATAGUARDCONFIG
2.創(chuàng)建TEMPLATE的語(yǔ)法
ALTER DISKGROUP disk_group_name ADD TEMPLATE template_name
ATTRIBUTES ([{MIRROR|HIGH|UNPROTECTED}] [{FINE|COARSE}]);
3.添加TEMPLATE
SQL> alter diskgroup DG1 add template template_one attributes (high fine);
SQL> alter diskgroup DG1 add template template_two attributes (unprotected);
4.修改已存在的TEMPLATE
SQL> alter diskgroup DG1 alter template template_one attributes (coarse);
5.刪除TEMPLATE
SQL> alter diskgroup DG1 drop template template_two;
6.基于模板創(chuàng)建數(shù)據(jù)文件
SQL> create tablespace test datafile '+DG1/asmdb/datafile/test.dbf(template_one)' size 10M;
7.查看當(dāng)前系統(tǒng)中文件使用的模板
SQL> select name,redundancy,striped
2 from v$asm_alias a join v$asm_file b
3 on a.file_number=b.file_number
4 and a.group_number=b.group_number
5 order by name;
NAME REDUND STRIPE
----------------------------------- ------ ------
Current.256.734885363 HIGH FINE
SYSAUX.260.736463679 MIRROR COARSE
TBS_RMAN.265.735409761 MIRROR COARSE
TEMP.262.734885475 MIRROR COARSE
SYSTEM.259.734885389 MIRROR COARSE
ASM認(rèn)證與口令文件
---------------------------------------------------------------------------------------------------------------------
1.ASM認(rèn)證
ORACLE ASM 實(shí)例沒(méi)有數(shù)據(jù)字典,所以連接ASM 實(shí)例只能通過(guò)如下三種系統(tǒng)權(quán)限來(lái)進(jìn)行連接: SYSASM,SYSDBA,SYSOPER.
2.連接ASM實(shí)例
1.在操作系統(tǒng)上直接使用OS 認(rèn)證。
2.在操作系統(tǒng)上使用口令文件認(rèn)證。
3.通過(guò)Oracle Net Service遠(yuǎn)程+ 口令文件遠(yuǎn)程連接。
3.ASM口令文件
如何創(chuàng)建ASM 實(shí)例的口令文件?
若使用ASMCA 來(lái)創(chuàng)建的ASM 實(shí)例,那么會(huì)創(chuàng)建口令文件,口令文件默認(rèn)的用戶(hù)是SYS和ASMSNMP。
如果要添加其他用戶(hù)到口令文件中,就需要使用create user 和 grant命令來(lái)添加。
若不是使用ASMCA來(lái)創(chuàng)建的,就需要手工的創(chuàng)建口令文件,并對(duì)SYS用戶(hù)賦予SYSASM 的權(quán)限。
ASM 口令文件創(chuàng)建和oracle 實(shí)例一樣:
$ orapwd file=$ORACLE_HOME/dbs/orapw+ASM password=oracle
“ASM磁盤(pán)管理分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!