ASM存儲擴容操作其實很簡單,無非就是向DiskGroup(簡稱DG)里添加物理磁盤,增加DG的存儲空間。說來簡單,其實操作過程中有很多小細節要注意,否則,帶來的后果是災難性的。
ASM擴容操作步驟(以AIX操作系統為例):
(1)掃盤
cfgmgr -v 命令執行操作系統掃盤操作,需要在每個節點上都要執行此命令,掃描出機器中新增的物理磁盤。掃描到新的物理磁盤后,執行以下命名:
chdev -l hdiskX -a pv=yes 給新的磁盤一個唯一編號id
(2)查看磁盤配置信息
lscfg -vpl hdiskX 命令來查看hdiskX磁盤的配置信息,確保這塊磁盤是來自於同一塊存儲,以防存儲問題。
(3)查看新磁盤的盤符信息
lsattr -El hdiskX 命令查看hdiskX磁盤的盤符信息。注意需要在每個節點上執行以下命令以修改reserve_policy屬性。
chdev -l hdiskX -a reserve_policy=no_reserve
(4)修改磁盤的權限
想讓ASM識別出新增的物理磁盤,需要將新增的磁盤設備的權限修改為ASM用戶可以訪問的權限才可以。注意需要在每個節點上都要執行以下操作:
切換到/dev路徑下執行以下命令:
chown oracle:dba /dev/rhdiskX --注意這個是rhdisk
chmod 660 /dev/rhdiskX
關於rdiskX與hdiks的區別在於一個是字符設備,一個是塊設備。
(5)向DG里添加磁盤
SQL>Alter diskgroup datadg add disk '/dev/rhdiskX';
(6)查看數據Rebalancing情況
在往ASM的DG中新增物理磁盤時,DiskGroup會在后台自動做reblance操作,將數據均攤到每一塊磁盤上。
1)V$ASM_OPERATION
此視圖可以查看DiskGroup后台Reblance的速度以及好視情況。
2)V$ASM_DISK_STAT
此視圖可以查看磁盤和其使用度量信息,查看磁盤狀態
注意:Reblancing的速度與asm_power_limit參數有關,默認值為1。
官方解釋為:
ASM_POWER_LIMIT specifies the maximum power on an Automatic Storage Management instance for disk rebalancing. The higher the limit, the faster rebalancing will complete. Lower values will take longer, but consume fewer processing and I/O resources.If the POWER clause of a rebalance operation is not specified, then the default power will be the value of ASM_POWER_LIMIT.
修改ASM_POWER_LIMIT方法,其取值范圍為0~11。
(1)ALTER SESSION SET ASM_POWER_LIMIT=2;
(2)ALTER SYSTEM SET ASM_POWER_LIMIT=2;
(7)最關鍵的一步也是最容易出問題的
執行往DG中添加磁盤命令之后,一定要在每個節點上檢查SID_ALERT.log日志,這一步很關鍵,也是最容易出問題的。一般以為,添加磁盤的命令執行成功了,就大功告成了,有時間就是一丁點的粗心大意,就釀造了一場事故。做DBA一定要萬分謹慎並具有縝密的思維。
在ALERT日志中可以看到數據庫的報警信息以及警告信息,如果ALERT日志一切正常,表名之前操作無誤,便可以回家睡覺了。
總結:
DBA需要縝密的思維以及過硬的功底,數據庫良好的備份是基礎。做事要萬分小心,一時的誤操作可能帶來災難性的后果。