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のバックアップ情報をチェックすることに注意しましょう.