on  it road.com

7. 在当前节点上启动 CRS 守护进程(仅限 11.2.0.1!)

现在 OCR 已经恢复,CRS 守护进程可以启动,这是重新创建投票文件所需要的。
对于 11.2.0.2.0,跳过此步骤。

# $CRS_HOME/bin/crsctl start res ora.crsd -init 
CRS-2672: Attempting to start 'ora.crsd' on 'racnode1'
CRS-2676: Start of 'ora.crsd' on 'racnode1' succeeded

3.以独占模式启动CRS堆栈

在具有最新 OCR 备份的节点上,以 root 身份登录并以独占模式启动 CRS,此模式将允许 ASM 在没有投票磁盘和 CRS 守护进程 (crsd.bin) 的情况下启动并保持运行运行步。

11.2.0.1:

# $CRS_HOME/bin/crsctl start crs -excl
...
CRS-2672: Attempting to start 'ora.asm' on 'racnode1'
CRS-2676: Start of 'ora.asm' on 'racnode1' succeeded
CRS-2672: Attempting to start 'ora.crsd' on 'racnode1'
CRS-2676: Start of 'ora.crsd' on 'racnode1' succeeded

注意:本文档假设 CRS 磁盘组完全丢失,在这种情况下,CRS 守护进程(资源 ora.crsd)将由于 OCR 的不可访问性而再次终止——即使上述消息表明启动成功。
如果不是这种情况 - 例如:如果 CRS 磁盘组仍然存在(但已损坏或者不正确),则需要使用以下命令手动关闭 CRS 守护程序:

# $CRS_HOME/bin/crsctl stop res ora.crsd -init

否则后续的 OCR 还原将失败。

11.2.0.2 及以上:

# $CRS_HOME/bin/crsctl start crs -excl -nocrs
CRS-4123: Oracle High Availability Services has been started.
...
CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'auw2k3'
CRS-2672: Attempting to start 'ora.ctssd' on 'racnode1'
CRS-2676: Start of 'ora.drivers.acfs' on 'racnode1' succeeded
CRS-2676: Start of 'ora.ctssd' on 'racnode1' succeeded
CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'racnode1' succeeded
CRS-2672: Attempting to start 'ora.asm' on 'racnode1'
CRS-2676: Start of 'ora.asm' on 'racnode1' succeededM

重要信息:11.2.0.2 中引入了一个新选项“-nocrs”,它阻止了 ora.crsd 资源的启动。
指定此选项至关重要,否则无法启动 ora.crsd 资源将导致 ora.cluster_interconnect.haip 崩溃,进而导致 ASM 崩溃。

1.找到最新的自动OCR备份

使用非共享 CRS 主目录时,自动 OCR 备份可以位于集群的任何节点上,因此需要检查所有节点以获取最新备份:

$ ls -lrt $CRS_HOME/cdata/rac_cluster1/
-rw------- 1 root root 7331840 Mar 10 18:52 week.ocr
-rw------- 1 root root 7651328 Mar 26 01:33 week_.ocr
-rw------- 1 root root 7651328 Mar 29 01:33 day.ocr
-rw------- 1 root root 7651328 Mar 30 01:33 day_.ocr
-rw------- 1 root root 7651328 Mar 30 01:33 backup02.ocr
-rw------- 1 root root 7651328 Mar 30 05:33 backup01.ocr
-rw------- 1 root root 7651328 Mar 30 09:33 backup00.ocr

11.重新扫描ASM磁盘

如果使用 ASMLIB 以 root 用户身份重新扫描每个节点上的所有 ASM 磁盘:

# /usr/sbin/oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "ASMD40"

9. 为 ASM 重新创建 SPFILE(可选)

请注意:

从 11gR2 开始,ASM 可以在没有 PFILE 或者 SPFILE 的情况下启动,因此如果我们是
不为 ASM 使用 SPFILE
不为 ASM 使用共享 SPFILE
使用未存储在 ASM 中的共享 SPFILE(例如在集群文件系统上)
这一步可能应该跳过。

此外,请特别注意 asm_diskstring 参数,因为它会影响投票磁盘的发现。
请使用 ASM 警报日志验证先前的设置。

准备一个带有 ASM 启动参数的 pfile(例如 /tmp/asm_pfile.ora),这些参数可能与下面的示例有所不同。
如果有疑问,请查阅 ASM 警报日志,因为 ASM 实例启动应列出所有非默认参数值。
请注意 ASM 的最后一次启动(在第 2 步中通过 CRS 启动)不会使用 SPFILE,因此需要定位在 CRS 磁盘组丢失之前的启动。

*.asm_power_limit=1
*.diagnostic_dest='/u01/app/oragrid'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='EXCLUSIVE'

现在可以使用这个 PFILE 创建 SPFILE:

$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.1.0 Production on Tue Mar 30 11:52:39 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Real Application Clusters and Automatic Storage Management options
SQL> create spfile='+CRS' from pfile='/tmp/asm_pfile.ora';
File created.
SQL> exit

10. 关闭 CRS

由于 CRS 以独占模式运行,因此需要关闭它才能让 CRS 再次在所有节点上运行。
可能需要使用 force (-f) 选项:

# $CRS_HOME/bin/crsctl stop crs -f
...
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'auw2k3' has completed
CRS-4133: Oracle High Availability Services has been stopped.

8. 重新创建投票文件

Voting 文件需要在 CRS 磁盘组中初始化:

# $CRS_HOME/bin/crsctl replace votedisk +CRS
Successful addition of voting disk 00caa5b9c0f54f3abf5bd2a2609f09a9.
Successfully replaced voting disk group with +CRS.
CRS-4266: Voting file(s) successfully replaced

2. 确保所有节点上的 Grid Infrastructure 都已关闭

鉴于 OCR 磁盘组丢失,GI 堆栈将无法在任何节点上运行,但仍可能有各种守护进程在运行。
在每个节点上使用 force(-f ) 选项关闭 GI 堆栈:

# $CRS_HOME/bin/crsctl stop crs -f

13. 验证 CRS

要再次验证 CRS 是否完全正常运行:

# $CRS_HOME/bin/crsctl check cluster -all
**
racnode1:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**
racnode2:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**
# $CRS_HOME/bin/crsctl status resource -t

4. 标记 CRS 磁盘以供 ASMLIB 使用

如果使用 ASMLIB,需要首先标记要用于 CRS 磁盘组的磁盘,作为用户 root 执行:

# /usr/sbin/oracleasm createdisk ASMD40 /dev/sdh1
Writing disk header: done
Instantiating disk: done

12.启动CRS

作为 root 用户在所有集群节点上提交 CRS 启动:

# $CRS_HOME/bin/crsctl start crs
CRS-4123: Oracle High Availability Services has been started.

5.通过sqlplus创建CRS磁盘组

现在可以从 grid 用户通过 sqlplus(重新)创建磁盘组。
必须将 compatible.asm 属性设置为 11.2,以便 CRS 使用磁盘组:

$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.1.0 Production on Tue Mar 30 11:47:24 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Real Application Clusters and Automatic Storage Management options
SQL> create diskgroup CRS external redundancy disk 'ORCL:ASMD40' attribute 'COMPATIBLE.ASM' = '11.2';
Diskgroup created.
SQL> exit
如何在 Linux/UNIX 上完全丢失 CRS 磁盘组后恢复基于 ASM 的 OCR

如果 OCR 位于 ASM 磁盘组中,则无法直接还原手动或者自动 OCR 备份。
这是因为命令“ocrconfig -restore”需要启动并运行 ASM,以便将 OCR 备份恢复到 ASM 磁盘组。
但是,要使 ASM 可用,CRS 堆栈必须已成功启动。
为使恢复成功,OCR 也不得在使用中 (r/w),例如:在恢复 OCR 时,不得运行 CRS 守护程序。

将 ASM 磁盘组用于 CRS 时,磁盘组中通常有 3 种不同类型的文件可能需要恢复/重新创建:

  • Oracle 集群注册表文件 (OCR)
  • 投票文件
  • ASM 实例的共享 SPFILE

以下示例假定 OCR 位于专用于 CRS 的单个磁盘组中。
磁盘组只有一个使用外部冗余的磁盘。

由于 CRS 磁盘组已丢失,因此 CRS 堆栈在任何节点上都不可用。
示例中使用的以下设置需要根据实际配置进行替换:

GRID user:                       oragrid
GRID home:                       /u01/app/11.2.0/grid ($CRS_HOME)
ASM disk group name for OCR:     CRS
ASM/ASMLIB disk name:            ASMD40
Linux device name for ASM disk:  /dev/sdh1
Cluster name:                    rac_cluster1
Nodes:                           racnode1, racnode2

注意:本文假设 OCR 磁盘组的名称保持不变,但是可能需要使用不同的磁盘组名称,在这种情况下,必须在 /etc/oracle/ocr 中修改 OCR 磁盘组的名称。
loc 在执行以下步骤之前跨所有节点。

6. 恢复最新的 OCR 备份。

现在 CRS 磁盘组已创建并挂载,OCR 可以恢复必须以 root 用户身份完成:

# cd $CRS_HOME/cdata/rac_cluster1/
# $CRS_HOME/bin/ocrconfig -restore backup00.ocr
日期:2020-09-17 00:11:24 来源:oir作者:oir