1、關閉節點1服務,掛載裸設備並創建ASM磁盤,由於是RAC,節點2服務並沒有停止,所以業務能正常運行;
關閉節點1上的CRS服務
查看服務狀態,目前只有節點2正常運行,scanIP與vip遷移至節點2;
裸設備映射,並重啓udev,查看裸設備映射情況;
創建ASM磁盤
查看創建好的ASM磁盤
啓動節點1的CRS服務;
查看CRS運行狀態,此時CRS服務在兩個節點同時運行,
2、使用同節點1同樣的方法在節點2上將裸設備掛載映射並創建ASM磁盤,創建ASM磁盤時,節點2只需要scandisk即可,同樣,操作過程中業務是不會中斷的;
3、通過grid用戶使用asmca命令創建磁盤組,利用CRS1,CRS2,CRS3創建磁盤組CRS,使用normal模式,利用CRS4創建磁盤組CRSTEMP,使用extern模式;(爲什麼要創建CRSTEMP磁盤組下面會說明)
4、遷移OCR磁盤;
通過ocrcheck命令查看ocr磁盤相關信息;
可以發現OCR磁盤存儲位置爲磁盤組+DATA;
也可以通過/etc/oracle/ocr.loc文件查看
確認CRS運行健康;
通過root用戶使用ocrconfig -replace <current filename> -replacement <new filename>的命令遷移OCR磁盤;
(11gR1的命令爲ocrconfig -replace ocr <new filename>)
發現不能進行遷移,查找原因爲OCR磁盤沒有鏡像ocrmirror,因此必須先創建mirror,這裏就用到了CRSTEMP磁盤組;
查看添加mirror後的OCR磁盤狀態,可以發現CRSTEMP磁盤組現已爲ocrmirror;
再次遷移OCR磁盤;
遷移成功,CRS磁盤組已替代DATA磁盤組成爲OCR存儲位置;
5、遷移VOTE磁盤
查看vote磁盤當前狀態,存儲在+DATA磁盤組上;
通過grid用戶使用crsctl replace votedisk <new filename>命令遷移vote磁盤;
遷移成功,查看vote磁盤已有3個路徑;
(11gR1只能採用添加刪除的方式進行遷移,
crsctl delete css votedisk /dev/raw/raw9
crsctl add css votedisk /dev/raw/raw5
當試圖刪除表決磁盤首個存放路徑的時候會收到報錯:
Failure8withClusterSynchronizationServiceswhile deleting voting disk.
添加force選項強制刪除;
crsctl delete css votedisk /dev/raw/raw7 -force)
6、使用ASM的REBALANCE技術來解決在線遷移數據。
查看磁盤組信息;
sqlplus / as sysasm
SQL*Plus: Release 11.2.0.2.0 Production on Fri Mar 14 15:38:19 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> col name for a10
SQL> set line 120
SQL> desc gv$asm_diskgroup;
Name Null? Type
----------------------------------------------------------------- -------- --------------------------------------------
INST_ID NUMBER
GROUP_NUMBER NUMBER
NAME VARCHAR2(30)
SECTOR_SIZE NUMBER
BLOCK_SIZE NUMBER
ALLOCATION_UNIT_SIZE NUMBER
STATE VARCHAR2(11)
TYPE VARCHAR2(6)
TOTAL_MB NUMBER
FREE_MB NUMBER
HOT_USED_MB NUMBER
COLD_USED_MB NUMBER
REQUIRED_MIRROR_FREE_MB NUMBER
USABLE_FILE_MB NUMBER
OFFLINE_DISKS NUMBER
COMPATIBILITY VARCHAR2(60)
DATABASE_COMPATIBILITY VARCHAR2(60)
VOTING_FILES VARCHAR2(1)
SQL> select name,allocation_unit_size,state,total_mb,free_mb from gv$asm_diskgroup;
NAME ALLOCATION_UNIT_SIZE STATE TOTAL_MB FREE_MB
---------- -------------------- ----------- ---------- ----------
DATA 1048576 MOUNTED 51199 48915
CRS 1048576 MOUNTED 3057 2133
CRSTEMP 1048576 MOUNTED 1019 656
DATA 1048576 MOUNTED 51199 48915
CRS 1048576 MOUNTED 3057 2133
CRSTEMP 1048576 MOUNTED 1019 656
6 rows selected.
SQL> select failgroup,name from v$asm_disk where group_number=(select group_number from v$asm_diskgroup where name = 'DATA');
FAILGROUP NAME
------------------------------ ----------
DATA_0000 DATA_0000
往該磁盤組裏添加一個新創建的ASM磁盤,指定REBALANCE的速度
SQL> alter diskgroup DATA add disk '/dev/raw/raw2' name newdata rebalance power 10;
Diskgroup altered.
SQL> select name,allocation_unit_size,state,total_mb,free_mb from gv$asm_diskgroup;
NAME ALLOCATION_UNIT_SIZE STATE TOTAL_MB FREE_MB
---------- -------------------- ----------- ---------- ----------
CRSTEMP 1048576 MOUNTED 1019 656
CRS 1048576 MOUNTED 3057 2133
DATA 1048576 MOUNTED 102398 100112
CRSTEMP 1048576 MOUNTED 1019 656
CRS 1048576 MOUNTED 3057 2133
DATA 1048576 MOUNTED 102398 100112
6 rows selected.
SQL> select failgroup,name,path from v$asm_disk where group_number=(select group_number from v$asm_diskgroup where name = 'DATA');
FAILGROUP NAME
------------------------------ ----------
NEWDATA NEWDATA
DATA_0000 DATA_0000
發現磁盤組DATA容量改變;
REBALANCE過程可以通過v$asm_operation視圖來查看:
SQL>set line 150
SQL> col ERROR_CODE for a5
SQL>select*from v$asm_operation;
REBALANCE完成後記錄將消失;
刪除舊的ASM磁盤;
QL> select failgroup,name,path from v$asm_disk where group_number=(select group_number from v$asm_diskgroup where name = 'DATA');
FAILGROUP NAME PATH
-------------------- -------------------- --------------------
NEWDATA NEWDATA /dev/raw/raw2
DATA_0000 DATA_0000 /dev/raw/raw1
SQL> alter diskgroup DATA drop disk DATA_0000 rebalance power 5;
Diskgroup altered.
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------
ERROR_CODE
--------------------------------------------
3 REBAL RUN 5 5 660 1148 2664 0
SQL> select * from v$asm_operation;
no rows selected
這樣數據全部遷移至新存儲;
7、同樣使用滾動方式卸載舊磁盤,停止節點1服務,刪除ASM磁盤及裸設備映射,啓動節點1的CRS服務,停止節點2服務,scan ASM磁盤,刪除裸設備映射,啓動節點2服務。