OracleRACStudy之–10gR2RAC環境中線上新增、刪除Votedisk和線上替換OCR的探討

餘二五發表於2017-11-15

      這裡我們不討論11gR2 RAC線上新增、刪除Votedisk和OCR,在11gR2平臺可以非常容易的實現。這裡也不討論Votedisk和OCR的還原,還原操作必須在停止Clusterware的情況下完成。下面以實際的例子討論10gR2 RAC for Linux環境下,Votedisk和OCR的線上新增和刪除。
一.Votedisk的線上新增和刪除。
1).檢視叢集資源的狀態:

[root@rhel1 bin]# ./crs_stat -t

1
2
3
4
5
6
7
8
9
10
Name           Type           Target    State     Host
------------------------------------------------------------
ora....L1.lsnr application    ONLINE    ONLINE    rhel1
ora.rhel1.gsd  application    ONLINE    ONLINE    rhel1
ora.rhel1.ons  application    ONLINE    ONLINE    rhel1
ora.rhel1.vip  application    ONLINE    ONLINE    rhel1
ora....L2.lsnr application    ONLINE    ONLINE    rhel2
ora.rhel2.gsd  application    ONLINE    ONLINE    rhel2
ora.rhel2.ons  application    ONLINE    ONLINE    rhel2
ora.rhel2.vip  application    ONLINE    ONLINE    rhel2

2).檢視當前votedisk位置及檔名:
[root@rhel1 bin]# ./crsctl query css votedisk

1
2
3
4
 0.     0    /u02/vdisk/vdisk1
 1.     0    /u02/vdisk/vdisk2
 2.     0    /u02/vdisk/vdisk3
located 3 votedisk(s).

3).檢視ocssd程式號:

[root@rhel1 bin]# ps -e | grep -i ocssd

 5942 ?        00:00:21 ocssd.bin

4).檢視ocssd程式定位的votedisk檔案:
[root@rhel1 bin]# cd /proc/5942/fd/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@rhel1 fd]# ll
total 0
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 0 -> /dev/null
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 1 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 10 -> socket:[13927]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 11 -> /u02/vdisk/vdisk1
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 12 -> /u02/vdisk/vdisk1
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 13 -> /u02/vdisk/vdisk2
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 14 -> /u02/vdisk/vdisk2
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 15 -> /u02/vdisk/vdisk3
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 16 -> /u02/vdisk/vdisk3
l-wx------ 1 oracle oinstall 64 Jun 12 18:18 17 -> /u01/app/oracle/crs/log/rhel1/alertrhel1.log
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 18 -> /u01/app/oracle/crs/has/mesg/clsdus.msb
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 19 -> socket:[13974]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 2 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 20 -> socket:[13977]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 21 -> socket:[14446]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 22 -> socket:[13984]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 23 -> socket:[13987]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 24 -> socket:[13989]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 25 -> socket:[13993]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 26 -> socket:[13995]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 27 -> socket:[13996]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 28 -> socket:[14447]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 29 -> socket:[14733]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 3 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 30 -> socket:[14449]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 31 -> socket:[14739]
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 4 -> /u01/app/oracle/crs/srvm/mesg/procus.msb
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 5 -> /u02/ocr/ocr1
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 6 -> /u02/ocr/ocr2
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 7 -> /u01/app/oracle/crs/css/mesg/clssus.msb
l-wx------ 1 oracle oinstall 64 Jun 12 18:18 8 -> /u01/app/oracle/crs/log/rhel1/cssd/ocssd.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 9 -> socket:[13926]

    檔案說明當前ocssd定位的votedisk檔案。分別是vdisk1、vdisk2和vdisk3。 

5).線上新增Votedisk檔案:
[root@rhel1 fd]# cd –

1
2
3
4
5
6
7
8
9
10
11
12
/u01/app/oracle/crs/bin
[root@rhel1 bin]# ./crsctl add css votedisk /u03/vdisk/vdisk4 -force
Now formatting voting disk: /u03/vdisk/vdisk4
successful addition of votedisk /u03/vdisk/vdisk4.
 
[root@rhel1 bin]# ./crsctl add css votedisk /u03/vdisk/vdisk5 -force
Now formatting voting disk: /u03/vdisk/vdisk5
successful addition of votedisk /u03/vdisk/vdisk5.
 
[root@rhel1 bin]# ./crsctl add css votedisk /u03/vdisk/vdisk6 -force
Now formatting voting disk: /u03/vdisk/vdisk6
successful addition of votedisk /u03/vdisk/vdisk6.

        執行上面的命令線上新增了3個votedisk檔案到不同的ocfs2檔案系統上,這樣做的目的是為了實現儲存裝置的線上遷移。

6).檢視當前的votedisk路徑及檔名:
[root@rhel1 bin]# ./crsctl query css votedisk

1
2
3
4
5
6
 0.     0    /u02/vdisk/vdisk1
 1.     0    /u02/vdisk/vdisk2
 2.     0    /u02/vdisk/vdisk3
 3.     0    /u03/vdisk/vdisk4
 4.     0    /u03/vdisk/vdisk5
 5.     0    /u03/vdisk/vdisk6

located 6 votedisk(s).
從上面的輸出結果可以看出,3個votedisk檔案新增是成功的。

7).檢視ocssd程式定位的votedisk檔案:

[root@rhel1 bin]# cd /proc/5942/fd/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@rhel1 fd]# ll
total 0
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 0 -> /dev/null
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 1 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 10 -> socket:[13927]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 11 -> /u02/vdisk/vdisk1
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 12 -> /u02/vdisk/vdisk1
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 13 -> /u02/vdisk/vdisk2
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 14 -> /u02/vdisk/vdisk2
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 15 -> /u02/vdisk/vdisk3
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 16 -> /u02/vdisk/vdisk3
l-wx------ 1 oracle oinstall 64 Jun 12 18:18 17 -> /u01/app/oracle/crs/log/rhel1/alertrhel1.log
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 18 -> /u01/app/oracle/crs/has/mesg/clsdus.msb
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 19 -> socket:[13974]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 2 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 20 -> socket:[13977]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 21 -> socket:[14446]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 22 -> socket:[13984]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 23 -> socket:[13987]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 24 -> socket:[13989]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 25 -> socket:[13993]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 26 -> socket:[13995]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 27 -> socket:[13996]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 28 -> socket:[14447]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 29 -> socket:[14733]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 3 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 30 -> socket:[14449]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 31 -> socket:[14739]
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 4 -> /u01/app/oracle/crs/srvm/mesg/procus.msb
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 5 -> /u02/ocr/ocr1
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 6 -> /u02/ocr/ocr2
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 7 -> /u01/app/oracle/crs/css/mesg/clssus.msb
l-wx------ 1 oracle oinstall 64 Jun 12 18:18 8 -> /u01/app/oracle/crs/log/rhel1/cssd/ocssd.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 9 -> socket:[13926]

        從上面的輸出可以看出,ocssd程式定位的votedisk檔案並未發生變化,可以猜測,ocssd對votedisk的更新也不會同步到新 新增的3個votedisk檔案中,那麼在長時間的執行之後,重啟伺服器時新新增的votedisk過舊。

8).線上刪除votedisk檔案:
[root@rhel1 fd]# cd –

1
2
3
4
5
6
7
/u01/app/oracle/crs/bin
[root@rhel1 bin]# ./crsctl delete css votedisk /u02/vdisk/vdisk1 -force
successful deletion of votedisk /u02/vdisk/vdisk1.
[root@rhel1 bin]# ./crsctl delete css votedisk /u02/vdisk/vdisk2 -force
successful deletion of votedisk /u02/vdisk/vdisk2.
[root@rhel1 bin]# ./crsctl delete css votedisk /u02/vdisk/vdisk3 -force
successful deletion of votedisk /u02/vdisk/vdisk3.

9).檢視刪除votedisk後的votedisk路徑及檔名:
[root@rhel1 bin]# ./crsctl query css votedisk

1
2
3
4
 0.     0    /u03/vdisk/vdisk4
 1.     0    /u03/vdisk/vdisk5
 2.     0    /u03/vdisk/vdisk6
located 3 votedisk(s).

[root@rhel1 bin]# cd /proc/5942/fd/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@rhel1 fd]# ll
total 0
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 0 -> /dev/null
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 1 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 10 -> socket:[13927]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 11 -> /u02/vdisk/vdisk1
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 12 -> /u02/vdisk/vdisk1
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 13 -> /u02/vdisk/vdisk2
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 14 -> /u02/vdisk/vdisk2
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 15 -> /u02/vdisk/vdisk3
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 16 -> /u02/vdisk/vdisk3
l-wx------ 1 oracle oinstall 64 Jun 12 18:18 17 -> /u01/app/oracle/crs/log/rhel1/alertrhel1.log
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 18 -> /u01/app/oracle/crs/has/mesg/clsdus.msb
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 19 -> socket:[13974]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 2 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 20 -> socket:[13977]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 21 -> socket:[14446]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 22 -> socket:[13984]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 23 -> socket:[13987]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 24 -> socket:[13989]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 25 -> socket:[13993]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 26 -> socket:[13995]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 27 -> socket:[13996]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 28 -> socket:[14447]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 29 -> socket:[14733]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 3 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 30 -> socket:[14449]
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 31 -> socket:[14739]
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 4 -> /u01/app/oracle/crs/srvm/mesg/procus.msb
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 5 -> /u02/ocr/ocr1
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 6 -> /u02/ocr/ocr2
lr-x------ 1 oracle oinstall 64 Jun 12 18:18 7 -> /u01/app/oracle/crs/css/mesg/clssus.msb
l-wx------ 1 oracle oinstall 64 Jun 12 18:18 8 -> /u01/app/oracle/crs/log/rhel1/cssd/ocssd.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:18 9 -> socket:[13926]

定位未發生任何變化。

下面我們來嘗試重啟Clusterware,看會發生什麼情況。


11).停止Clustereware:
[root@rhel1 fd]# cd –

/u01/app/oracle/crs/bin

[root@rhel1 bin]# ./crsctl stop crs

1
2
3
4
5
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.

在所有RAC節點停止Clusterware。

12).啟動Clusterware:

1
2
3
[root@rhel1 bin]# ./crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly

只在一個節點啟動Clusterware。

13).檢視CRS元件的狀態及votedisk檔案:
[root@rhel1 bin]# ./crsctl check crs

1
2
3
CSS appears healthy
CRS appears healthy
EVM appears healthy

[root@rhel1 bin]# ./crsctl query css votedisk

1
2
3
4
 0.     0    0
 1.     0    0
 2.     0    /u03/vdisk/vdisk6
located 3 votedisk(s).

         可以發現,votedisk只有vdisk6顯示正常,至少可以說明這種情況是不正常的,可以大膽猜想是由於線上增加votedisk引起的問題。

14).檢視ocssd程式定位的votedisk檔案:
[root@rhel1 bin]# ps -e | grep -i ocssd

 9386 ?        00:00:04 ocssd.bin

[root@rhel1 bin]# cd /proc/9386/fd/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[root@rhel1 fd]# ll
total 0
lr-x------ 1 oracle oinstall 64 Jun 12 18:30 0 -> /dev/null
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 1 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 10 -> socket:[44767]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 11 -> /u03/vdisk/vdisk6
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 12 -> /u03/vdisk/vdisk6
l-wx------ 1 oracle oinstall 64 Jun 12 18:30 13 -> /u01/app/oracle/crs/log/rhel1/alertrhel1.log
lr-x------ 1 oracle oinstall 64 Jun 12 18:30 14 -> /u01/app/oracle/crs/has/mesg/clsdus.msb
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 15 -> socket:[44950]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 16 -> socket:[44953]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 17 -> socket:[45584]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 18 -> socket:[44980]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 19 -> socket:[44983]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 2 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 20 -> socket:[44986]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 21 -> socket:[44988]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 22 -> socket:[44992]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 23 -> socket:[44993]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 24 -> socket:[45585]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 25 -> socket:[45586]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 26 -> socket:[45587]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 27 -> socket:[45588]
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 3 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lr-x------ 1 oracle oinstall 64 Jun 12 18:30 4 -> /u01/app/oracle/crs/srvm/mesg/procus.msb
lr-x------ 1 oracle oinstall 64 Jun 12 18:30 5 -> /u02/ocr/ocr1
lr-x------ 1 oracle oinstall 64 Jun 12 18:30 6 -> /u02/ocr/ocr2
lr-x------ 1 oracle oinstall 64 Jun 12 18:30 7 -> /u01/app/oracle/crs/css/mesg/clssus.msb
l-wx------ 1 oracle oinstall 64 Jun 12 18:30 8 -> /u01/app/oracle/crs/log/rhel1/cssd/ocssd.log
lrwx------ 1 oracle oinstall 64 Jun 12 18:30 9 -> socket:[44766]

從上面的結果可以看出,ocssd程式只定位了vdisk6這一個檔案。

15).停止所有節點的Clusterware:
[root@rhel1 fd]# cd –

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/u01/app/oracle/crs/bin
[root@rhel1 bin]# ./crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
[root@rhel1 bin]# ps -ef | grep ora
root      2265  2243  0 16:45 ?        00:00:01 hald-addon-storage: polling /dev/hdc
root      8197  8174  0 18:23 pts/3    00:00:00 su - oracle
oracle    8198  8197  0 18:23 pts/3    00:00:00 -bash
oracle   10433  8198  0 18:29 pts/3    00:00:00 tail -f alertrhel1.log
root     13299  3340  0 18:34 pts/0    00:00:00 grep ora
root     30740  9263  0 17:59 pts/2    00:00:00 su - oracle
oracle   30741 30740  0 17:59 pts/2    00:00:00 -bash

16).手動刪除沒有使用的vdisk4和vdisk5:
[root@rhel1 bin]# cd /u03/vdisk/

1
[root@rhel1 vdisk]# rm -rf vdisk4 vdisk5

17).在Clusterware離線的情況下新增vdisk4和vdisk5:
[root@rhel1 vdisk]# cd –

1
2
3
4
5
6
7
/u01/app/oracle/crs/bin
[root@rhel1 bin]# ./crsctl add css votedisk /u03/vdisk/vdisk4 -force
Now formatting voting disk: /u03/vdisk/vdisk4
successful addition of votedisk /u03/vdisk/vdisk4.
[root@rhel1 bin]# ./crsctl add css votedisk /u03/vdisk/vdisk5 -force
Now formatting voting disk: /u03/vdisk/vdisk5
successful addition of votedisk /u03/vdisk/vdisk5.

17).修改votedisk正確的許可權:
[root@rhel1 bin]# cd –

1
2
3
4
5
6
7
8
/u03/vdisk
[root@rhel1 vdisk]# ll
total 30000
-rw-r--r-- 1 root   root     10240000 Jun 12 18:37 vdisk4
-rw-r--r-- 1 root   root     10240000 Jun 12 18:37 vdisk5
-rw-r--r-- 1 oracle oinstall 10240000 Jun 12 18:19 vdisk6
 
[root@rhel1 vdisk]# chown oracle:oinstall *


18).啟動Clusterware:
[root@rhel1 vdisk]# cd –

1
2
3
4
5
6
7
8
9
10
/u01/app/oracle/crs/bin
[root@rhel1 bin]# ./crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
[root@rhel1 bin]# ./crsctl check css
CSS appears healthy
[root@rhel1 bin]# ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy

19).檢視votedisk路徑及檔名:

[root@rhel1 bin]# ./crsctl query css votedisk

1
2
3
4
5
6
 0.     0    /u03/vdisk/vdisk4
 1.     0    /u03/vdisk/vdisk5
 2.     0    0
 3.     0    0
 4.     0    /u03/vdisk/vdisk4
located 5 votedisk(s).

        可以看出vdisk4和vdisk5被正確新增,vdisk6不見了蹤跡,說明10g votedisk在Clusterware的情況下是可以新增的,並且在離線的情況下新增之後啟動ocssd程式會立即定位到這些votedisk檔案,所以這並不會導致前面新新增的votedisk未被定位的情況發生。

20).新增vdisk6和清理有問題的votedisk:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[root@rhel1 bin]# ./crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
 
[root@rhel1 bin]# ps -ef | grep ora
root      2265  2243  0 16:45 ?        00:00:02 hald-addon-storage: polling /dev/hdc
root      8197  8174  0 18:22 pts/3    00:00:00 su - oracle
oracle    8198  8197  0 18:22 pts/3    00:00:00 -bash
oracle   20770  8198  0 18:50 pts/3    00:00:00 tail -f alertrhel1.log
root     21487  3340  0 18:51 pts/0    00:00:00 grep ora
root     30740  9263  0 17:59 pts/2    00:00:00 su - oracle
oracle   30741 30740  0 17:59 pts/2    00:00:00 -bash
 
[root@rhel1 bin]# ./crsctl add css votedisk /u03/vdisk/vdisk6 -force
Now formatting voting disk: /u03/vdisk/vdisk6
successful addition of votedisk /u03/vdisk/vdisk6.
 
[root@rhel1 bin]# ./crsctl query css votedisk
 0.     0    /u03/vdisk/vdisk4
 1.     0    /u03/vdisk/vdisk5
 2.     0    /u03/vdisk/vdisk6
 3.     0    0
 4.     0    0
 5.     0    /u03/vdisk/vdisk4
located 6 votedisk(s).
 
[root@rhel1 bin]# ./crsctl delete css votedisk 0 -force
successful deletion of votedisk 0.
 
[root@rhel1 bin]# ./crsctl query css votedisk
 0.     0    /u03/vdisk/vdisk4
 1.     0    /u03/vdisk/vdisk5
 2.     0    /u03/vdisk/vdisk6
 3.     0    0
 4.     0    /u03/vdisk/vdisk4
located 5 votedisk(s).

       從上面返回的結果可以看出,雖然votedisk的路徑和檔案都是0,在刪除0的時候也不會被全部刪除,只會刪除其中的一條。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@rhel1 bin]# ./crsctl delete css votedisk 0 -force
successful deletion of votedisk 0.
[root@rhel1 bin]# ./crsctl query css votedisk
 0.     0    /u03/vdisk/vdisk4
 1.     0    /u03/vdisk/vdisk5
 2.     0    /u03/vdisk/vdisk6
 3.     0    /u03/vdisk/vdisk4
located 4 votedisk(s).
 
[root@rhel1 bin]# ./crsctl delete css votedisk /u03/vdisk/vdisk4 -force
successful deletion of votedisk /u03/vdisk/vdisk4.
[root@rhel1 bin]# ./crsctl query css votedisk
 0.     0    /u03/vdisk/vdisk5
 1.     0    /u03/vdisk/vdisk6
 2.     0    /u03/vdisk/vdisk4
located 3 votedisk(s).

刪除 /u03/vdisk/vdisk4的votedisk檔案也只刪除了其中一條記錄。

21).啟動Clusterware:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@rhel1 bin]# ./crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
 
[root@rhel1 bin]# ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
 
[root@rhel1 bin]# ./crsctl query css votedisk
 0.     0    /u03/vdisk/vdisk5
 1.     0    /u03/vdisk/vdisk6
 2.     0    /u03/vdisk/vdisk4
located 3 votedisk(s).

        從上面的例子可以說明一點,在10gR2 RAC 的環境中最好不要在Clusterware線上的情況下新增votedisk,雖然可以成功新增,但在重啟Clusterware之後可能出現意想不到的問題。


二.OCR的線上替換(新增和刪除)。 

1).檢查OCR的完整性:

1
2
3
4
5
6
7
8
9
10
11
12
[root@rhel1 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       2512
         Available space (kbytes) :     259608
         ID                       : 2111044529
         Device/File Name         : /u02/ocr/ocr1
                                    Device/File integrity check succeeded
         Device/File Name         : /u02/ocr/ocr2
                                    Device/File integrity check succeeded
         Cluster registry integrity check succeeded

2).提前將需要建立的ocr檔案touch:

1
2
3
4
5
6
[root@rhel1 bin]# su - oracle
[oracle@rhel1 ~]$
[oracle@rhel1 ~]$ cd /u03/ocr/
[oracle@rhel1 ocr]$ ls
[oracle@rhel1 ocr]$ touch ocr3
[oracle@rhel1 ocr]$ touch ocr4

        上面新增votedisk的時候並未提前touch votedisk檔案,但某些情況下votedisk檔案也需要提前touch。

3).替換ocrmirror檔案,實際是一個遷移ocr的過程:

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@rhel1 bin]# ./ocrconfig -replace ocrmirror /u03/ocr/ocr4
[root@rhel1 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       2512
         Available space (kbytes) :     259608
         ID                       : 2111044529
         Device/File Name         : /u02/ocr/ocr1
                                    Device/File integrity check succeeded
         Device/File Name         : /u03/ocr/ocr4
                                    Device/File integrity check succeeded
         Cluster registry integrity check succeeded

        遷移後檢查ocr的完整性,沒問題。

4).檢視ocssd程式定位的ocr檔案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
ocr檔案也是由ocssd程式來維護。
[root@rhel1 bin]# ps -e | grep -i ocssd
23379 ?        00:00:06 ocssd.bin
[root@rhel1 bin]# cd /proc/23379/fd
[root@rhel1 fd]# ll
total 0
lr-x------ 1 oracle oinstall 64 Jun 12 19:00 0 -> /dev/null
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 1 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 10 -> socket:[62386]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 11 -> /u03/vdisk/vdisk5
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 12 -> /u03/vdisk/vdisk5
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 13 -> /u03/vdisk/vdisk6
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 14 -> /u03/vdisk/vdisk6
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 15 -> /u03/vdisk/vdisk4
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 16 -> /u03/vdisk/vdisk4
l-wx------ 1 oracle oinstall 64 Jun 12 19:00 17 -> /u01/app/oracle/crs/log/rhel1/alertrhel1.log
lr-x------ 1 oracle oinstall 64 Jun 12 19:00 18 -> /u01/app/oracle/crs/has/mesg/clsdus.msb
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 19 -> socket:[62607]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 2 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 20 -> socket:[62610]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 21 -> socket:[62611]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 22 -> socket:[62627]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 23 -> socket:[62632]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 24 -> socket:[62637]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 25 -> socket:[62640]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 26 -> socket:[62645]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 27 -> socket:[62646]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 28 -> socket:[62650]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 29 -> socket:[62651]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 3 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 30 -> socket:[62652]
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 31 -> socket:[62653]
lr-x------ 1 oracle oinstall 64 Jun 12 19:00 4 -> /u01/app/oracle/crs/srvm/mesg/procus.msb
lr-x------ 1 oracle oinstall 64 Jun 12 19:00 5 -> /u02/ocr/ocr1
lr-x------ 1 oracle oinstall 64 Jun 12 19:00 6 -> /u02/ocr/ocr2
lr-x------ 1 oracle oinstall 64 Jun 12 19:00 7 -> /u01/app/oracle/crs/css/mesg/clssus.msb
l-wx------ 1 oracle oinstall 64 Jun 12 19:00 8 -> /u01/app/oracle/crs/log/rhel1/cssd/ocssd.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:00 9 -> socket:[62385]

       從上面的結果可以看出,ocssd程式定位的ocr檔案還是oc1和ocr2,並未隨著ocr的遷移發生改變,和votedisk的效果相同。

5).停止Clusterware:
[root@rhel1 fd]# cd –

1
2
3
4
5
6
7
/u01/app/oracle/crs/bin
[root@rhel1 bin]# ./crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.停止所有節點的Clusterware。
1
2
3
4
5
6
7
[root@rhel1 bin]# ps -ef | grep ora
root      2265  2243  0 16:45 ?        00:00:02 hald-addon-storage: polling /dev/hdc
root      8197  8174  0 18:22 pts/3    00:00:00 su - oracle
oracle    8198  8197  0 18:22 pts/3    00:00:00 -bash
root     26683  3340  0 19:01 pts/0    00:00:00 grep ora
root     30740  9263  0 17:58 pts/2    00:00:00 su - oracle
oracle   30741 30740  0 17:58 pts/2    00:00:00 -bash

6).在Clusterware離線的情況下遷移ocr檔案:

1
2
[root@rhel1 bin]# ./ocrconfig -replace ocr /u03/ocr/ocr3
PROT-1: Failed to initialize ocrconfig

由此可以說明OCR檔案不能在離線的情況下遷移。

7).啟動Clusterware:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@rhel1 bin]# ./crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
[root@rhel1 bin]# ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
[root@rhel1 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       2512
         Available space (kbytes) :     259608
         ID                       : 2111044529
         Device/File Name         : /u02/ocr/ocr1
                                    Device/File integrity check succeeded
         Device/File Name         : /u03/ocr/ocr4
                                    Device/File integrity check succeeded
         Cluster registry integrity check succeeded

8).線上替換ocr檔案:

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@rhel1 bin]# ./ocrconfig -replace ocr /u03/ocr/ocr3
[root@rhel1 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       2512
         Available space (kbytes) :     259608
         ID                       : 2111044529
         Device/File Name         : /u03/ocr/ocr3
                                    Device/File integrity check succeeded
         Device/File Name         : /u03/ocr/ocr4
                                    Device/File integrity check succeeded
         Cluster registry integrity check succeeded

        替換成功,OCR檔案一致性檢查成功。

9).檢查ocssd程式定位的ocr檔案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@rhel1 bin]# ps -e | grep ocssd
28226 ?        00:00:03 ocssd.bin
[root@rhel1 bin]# cd /proc/28226/fd
[root@rhel1 fd]# ll
total 0
lr-x------ 1 oracle oinstall 64 Jun 12 19:04 0 -> /dev/null
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 1 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
l-wx------ 1 oracle oinstall 64 Jun 12 19:04 10 -> /u01/app/oracle/crs/log/rhel1/cssd/ocssd.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 11 -> /u03/vdisk/vdisk5
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 12 -> /u03/vdisk/vdisk5
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 13 -> /u03/vdisk/vdisk6
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 14 -> /u03/vdisk/vdisk6
l-wx------ 1 oracle oinstall 64 Jun 12 19:04 15 -> /u01/app/oracle/crs/log/rhel1/alertrhel1.log
lr-x------ 1 oracle oinstall 64 Jun 12 19:04 16 -> /u01/app/oracle/crs/has/mesg/clsdus.msb
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 17 -> /u03/vdisk/vdisk4
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 18 -> /u03/vdisk/vdisk4
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 19 -> socket:[69253]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 2 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 20 -> socket:[69256]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 21 -> socket:[69257]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 22 -> socket:[69285]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 23 -> socket:[69303]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 24 -> socket:[69346]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 25 -> socket:[69353]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 26 -> socket:[69370]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 27 -> socket:[69371]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 28 -> socket:[69379]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 29 -> socket:[69380]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 3 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 30 -> socket:[69381]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 31 -> socket:[69382]
lr-x------ 1 oracle oinstall 64 Jun 12 19:04 4 -> /u01/app/oracle/crs/srvm/mesg/procus.msb
lr-x------ 1 oracle oinstall 64 Jun 12 19:04 5 -> /u02/ocr/ocr1
lr-x------ 1 oracle oinstall 64 Jun 12 19:04 6 -> /u03/ocr/ocr4
lr-x------ 1 oracle oinstall 64 Jun 12 19:04 7 -> /u01/app/oracle/crs/css/mesg/clssus.msb
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 8 -> socket:[68925]
lrwx------ 1 oracle oinstall 64 Jun 12 19:04 9 -> socket:[68926]

定位檔案未發生變化,需要重啟才能定位新替換的OCR檔案。

10).重啟Clusterware:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@rhel1 fd]# cd -
/u01/app/oracle/crs/bin
[root@rhel1 bin]# ./crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
[root@rhel1 bin]# ./crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
[root@rhel1 bin]# ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy

11).檢視ocssd程式定位的ocr檔案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@rhel1 bin]# ps -e | grep ocssd
30773 ?        00:00:02 ocssd.bin
[root@rhel1 bin]# cd /proc/30773/fd
[root@rhel1 fd]# ll
total 0
lr-x------ 1 oracle oinstall 64 Jun 12 19:05 0 -> /dev/null
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 1 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 10 -> socket:[73581]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 11 -> /u03/vdisk/vdisk5
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 12 -> /u03/vdisk/vdisk5
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 13 -> /u03/vdisk/vdisk6
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 14 -> /u03/vdisk/vdisk6
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 15 -> /u03/vdisk/vdisk4
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 16 -> /u03/vdisk/vdisk4
l-wx------ 1 oracle oinstall 64 Jun 12 19:05 17 -> /u01/app/oracle/crs/log/rhel1/alertrhel1.log
lr-x------ 1 oracle oinstall 64 Jun 12 19:05 18 -> /u01/app/oracle/crs/has/mesg/clsdus.msb
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 19 -> socket:[73764]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 2 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 20 -> socket:[73767]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 22 -> socket:[73769]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 23 -> socket:[73772]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 24 -> socket:[73774]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 25 -> socket:[73778]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 26 -> socket:[73780]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 27 -> socket:[73781]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 28 -> socket:[73787]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 29 -> socket:[73788]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 3 -> /u01/app/oracle/crs/log/rhel1/cssd/cssdOUT.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 30 -> socket:[73789]
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 31 -> socket:[73790]
lr-x------ 1 oracle oinstall 64 Jun 12 19:05 4 -> /u01/app/oracle/crs/srvm/mesg/procus.msb
lr-x------ 1 oracle oinstall 64 Jun 12 19:05 5 -> /u03/ocr/ocr3
lr-x------ 1 oracle oinstall 64 Jun 12 19:05 6 -> /u03/ocr/ocr4
lr-x------ 1 oracle oinstall 64 Jun 12 19:05 7 -> /u01/app/oracle/crs/css/mesg/clssus.msb
l-wx------ 1 oracle oinstall 64 Jun 12 19:05 8 -> /u01/app/oracle/crs/log/rhel1/cssd/ocssd.log
lrwx------ 1 oracle oinstall 64 Jun 12 19:05 9 -> socket:[73580]
重啟後ocssd程式定位ocr檔案成功。

        從上面的OCR替換的例子可以看出,OCR的替換(新增和刪除)只能在Clusterware線上的情況下才能執行,最好在替換成功,檢查OCR一致性正確之後立即重啟Clusterware,使得替換的OCR檔案生效。

本文轉自 客居天涯 51CTO部落格,原文連結:http://blog.51cto.com/tiany/1576535,如需轉載請自行聯絡原作者


相關文章