11 G ocrvoteディスク破損復旧


11 G OCR、VOTING破損復旧


概要:11 Gracはoraによく遭遇する.cssd,ora.crsdプロセスの起動に失敗しました.一般css.dプロセスの失敗の多くはvotingディスクの破損またはvotingディスクの数が不足したためであり、crsdプロセスの失敗の多くはOCRの破損またはクラスタの構成情報の破損である.
1.OCRは一般的に4時間に1回のバックアップがデフォルトで、バックアップファイルの場所には少なくとも5部のOCRバックアップ情報が存在し、最近4時間に生成されたOCR、最近1日に生成されたバックアップ、最近1週間のバックアップ
[grid@rac1 rac1]$ ocrconfig -showbackup
rac2     2015/08/25 14:54:37     /u01/app/11.2/grid/cdata/rac-cluster/backup00.ocr

rac2     2015/08/24 21:12:34     /u01/app/11.2/grid/cdata/rac-cluster/backup01.ocr

rac2     2015/08/24 17:12:34     /u01/app/11.2/grid/cdata/rac-cluster/backup02.ocr

rac2     2015/08/24 13:12:33     /u01/app/11.2/grid/cdata/rac-cluster/day.ocr

rac1     2015/08/13 13:12:12     /u01/app/11.2/grid/cdata/rac-cluster/week.ocr

2.OCR情報の手動バックアップ
[root@rac1 grid]# ocrconfig -showbackup

rac2     2015/08/25 14:54:37     /u01/app/11.2/grid/cdata/rac-cluster/backup00.ocr

rac2     2015/08/24 21:12:34     /u01/app/11.2/grid/cdata/rac-cluster/backup01.ocr

rac2     2015/08/24 17:12:34     /u01/app/11.2/grid/cdata/rac-cluster/backup02.ocr

rac2     2015/08/24 13:12:33     /u01/app/11.2/grid/cdata/rac-cluster/day.ocr

rac1     2015/08/13 13:12:12     /u01/app/11.2/grid/cdata/rac-cluster/week.ocr

rac1     2015/08/28 09:09:18     /u01/app/11.2/grid/cdata/rac-cluster/backup_20150828_090918.ocr

3.アナログocrディスク破損
ocr、votingで使用されているディスクを確認します
[root@rac1 grid]# crsctl query css votedisk
STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
1. ONLINE   1da20ec3577a4fa9bf2882a391d66afb (/dev/raw/raw1) [DATA]

アナログ破損OCRディスク
dd if=/dev/zero of=/dev/raw/raw1 bs=4K count=100

4クラスタを起動し、クラスタのalertログを開く
[grid@rac1 ~]$ cd /u01/app/11.2/grid/log/rac1/
[grid@rac1 rac1]$ tail -f alertrac1.log
[root@rac1 grid]# crsctl start cluster -all

次のエラーが表示されます.
2015-08-28 09:22:17.471: 
[ohasd(1990)]CRS-2767:Resource state recovery not attempted for 'ora.diskmon' as its target state is OFFLINE
2015-08-28 09:22:17.471: 
[ohasd(1990)]CRS-2769:Unable to failover resource 'ora.diskmon'.
2015-08-28 09:22:30.845: 
[cssd(7243)]CRS-1714:Unable to discover any voting files, retrying discovery in 15 seconds; Details at (:CSSNM00070:) in /u01/app/11.2/grid/log/rac1/cssd/ocssd.log

すなわち、クラスタにはvotingディスクファイルが見つかりません.ocrがクラスタ構成情報を記録していることを知っています.これは、ddがocrディスクを削除した結果と一致します.
次の手順でocrを復元し、クラスタを再起動します.
5すべてのノードクラスタの停止
[root@rac1 grid]# crsctl stop crs -f

停止できない場合は、次の方法を使用します.
ps -elf | egrep "PID|d.bin|ohas|oraagent|orarootagent|cssdagent|cssdmonitor" | grep -v grep

 PID kill -9

ps -elf | egrep "d.bin|ohas|oraagent|orarootagent|cssdagent|cssdmonitor" | grep -v grep |awk '{print $4}' |xargs -n 10  kill -9

次の方法でクラスタ停止の確認に成功しました
[root@rac1 grid]# ps -ef|grep crs
root      9229  4909  0 09:42 pts/0    00:00:00 grep crs
[root@rac1 grid]# ps -ef|grep css
root      9231  4909  0 09:42 pts/0    00:00:00 grep css
[root@rac1 grid]# ps -ef|grep evm
root      9236  4909  0 09:42 pts/0    00:00:00 grep evm
[root@rac1 grid]# ps -ef|grep ohas
root      9204     1  0 09:41 ?        00:00:00 /bin/sh /etc/init.d/init.ohasd run
root      9239  4909  0 09:42 pts/0    00:00:00 grep ohas

6独占モードでcrsを起動
[root@rac1 grid]# crsctl start crs -excl -nocrs
CRS-4123: Oracle High Availability Services has been started.
CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'rac1'
CRS-2677: Stop of 'ora.drivers.acfs' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.mdnsd' on 'rac1'
CRS-2676: Start of 'ora.mdnsd' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'rac1'
CRS-2676: Start of 'ora.gpnpd' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'rac1'
CRS-2672: Attempting to start 'ora.gipcd' on 'rac1'
CRS-2676: Start of 'ora.cssdmonitor' on 'rac1' succeeded
CRS-2676: Start of 'ora.gipcd' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'rac1'
CRS-2672: Attempting to start 'ora.diskmon' on 'rac1'
CRS-2676: Start of 'ora.diskmon' on 'rac1' succeeded
CRS-2676: Start of 'ora.cssd' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.drivers.acfs' on 'rac1'
CRS-2679: Attempting to clean 'ora.cluster_interconnect.haip' on 'rac1'
CRS-2672: Attempting to start 'ora.ctssd' on 'rac1'
CRS-2681: Clean of 'ora.cluster_interconnect.haip' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'rac1'
CRS-2676: Start of 'ora.drivers.acfs' on 'rac1' succeeded
CRS-2676: Start of 'ora.ctssd' on 'rac1' succeeded
CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.asm' on 'rac1'
CRS-2676: Start of 'ora.asm' on 'rac1' succeeded

説明:
-exclこのパラメータは、排他モードの使用を指定します.
-nocrsこのパラメータはcrsとvotingを無視することを指定します
クラスタの状態:
[grid@rac1 trace]$ crsctl stat res -t -init
--------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
----------------------------------------------------------------
Cluster Resources
------------------------------------------------------------------------
ora.asm
  1        ONLINE  INTERMEDIATE rac1                     OCR not started     
ora.cluster_interconnect.haip
  1        ONLINE  ONLINE       rac1                                         
ora.crf
  1        OFFLINE OFFLINE                                                   
ora.crsd
  1        OFFLINE OFFLINE                                                   
ora.cssd
  1        ONLINE  ONLINE       rac1                                         
ora.cssdmonitor
  1        ONLINE  ONLINE       rac1                                         
ora.ctssd
  1        ONLINE  ONLINE       rac1                     ACTIVE:0            
ora.diskmon
  1        OFFLINE OFFLINE                                                   
ora.drivers.acfs
  1        ONLINE  ONLINE       rac1                                         
ora.evmd
  1        OFFLINE OFFLINE                                                   
ora.gipcd
  1        ONLINE  ONLINE       rac1                                         
ora.gpnpd
  1        ONLINE  ONLINE       rac1                                         
ora.mdnsd
  1        ONLINE  ONLINE       rac1

7 ocrvotingの再作成
SQL> create diskgroup data external redundancy disk '/dev/raw/raw1' attribute 'au_size'='1M','compatible.asm' = '11.2.0','compatible.rdbms' = '11.2.0';

ここのocrvoteの名前は必ず破損する前と一致しなければならないことに注意してください.そうしないと、ocrvoteを回復するときにエラーが発生します.
 PROT-35: The configured OCR locations are not accessible.

8バックアップによるOCRのリカバリ
[root@rac1 bin]# ./ocrconfig -restore /u01/app/11.2/grid/cdata/rac-cluster/backup00.ocr

次のコマンドで確認できます.
cluvfy comp ocr -n all
ocrcheck

9回復vote盤
[root@rac1 bin]# ./crsctl replace votedisk +DATA
Successful addition of voting disk 4201f39953204fbdbf2b502ef4abe9cb.
Successfully replaced voting disk group with +DATA.
CRS-4266: Voting file(s) successfully replaced

ここでエラーが発生する可能性があります.
crsctl replace votedisk +ocrvote
CRS-4602: Failed 27 to add voting file 5a71f4b0868e4f8abfc4808566c5c7fa.
CRS-4602: Failed 27 to add voting file 66699f04c8a74f57bf08e0682294e449.
CRS-4602: Failed 27 to add voting file 7181a4d009884fecbff2cab4c69f2de2.
Failed to replace voting disk group with +ocrvote.
CRS-4000: Command Replace failed, or completed with errors.

以下の方法で解決できます.
SQL> show parameter disk

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
asm_diskgroups                       string
OCRVOTE
asm_diskstring                       string

SQL> alter system set asm_diskstring='/dev/raw/*';

次にコマンドを再実行してvoteディスクを復元します
確認:
[grid@rac1 ~]$ crsctl query css votedisk

10 spfileの再作成
クラスタasmで使用するspfileをocr共有ディスクに配置する方法に注意してください.ここでは、2つの方法で再作成する必要があります.
1)11 gの特性を利用する
create spfile from memory

2)手動作成
root@rac2 ~]# vi /tmp/asm_pfile.txt

次のパラメータを追加します.
 *.asm_power_limit=1
 *.diagnostic_dest='/u01/app/grid/11.2.0/log'
 *.instance_type='asm'
 *.large_pool_size=12M
 *.remote_login_passwordfile='EXCLUSIVE'

自分で編集したドキュメントを使用してspfileを再作成
SQL> create spfile='+DATA' from pfile='/tmp/asm_pfile.txt';

11クラスタをシャットダウンし、クラスタを再起動します.
[root@rac1 grid]# crsctl stop crs -f

[root@rac1 grid]# crsctl start crs

[root@rac1 grid]# crsctl start cluster -all

12クラスタリソースのステータスを確認します.
1)クラスタ情報
[root@rac1 grid]# crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resource
ora.DATA.dg
           ONLINE  ONLINE       rac1                                         
           ONLINE  ONLINE       rac2                                         
ora.LISTENER.lsnr
           ONLINE  ONLINE       rac1                                         
           ONLINE  ONLINE       rac2                                         
ora.ORADATA.dg
           ONLINE  ONLINE       rac1                                         
           ONLINE  ONLINE       rac2                                         
 ora.asm
           ONLINE  ONLINE       rac1                     Started             
           ONLINE  ONLINE       rac2                     Started             
ora.gsd
           OFFLINE OFFLINE      rac1                                         
           OFFLINE OFFLINE      rac2                                         
ora.net1.network
           ONLINE  ONLINE       rac1                                         
           ONLINE  ONLINE       rac2                                         
ora.ons
           ONLINE  ONLINE       rac1                                         
           ONLINE  ONLINE       rac2                                         
ora.registry.acfs
           ONLINE  ONLINE       rac1                                         
           ONLINE  ONLINE       rac2                                         
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
  1        ONLINE  ONLINE       rac1                                         
ora.cvu
  1        ONLINE  ONLINE       rac1                                         
ora.oc4j
  1        ONLINE  ONLINE       rac1                                         
ora.rac1.vip
  1        ONLINE  ONLINE       rac1                                         
ora.rac2.vip
  1        ONLINE  ONLINE       rac2                                         
ora.scan1.vip
  1        ONLINE  ONLINE       rac1                                         
ora.sunny.db
  1        ONLINE  ONLINE       rac1                     Open                
  2        ONLINE  ONLINE       rac2                     Open

2)ocr vote情報のチェック
[root@rac1 grid]# ocrcheck
Status of Oracle Cluster Registry is as follows :
     Version                  :          3
     Total space (kbytes)     :     262120
     Used space (kbytes)      :       3084
     Available space (kbytes) :     259036
     ID                       :  101930821
     Device/File Name         :      +DATA
                                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 succeeded

3)spfile情報のチェック
SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/11.2/grid/dbs/spfile+
                                             ASM1.ora

4)DGが正常かどうかを検査する
[grid@rac1 rac-cluster]$ asmcmd lsdg
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      3082     2687                0            2687              0             Y  DATA/
MOUNTED  EXTERN  N         512   4096  1048576      8197     5802                0            5802              0             N  ORADATA/

これでリカバリが完了し、さらにspfileの位置がDATAになります.
SQL> create pfile='/tmp/aa.txt' from spfile;

File created.

SQL> create spfile='+DATA' from pfile='/tmp/aa.txt';

File created.

クラスタをシャットダウンし、クラスタを再起動します.
crsctl stop cluster -all

crsctl start cluster -all

13知識の開拓
1)exportとimportの手動バックアップOCRについて:
[root@rac1 rac-cluster]# ocrconfig -manualbackup

importパラメータを使用してocr情報をあちこちで使用したり、ocrを復元したりすることができます.
ocrconfig -export /tmp/ocr.bak
ocrconfig -import file_name

EXportのocrバックアップを使用してocrディスクをリカバリする場合、restoreパラメータは使用できません.-importパラメータを使用する必要があります.
2)kfedコマンドによるディスクヘッドの読み取りについて、ocrのディスク位置情報を取得する
[root@rac1 rac-cluster]# kfed read  /dev/raw/raw1 | grep -E 'vfstart|vfend'

kfdhdb.vfstart:                     320 ; 0x0ec: 0x00000140
kfdhdb.vfend:                       352 ; 0x0f0: 0x00000160

特に、バックアップ情報なしでocrを復元するには、再構築するしかないので、日常的にocrのバックアップ情報をチェックすることに注意しましょう.