oracle11g crs線上更換asm磁碟

datapeng發表於2015-07-21
1、檢查當前的磁碟的情況
--檢查並確定需要替換的crsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576    102398   102308                0          102308              0             N  ARCHDG/
MOUNTED  NORMAL  N         512   4096  1048576     15342    14416             5114            4651              0             Y  CRSDG/
MOUNTED  EXTERN  N         512   4096  1048576    204797    19872                0           19872              0             N  DATADG/
MOUNTED  EXTERN  N         512   4096  1048576    102398   102272                0          102272              0             N  RECODG/
MOUNTED  EXTERN  N         512   4096  1048576     30718    26555                0           26555              0             N  REDO1/
MOUNTED  EXTERN  N         512   4096  1048576     30718    22416                0           22416              0             N  REDODG1/
MOUNTED  EXTERN  N         512   4096  1048576     30718    30623                0           30623              0             N  REDODG2/


在這裡可以看到crsdg,這個dg就是需要我們替換其中的盤的
[oracle@ecc-prddb1 bin]$ ./ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       2912
         Available space (kbytes) :     259208
         ID                       :  151943686
         Device/File Name         :     +CRSDG
                                    Device/File integrity check succeeded


                                    Device/File not configured


                                    Device/File not configured


                                    Device/File not configured


                                    Device/File not configured


         Cluster registry integrity check succeeded


         Logical corruption check bypassed due to non-privileged user
透過這兩步可以確定crsdg就是我需要替換的叢集dg


--確定具體dg具體的盤
SQL> select name,group_number from v$asm_diskgroup;


NAME                           GROUP_NUMBER
------------------------------ ------------
ARCHDG                                    1
CRSDG                                     2
DATADG                                    3
RECODG                                    4
REDO1                                     5
REDODG1                                   6
REDODG2                                   7


PATH
--------------------------------------------------------------------------------
/dev/asm-disk1
/dev/asm-disk3
/dev/asm-disk2


--確定對應的物理盤
此步可以透過udev的配置檔案獲取
[oracle@ecc-prddb1 rules.d]$ more 99-oracle-asmdevices.rules
KERNEL=="sdb1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c29883f322a11c7b78d1cb537fb9",NAME="asm-disk1",OWNER="oracle",GROUP="oinstall",MODE="0660"
KERNEL=="sdc1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c290f7420f49693713ee4a8d8965",NAME="asm-disk2",OWNER="oracle",GROUP="oinstall",MODE="0660"
KERNEL=="sdd1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c298291180106cb2a79963a50dc4",NAME="asm-disk3",OWNER="oracle",GROUP="oinstall",MODE="0660"
作業系統中,可以看盤的情況
[root@ecc-prddb1 ~]# fdisk -l /dev/sdb


Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd5237e4e


   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         652     5237158+  83  Linux
[root@ecc-prddb1 ~]# fdisk -l /dev/sdc


Disk /dev/sdc: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4b723f55


   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         652     5237158+  83  Linux
[root@ecc-prddb1 ~]# fdisk -l /dev/sdd


Disk /dev/sdd: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x123cff91


   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         652     5237158+  83  Linux


每個盤的大小為5g,那麼我們相應的也劃分3個5g的盤進行替換


2、劃分儲存磁碟


--由於是虛擬機器,所劃分的盤的大小、個數與原來的相同
--屬性配置與其它盤完全一致


3、配置asm盤操作


--掃描磁碟並分割槽
echo "- - -" > /sys/class/scsi_host/host0/scan
說明,可能有多個host+數字的情況,我們一次掃描不到,要多次,如下:
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
echo "- - -" > /sys/class/scsi_host/host3/scan
然後使用
[root@ecc-prddb1 ~]# fdisk -l
這樣,如果盤未分割槽,就會在後面顯示出來,我們找到對應的sd*,對其進行分割槽
[root@ecc-prddb1 ~]# fdisk /dev/sd*      根據掃描的結果,檢視*所代表的字母


--獲取磁碟id
[root@ecc-prddb1 ~]# scsi_id -g -u -d /dev/sd*  *代表新加入的盤
記下顯示出來的字串


--編輯udev檔案
vi 99-oracle-asmdevices.rules
KERNEL=="sdb1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c29883f322a11c7b78d1cb537fb9",NAME="asm-disk1",OWNER="oracle",GROUP="oinstall",MODE="0660"


注意要修改的地方:
KERNEL=="sdb1":此處要修改為對應的磁碟及分割槽,如掃描出來的是m,並且只做了一個分割槽,則國sdm1
RESULT=="36000c29883f322a11c7b78d1cb537fb9":上面掃描出來的磁碟id
NAME="asm-disk1":修改為我們命名,如我們上一個是11,為保持一致,我們修改為asm-disk12


修改儲存後,重啟udev即可


4、建立新的crsdg


要以採用圖形介面asmca,或者使用命令也可以
create diskgroup ocrdg normal redundancy disk '/dev/asm-disk12','/dev/asm-disk13','/dev/asm-disk14' attribute 'compatible.asm'='11.2';


建立成功以後,可以在v$asm_diskgroup中看到該dg的名稱和大小


5、替換原來的crsdg
--備份引數檔案
SQL> show parameter spfile;


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +CRSDG/ecc-prddb-scan/asmparam
                                                 eterfile/registry.253.86406398
                                                 1
                                                 
SQL> create pfile='/tmp/spfilebak0716.ora' from spfile;


File created.
這一步一定不少,否則會跟後續的工作帶來很大的麻煩。在11g中,spfile是放在crsdg中的


--建立
[root@ecc-prddb1 bin]# ./ocrconfig -add  +OCRDG    剛才建的dg上面
建立成功後,可以透過以方式檢視
[root@ecc-prddb1 ~]# ./ocrcheck -config
Oracle Cluster Registry configuration is :
         Device/File Name         :      +CRSDG
         Device/File Name         :      +OCRDG
[root@ecc-prddb1 ~]# more /etc/oracle/ocr.loc
#Device/file  getting replaced by device +OCRNEW 
ocrconfig_loc=+CRSDG
ocrmirrorconfig_loc=+OCRDG
local_only=false
注意使用root使用者執行的
         
--替換crsdg
檢查當前crsdg磁碟情況
[oracle@ecc-prddb1 bin]$ ./crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   27d6c944f29b4fe1bfcb1c77b21a104b (/dev/asm-disk2) [CRSDG]
 2. ONLINE   626f61e4d8484f01bf53cc7bcbf12883 (/dev/asm-disk1) [CRSDG]
 3. ONLINE   595747f50d5f4f4abff80ba505a0db12 (/dev/asm-disk3) [CRSDG]
Located 3 voting disk(s).


備份當前crs資訊
ocrconfig -export /tmp/ocr_20150716.dmp    --手動備份
ocrconfig -showbackup                      --自動備份
[oracle@ecc-prddb1 bin]$ ./ocrconfig -showbackup


ecc-prddb1     2015/07/16 07:39:26     /oracle/GRID/112/cdata/ecc-prddb-scan/backup00.ocr


ecc-prddb1     2015/07/16 03:36:58     /oracle/GRID/112/cdata/ecc-prddb-scan/backup01.ocr


ecc-prddb1     2015/07/15 23:33:07     /oracle/GRID/112/cdata/ecc-prddb-scan/backup02.ocr


ecc-prddb1     2015/07/15 23:33:07     /oracle/GRID/112/cdata/ecc-prddb-scan/day.ocr


ecc-prddb1     2015/07/08 16:14:26     /oracle/GRID/112/cdata/ecc-prddb-scan/week.ocr


執行替換
[oracle@ecc-prddb1 bin]$ crsctl replace votedisk +CRSDG


這條命令執行後,有一系列提示,最後會出現以下的提示
CRS-4266: Voting file(s) successfully replaced


完成以後,可以透過
./ocrcheck -config
./crsctl query css votedisk
more /etc/oracle/ocr.loc
進行再次驗證。本次替換主要完成的是映象轉換,可以看到ocrdg為主要的了


建立asm引數檔案
SQL> create spfile = '+OCRDG' FROM pfile='/tmp/spfilebak0716.ora';


6、刪除舊的crsdg


[root@ecc-prddb1 bin]$  ./ocrconfig -delete +CRSDG


最後使用如下命令檢查


./ocrcheck && ./crsctl query css votedisk

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-1742921/,如需轉載,請註明出處,否則將追究法律責任。

相關文章