【Oracle ASMリカバリ】V$ASM_DISK HEADER_STATUSがProvisionedのトラブル解析を示される

プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com

 

 

ユーザーが前に使用可能なdiskgroup をmountするときに,ASMのアラームログで以下のエラが示される:

 

SQL> ALTER DISKGROUP ALL MOUNT
Tue Jul 19 09:31:09 2005
Loaded ASM Library – Generic Linux, version 1.0.0 library for asmlib interface
Tue Jul 19 09:31:09 2005
NOTE: cache registered group DBFILE_GRP number=1 incarn=0xc3fd9b7d
NOTE: cache registered group FLASHBACK_GRP number=2 incarn=0xc40d9b7e
NOTE: cache dismounting group 1/0xC3FD9B7D (DBFILE_GRP)
NOTE: dbwr not being msg’d to dismount
ERROR: diskgroup DBFILE_GRP was not mounted
NOTE: cache dismounting group 2/0xC40D9B7E (FLASHBACK_GRP)
NOTE: dbwr not being msg’d to dismount
ERROR: diskgroup FLASHBACK_GRP was not mounted

[oracle@vrh8 ~]$ oerr ora 15032
15032, 00000, “not all alterations performed”
// *Cause: At least one ALTER DISKGROUP action failed.
// *Action: Check the other messages issued along with this summary error.
//
[oracle@vrh8 ~]$ oerr ora 15063
15063, 00000, “ASM discovered an insufficient number of disks for diskgroup \”%s\””
// *Cause: ASM was unable to find a sufficient number of disks belonging to the
// diskgroup to continue the operation.
// *Action: Check that the disks in the diskgroup are present and functioning,
// that the owner of the ORACLE binary has read/write permission to
// the disks, and that the ASM_DISKSTRING initialization parameter
// has been set correctly. Verify that ASM discovers the appropriate
// disks by querying V$ASM_DISK from the ASM instance.
//

主に三つのエラが現れる:
ORA-15032: not all alterations performed
ORA-15063: diskgroup “FLASHBACK_GRP” lacks quorum of 2 PST disks; 0 found
ORA-15063: diskgroup “DBFILE_GRP” lacks quorum of 2 PST disks; 0 found

SQL> select path, MOUNT_STATUS, HEADER_STATUS, MODE_STATUS, STATE from v$asm_disk;
PATH MOUNT_S HEADER_STATUS MODE_ST STATE
————- ——- ————- ——- ——–
/dev/raw/raw1 CLOSED PROVISIONED ONLINE NORMAL

一般的に、このトラブルの原因はハードウェアトラブルあるいはストレージハードウェアがアップグレードしている。

Kfedでdisk headerをチェックする:
kfed read /dev/raw/raw1
kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
kfdhdb.driver.provstr: ORCLDISKASM1 ; 0x000: length=12
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: ASM1 ; 0x028: length=4
kfdhdb.grpname: DBFILE_GRP ; 0x048: length=10
kfdhdb.fgname: ASM1 ; 0x068: length=4
kfdhdb.capname: ; 0x088: length=0
kfdhdb.dskname: ASM1 ; 0x028: length=4
kfdhdb.grpname: DBFILE_GRP ; 0x048: length=10
kfdhdb.fgname: ASM1 ; 0x068: length=4
kfdhdb.capname: ; 0x088: length=0

kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER, KFDHDR_MEMBERを観察して、そのheader状態が実際にはMEMBERだと説明してください。けどV$ASM_DISK.HEADER_STATUS はPROVISIONEDと映して、二つには一致していない。

disk headerでkfdhdb.hdrsts がdiskの状態を標識した。次のテーブルでいくつかの状態のディスクライブを含んでいる:
 

kfdhdb.hdrsts ディスクライブ
MEMBER 今のdiskgroupのdiskに属している
FORMER このdiskは前にあるdiskgroupに属しているが、そのdiskgroupも削除された
CANDIDATE 裸のマシンを使うときに、新しいdiskgroupに使われるdisk
PROVISIONED Asmlibを使うと、新しいdiskgroupに使われるdisk

 

もしkfed  readがその状態は0x027: KFDHDR_MEMBERの場合に、V$ASM_DISKがPROVISIONEDと示すわけにはいかない。

Checksumが正確ではない場合に、V$ASM_DISK.HEADER_STATUSがPROVISIONEDと示すかもしれない。

例えば、ハードウェアトラブルがheaderの部分が正常を示すが、あるいはchecksumだけが正確ではないと示される。Kfedでそのトラブルをリカバリできる。流石に、 kfed、amdu 、adhuはASM三神器である。

 

Comment

*

沪ICP备14014813号

沪公网安备 31010802001379号