如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
分配一个物理卷ID (PVID)到已存在的ASM磁盘会破坏ASM 磁盘头,导致ASM 磁盘不可用。
各种各样的文件,包括针对AIX平台的10gR1 和 10gR2安装说明建议,使用下列命令指定一个PVID到磁盘用于ASM:
# /usr/sbin/chdev -l hdiskn -a pv=yes
这些文件还建议该命令将在RAC 丛的所有节点上运行,这不会产生问题,只要磁盘还未被 ASM使用,但是如果该磁盘已经使用,命令已经对ASM磁盘发出,该文件头将会被破坏。这很有可能发生,如果一个新的节点添加到一个已存在的RAC 丛上,因为该文档似乎暗示这必须在所有节点上进行。
为检查一个设备是否有相关的PVID ,使用lspv:
例如:
# lspv
hdisk0 0003286f04bc73ee rootvg active
hdisk1 0003286f867d77e1 rootvg active
hdisk2 0003286fb3470dae vg01 active
hdisk3 0003286fb3474190 vg01 active
hdisk4 0003286fb34747d1 vg01 active
hdisk5 0003286fb3474dff vg01 active
hdisk6 0003286fb3475428 vg01 active
hdisk7 0003286fb347607d vg01 active
hdisk8 0003286fb34766f3 vg01 active
hdisk9 0003286fb3476d70 vg01 active
hdisk10 0003286fb34773d5 vg01 active
hdisk11 0003286fb34780b8 vg01 active
hdisk12 0003286fb347872f vg01 active
hdisk13 0003286fb347940c vg01 active
hdisk14 0003286fb3479a7b vg01 active
The second column is the PVID.
发生
这很可能在RAC 环境下发生,尤其当一个新的节点添加到现存的丛中。
症状
如果ASM 实例安装磁盘时运行‘chdev’ 命令,则什么都不会立刻注意到,因为磁盘头只有在磁盘安装时读取,但是如果磁盘群不曾安装或再次安装 (例如. ASM 实例重启),该磁盘不再被当做一个ASM 磁盘,磁盘群安装就会失败,出现:l
ORA-15063 “diskgroup \”%s\” lacks quorum of %s PST disks; %s found”
or
ORA-15063: ASM discovered an insufficient number of disks for diskgroup s%
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk “%” is missing
替代方法
不要指定 PVID 到 ASM 磁盘,与该文件相反,ASM磁盘不需要 PVIDs,因为ASM使用 ASM 磁盘头来发现磁盘。
这在文件的Bug 3636335中写道:
“This is a doc. bug and we are going to clearly document not to put PVIDs on
disks given to ASM. The idea here is that ASM is the one which manages the
disk and not any OS / vendor volume managers etc., PVIDs are needed for volume
groups to work. For ASM to work, PVIDs are not needed. ASM has its own headers
to identify the disk which is what is getting written here. “
只要还有ASM 安装了磁盘(群),内容会尽快通过RMAN 备份。
同时可以应用 Document 750016.1 中的行动计划,并且建议使用Oracle 支持提出一个SR 。
针对AIX 上有PVIDs 磁盘的ASM 磁盘组的纠正措施(Doc ID 750016.1)
适用于:
Oracle 数据库 – 企业版 – 版本10.1.0.2 到11.2.0.2 [版本 10.1 到 11.2]
POWER 系统上的IBM AIX (64-bit)
基于系统的IBM AIX (64-bit)
目标
你已创建一个磁盘组,其中的磁盘有PVID,该磁盘组正在使用,目前还没有报告磁盘组元数据损坏,现在你知道ASM磁盘不应该在MetaLink 中把PVID 作为警示。Note 353761.1
该说明将会给出清除这些ASM 磁盘的PVID 的步骤。
解决方法
当 PVID 设置在一个卷组得磁盘上时,该PVID被存储在两个位置,即物理磁盘头(第一个4K以内)中和AIX的系统对象数据库中,称为 ODM ( 对象数据管理 )。
创建磁盘组时,PVID 的磁盘头信息被覆盖,但是从 ODM重新启动操作系统, AIX 可能试图通过破坏ASM 元数据将PVID 信息恢复到磁盘头。
如果ASM磁盘头元数据没有被PVID从ODM覆盖( 重启之前),那么你可以遵循下列步骤更新 ODM 不具有 PVID 的磁盘:
1] 不要重启任何节点.
1.1]从磁盘组删除一个时间点的磁盘.
1.2] 清除删除磁盘的PVID
# chdev -l hdisk5 -a pv=clear
RAC情况下,在所有节点上运行.
1.3]从所有节点检查没有PVID 的磁盘
# lspv
1.4] 将磁盘添加回磁盘组
1.5] 对磁盘组中带有PVID 的磁盘一个一个的操作,注意进入下一个磁盘之前重新平衡drop/add disk 命令完成
或者
2] 这需要停机:
2.1] 采用磁盘头的 ‘dd’ 备份
# dd if=/dev/hdisk5 of=/tmp/d5.txt bs=1024 count=1024
2.2]关闭 ASM 实例 (RAC 设置中的所有节点).
2.3] 清除 PVID
# chdev -l hdisk5 -a pv=clear
RAC情况下,在所有的节点上运行.
2.4] 从所有节点检查没有PVID 的磁盘
# lspv
2.5] 启动 ASM 实例,在所有的节点上安装磁盘组
警告:
Point-2命令重写盘头的内容,因此,如果不正确地使用可能是破坏性的。如果有任何疑惑,在采取措施之前提出带有Oracle 支持的SR。
Bug 3636335 : 磁盘头部的PVID 在添加一个新的磁盘到 ASM 磁盘组时被覆盖
摘要: 磁盘头部的PVID 在添加一个新的磁盘到 ASM 磁盘组时被覆盖
*** 05/18/04 12:23 pm ***
TAR:
—-
目的:
——–
添加磁盘到 asm磁盘组后, pvid被磁盘头上的零覆盖 (通过 “lquerypv -h hdiskX”证实),这使得这些磁盘处于下次执行cfgmgr的 “Defined” 状态,,新的 hdisk在 odm中配置,除了创建一个集群配置 新的 hdisk 有不正确的所有权/权限/属性,这会导致ASM安装磁盘组失败,直到手动改变它们。
诊断分析:
——————–
集群中的所有三个主机在开始均配置相同。 hdisk7至
hdisk的14个预留用于ASM。我们创建了两个 ASM磁盘组,xvda1,它使用的hdisk7至hdisk10和 xnfr1,它使用hdisk13至hdisk14。
SQL> select name from v$asm_diskgroup;
NAME
——————————
XNDAT1
XNFR1
SQL> select path, name from v$asm_disk;
PATH NAME
——————– —————
/dev/rhdisk11
/dev/rhdisk12
/dev/rhdisk7 XNDAT1_0000
/dev/rhdisk8 XNDAT1_0001
/dev/rhdisk9 XNDAT1_0002
/dev/rhdisk10 XNDAT1_0003
/dev/rhdisk13 XNFR1_0000
/dev/rhdisk14 XNFR1_0001
在重启其中一个节点之后,那个主机上的 ASM 实例不再能够安装磁盘组, Ct发现当 cfgmgr运行重启时,它不能发现被指定到磁盘组上的设备因为它们之前在odm中配置,因此 hdisk7 至hdisk10 和 hdisk13, hdisk14处于 ‘Defined’状态. 新的hdisk设备会为这些磁盘创建:
> lsdev -Ccdisk
hdisk7 Defined 14-08-01 EMC Symmetrix FCP Raid1
hdisk8 Defined 14-08-01 EMC Symmetrix FCP Raid1
hdisk9 Defined 14-08-01 EMC Symmetrix FCP Raid1
hdisk10 Defined 14-08-01 EMC Symmetrix FCP Raid1
hdisk11 Available 14-08-01 EMC Symmetrix FCP Raid1
hdisk12 Available 14-08-01 EMC Symmetrix FCP Raid1
hdisk13 Defined 14-08-01 EMC Symmetrix FCP Raid1
hdisk14 Defined 14-08-01 EMC Symmetrix FCP Raid1
hdisk15 Available 14-08-01 EMC Symmetrix FCP Raid1
hdisk16 Available 14-08-01 EMC Symmetrix FCP Raid1
hdisk17 Available 14-08-01 EMC Symmetrix FCP Raid1
hdisk18 Available 14-08-01 EMC Symmetrix FCP Raid1
hdisk19 Available 14-08-01 EMC Symmetrix FCP Raid1
hdisk20 Available 14-08-01 EMC Symmetrix FCP Raid1
这些新的 hdisk 设备没有pvids:
> lspv
hdisk11 000f0d8dea7df87c None
hdisk12 000f0d8dea7a6940 None
hdisk15 none None
hdisk16 none None
hdisk17 none None
hdisk18 none None
hdisk19 none None
hdisk20 none None
Ct 发现即便在没有重启的节点上,所有已经被指定到ASM磁盘组的hdisks在磁盘头上有所有的零值, pvid 应该在上面,即便odm还是提到它们。
> lspv | grep hdisk7
hdisk7 0003692a8002e0f2 None
> lquerypv -h /dev/hdisk7 80 10
00000080 00000000 00000000 584E4441 54315F30 |……..XNDAT1_0|
pvid应该在线00000080的第二第三列写入
– 例如,hdisk11还没有被指定到一个 ASM 磁盘群:
> lspv | grep hdisk11
hdisk11 000f0d8dea7df87c None
> lquerypv -h /dev/hdisk11 80 10
00000080 000F0D8D EA7DF87C 00000000 00000000 |…..}.|……..|
在添加它到 ASM磁盘组之前和之后通过从一个磁盘查询 pvid 来测试它,证实正是这个过程使pvid 被 覆盖/转移.
一旦 用户改变了新创建 hdisk设备的所有权/权限/属性,ASM 实例能够不出问题地安装磁盘组,注意上述不同的路径:
SQL> select path, name from v$asm_disk;
PATH NAME
——————– —————
/dev/rhdisk11
/dev/rhdisk12
/dev/rhdisk15 XNDAT1_0000
/dev/rhdisk16 XNDAT1_0001
/dev/rhdisk17 XNDAT1_0002
/dev/rhdisk18 XNDAT1_0003
/dev/rhdisk19 XNFR1_0000
/dev/rhdisk20 XNFR1_0001
存在人工干预时虽然事情继续,当ct添加磁盘时它使维护变得困难,再加上使用所有没有 pvid的磁盘使得配置管理变得困难。
这是一个文档错误,我们要清楚地注意不要把PVID置于已给ASM的磁盘上,这里的观点是ASM才是管理磁盘的,不是任何OS /供应商的卷管理员等。卷组需要PVIDs 为 ASM 工作来运转,不需要 PVIDs ,ASM都有自己的头来识别磁盘而这一点正是得到这里写的,当使用原始磁盘,没有任何的LV或卷组的问题。
Comment