記一次生產資料庫二次擴容:Rac+ASM磁碟組擴容-Aix系統

2019-11-24   波波說運維

概述

分享下最近對資料庫擴容的大致過程,僅供參考。


1、 擴容前準備

1.1. 提供設備清單

將設備的大小和個數給系統和存儲工程師,要求在節點上增加新的磁碟,其中 RAC 需要共享磁碟。

1.2. 對資料庫進行備份

因為每晚都有做備份,所以這裡做個檢查就可以了

rman target /
backup full database;

1.3. 檢查備份及可恢復性

rman target / 
list backup summary;  --概述可用的備份

說明:B表示backup,F表示FULL,A表示archive log,0 1表示incremental backup,S說明備份狀態(A AVAILABLE   X EXPIRED )


1.4. 備份ASM磁碟頭(兩個節點的grid用戶)

當前系統所有 asm 已使用的 pv 磁碟頭均需進行備份

kfed read /dev/rhdisk1 >/home/grid/rhdisk1bak.txt 
kfed read /dev/rhdisk4 >/home/grid/rhdisk4bak.txt
kfed read /dev/rhdisk6 >/home/grid/rhdisk6bak.txt
kfed read /dev/rhdisk8 >/home/grid/rhdisk8bak.txt
kfed read /dev/rhdisk10 >/home/grid/rhdisk10bak.txt
kfed read /dev/rhdisk11 >/home/grid/rhdisk11bak.txt
kfed read /dev/rhdisk12 >/home/grid/rhdisk12bak.txt

2、 新設備調整(兩個節點的root用戶)

2.1 主機掃描新劃的磁碟

cfgmgr
--確認新盤
lspv

2.2. 權限調整(兩個節點的root用戶)

 chmod 660 /dev/rhdisk13chown grid:dba /dev/rhdisk13ls -l /dev/rhdisk*

注意節點 2 也需要調整確認

2.3. 確認沒有PVID(兩個節點的root)

 # lspv |grep hdisk--都是NONE就對了

說明:PVID 全稱 physical volume identifier,它非常重要,相當於軟序列號,當把一個磁碟變成 PV 時, 就生成了 PVID , PVID 是由機器序列號 (uname -m的前

8位 ) 和它生成的時間組成,這種機制保證了 PVID 的唯一性。當系統啟動時,磁碟配置程序會尋找磁 盤上的 PVID ,並把它跟 ODM 庫中的 PVID 信息進行比對,如果在 ODM 中找到匹配的條目,則把和這個 PVID 相對應的 hdisk 號賦予這個 PV ,如果沒有匹配 的條目,則賦予這個 PVID 新的 hdisk 號。

--如果存在 pvid ,需要清空(一定要慎重執行)
/usr/sbin/chdev -l hdisk -a pv=clear

2.3. 調整RESERVE_POLICY(兩個節點的root執行)

如果是為 RAC 資料庫添加新磁碟,還需要調整新磁碟的 reserve_policy 應為 no_reserve 或者 reserve_lock 應為no

lsattr -El hdisk13 | grep -E "reserve_policy|reserve_lock"
chdev -l hdisk13 -a reserve_policy=no_reserve
lsattr -El hdisk13 | grep -E "reserve_policy|reserve_lock"


3、 擴容

3.1. 擴容前ASM檢查(其中一個節點的grid用戶)

$sqlplus / as sysasm
set linesize 1000 pagesize 1000
col state for a20
col path for a50
col name for a30
select path,name,state from v$asm_disk where path like '/dev/rhdisk%' order by 1;
--冗餘級別為EXTERNAL
select NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;

PS:三種冗餘方式

1) 外部冗餘(external redundancy):

表示Oracle不幫你管理鏡像,功能由外部存儲系統實現,比如通過RAID技術;有效磁碟空間是所有磁碟設備空間的大小之和。

2) 默認冗餘(normal redundancy):

表示Oracle提供2份鏡像來保護數據(鏡像數據一次),有效磁碟空間是所有磁碟設備大小之和的1/2 (使用最多)。

3) 高度冗餘(high redundancy):

表示Oracle提供3份鏡像來保護數據(鏡像數據兩次),以提高性能和數據的安全,最少需要三塊磁碟(三個failure group);

有效磁碟空間是所有磁碟設備大小之和的1/3,雖然冗餘級別高了,但是硬體的代價也最高。

3.2. 加入新磁碟到磁碟組(其中一個節點的grid用戶)

sqlplus / as sysasm
alter diskgroup DATA add disk '/dev/rhdisk13' rebalance power 8;
--其中 power n 區間[0,11],n 越大 REBAL 越快,IO 壓力也就越大。
--如果磁碟組是 NOMAL 冗餘需要指定 FAILGROUP,如:
--alter diskgroup dgname add failgroup fgname1 disk '/dev/rhdiskpower453』 add failgroup fgname2 disk
'/dev/rhdiskpower454' [ rebalance power n] ;

3.3、監控REBAL進度

sqlplus / as sysasm
set linesize 1000
col OPERATION format a15
col state for a15
--無記錄表示 REBAL 完成
SQL> select * from gv$asm_operation;

3.4、監控告警日誌

tail -200f alert_otmdb1.log


4、 擴容後檢查

4.1. 擴容後ASM檢查

SQL> select NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
SQL> select path,name,state from v$asm_disk where path like '/dev/rhdisk%' order by 1;

4.2. 備份新增加的設備

kfed read /dev/rhdisk13 >/home/grid/rhdisk13bak.txt


4.3、檢查監聽(兩個節點)


到這裡我們就完成了資料庫的擴容了,覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~