Oracle ASM是一種基于磁盤(pán)的存儲(chǔ)選項(xiàng),它能夠讓管理員更加簡(jiǎn)單地管理數(shù)據(jù)庫(kù)存儲(chǔ)。ASM采用了虛擬化層的概念,將存儲(chǔ)映射為卷組和卷,并且自動(dòng)管理數(shù)據(jù)文件的分散。這篇文章將主要關(guān)注于Oracle ASM的管理和維護(hù)。
首先,讓我們看一下如何創(chuàng)建ASM實(shí)例。Admin創(chuàng)建ASM實(shí)例時(shí)需要指定三個(gè)參數(shù):ASM實(shí)例名、ASM磁盤(pán)組名和監(jiān)聽(tīng)程序的名稱。以下是針對(duì)這些參數(shù)的示例代碼:
[root@rhel7 ~]# export ORACLE_SID=+ASM [root@rhel7 ~]# export ORACLE_HOME=/u01/app/oracle/product/12.1.0/asm_1 [root@rhel7 ~]# $ORACLE_HOME/bin/sqlplus / as sysasm SQL> CREATE SPFILE FROM PFILE=’/u01/app/oracle/product/12.1.0/asm_1/dbs/init+ASM.ora’; SQL> CREATE DISKGROUP dg1 NORMAL REDUNDANCY DISK ‘/dev/sdb’ ,’/dev/sdc’ ,’/dev/sdd’ ATTRIBUTE ‘a(chǎn)u_size’=’4M’;
上述命令創(chuàng)建了一個(gè)名為“dg1”的ASM磁盤(pán)組,其中包含了三個(gè)硬盤(pán)分區(qū)。可以看到,我們還設(shè)置了“au_size”屬性,以表示數(shù)據(jù)塊的大小。
接下來(lái),讓我們看一下如何在使用ASM的數(shù)據(jù)庫(kù)中創(chuàng)建表空間。這里,我們將使用CREATE TABLESPACE語(yǔ)句,但是請(qǐng)注意,我們要指定DATAFILE選項(xiàng),以表示新數(shù)據(jù)庫(kù)的數(shù)據(jù)文件將采用ASM格式:
SQL> CREATE TABLESPACE users 2 EXTENT MANAGEMENT LOCAL 3 UNIFORM SIZE 128K 4 DATAFILE '+dg1' 5 SIZE 200M;
由于我們包含了“+dg1”作為DATAFILE選項(xiàng),所以O(shè)racle將會(huì)自動(dòng)將數(shù)據(jù)文件存儲(chǔ)在ASM的磁盤(pán)組中。
當(dāng)需要管理ASM實(shí)例和托管對(duì)象時(shí),可以使用以下命令執(zhí)行:
SQL> ALTER DISKGROUP dg1 ADD DISK ‘/dev/sde’; SQL> ALTER DISKGROUP dg1 DROP DISK ‘/dev/sdf’; SQL> ALTER DISKGROUP dg1 OFFLINE DISKS IN FAILGROUP fg1; SQL> ALTER DISKGROUP dg1 ONLINE DISKS IN FAILGROUP fg1; SQL> ALTER DISKGROUP dg1 UNDROP DISKS; SQL> ALTER DISKGROUP dg1 REBALANCE POWER 2;
上述示例命令展示了管理ASM磁盤(pán)組中硬盤(pán)的命令。具體來(lái)說(shuō),這些命令使您能夠添加、刪除和重新排列磁盤(pán),禁用和啟用磁盤(pán),甚至可以更改ASM實(shí)例的重新平衡選項(xiàng)。
在管理ASM時(shí),重要的是要確保監(jiān)視系統(tǒng)的磁盤(pán)狀態(tài)。這可以在ASM日志中實(shí)現(xiàn)。以下是一個(gè)查找最近一次ASM日志的示例:
SQL> SELECT * FROM V$ASM_OPERATION;
此命令將顯示有關(guān)ASM中操作執(zhí)行的詳細(xì)信息,這些操作可能包括磁盤(pán)存儲(chǔ)、磁盤(pán)重定位、磁盤(pán)組重命名、還可以指出正在運(yùn)行的操作以及運(yùn)行每個(gè)操作的用戶。
最后,在對(duì)ASM進(jìn)行管理時(shí),請(qǐng)確保始終對(duì)ASM磁盤(pán)組和數(shù)據(jù)庫(kù)進(jìn)行備份,以便在出現(xiàn)故障時(shí)能夠快速回收數(shù)據(jù)。在這里,我們將使用“RMAN備份語(yǔ)句”為例:
run { backup as copy format '/u02/backup/mydb_%d_%U' database; backup format '/u01/backup/mydb_%d_%U' archivelog all delete input; }
上面的示例命令展示了如何備份Oracle ASM磁盤(pán)組和數(shù)據(jù)庫(kù)。需要注意的是按特定目錄格式化文件。
總之,本文展示了如何管理Oracle ASM和用于托管對(duì)象。此外,您還學(xué)到了用于監(jiān)視和備份系統(tǒng)的工具和技術(shù)。