OCR问题解决之道

详细阅读下面的两个实验和说明,很容易搞定以后出现的OCR问题。


一、OCR备份策略及备份介质有效性验证

Oracle RAC的OCR存放着集群和数据库的重要配置信息。因此掌握其备份和恢复的方法甚是重要。我们可以对OCR进行手工逻辑备份,也可以依赖系统的自动备份策略。
系统对OCR的自动备份策略如下:
①.每4个小时自动生成一份OCR备份,并保留最后3个备份。
②.CRSD进程还会在每天开始时生成OCR备份,并保留最后2个备份。
③.CRSD进程还会在每周开始时生成OCR备份,并保留最后2个备份。

因此正常情况下OCR的备份目录下应该有最近7个备份。

在此,给出OCR的备份和恢复策略。

1.为了安全起见,生成一份OCR的逻辑备份
[root@rac1 ~]# /oracle/app/crs/bin/ocrconfig -export ocr_logical_backup
[root@rac1 ~]# ls -l ocr_logical_backup
-rw-r--r-- 1 root root 103969 Nov  5 20:10 ocr_logical_backup

2.确定OCR的物理备份信息
[root@rac1 ~]# /oracle/app/crs/bin/ocrconfig -showbackup

rac1     2010/10/26 05:20:57     /oracle/app/crs/cdata/crs

rac1     2010/10/26 01:20:56     /oracle/app/crs/cdata/crs

rac2     2010/10/24 22:34:18     /oracle/app/crs/cdata/crs

rac1     2010/10/26 01:20:56     /oracle/app/crs/cdata/crs

rac1     2010/10/22 23:54:15     /oracle/app/crs/cdata/crs

[root@rac1 ~]# ls -l /oracle/app/crs/cdata/crs
total 23560
-rw-r--r-- 1 root root 4812800 Oct 26 05:20 backup00.ocr
-rw-r--r-- 1 root root 4812800 Oct 26 01:20 backup01.ocr
-rw-r--r-- 1 root root 4812800 Oct 24 15:54 backup02.ocr
-rw-r--r-- 1 root root 4812800 Oct 27 02:10 day_.ocr
-rw-r--r-- 1 root root 4812800 Oct 26 01:20 day.ocr
-rw-r--r-- 1 root root 4812800 Oct 29 23:04 week_.ocr
-rw-r--r-- 1 root root 4812800 Oct 22 23:54 week.ocr

以上三个备份即为系统自动生成的7个备份。

3.在RAC的所有节点上停止CRS资源。完成确认CRS状态
1)停止CRS资源之前状态
RACDB1@rac1 /home/oracle$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....B1.inst application    ONLINE    ONLINE    rac1
ora....B2.inst application    ONLINE    ONLINE    rac2
ora.RACDB.db   application    ONLINE    ONLINE    rac2
ora....DB1.srv application    ONLINE    ONLINE    rac1
ora....DB2.srv application    ONLINE    ONLINE    rac2
ora.....taf.cs application    ONLINE    ONLINE    rac1
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2

2)分别停止两个节点上的CRS资源
RACDB1@rac1 /home/oracle$ srvctl stop nodeapps -n rac1
RACDB1@rac1 /home/oracle$ srvctl stop nodeapps -n rac2

3)确认CRS资源已经停止完毕
RACDB1@rac1 /home/oracle$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....B1.inst application    OFFLINE   OFFLINE
ora....B2.inst application    OFFLINE   OFFLINE
ora.RACDB.db   application    OFFLINE   OFFLINE
ora....DB1.srv application    OFFLINE   OFFLINE
ora....DB2.srv application    OFFLINE   OFFLINE
ora.....taf.cs application    OFFLINE   OFFLINE
ora....SM1.asm application    OFFLINE   OFFLINE
ora....C1.lsnr application    OFFLINE   OFFLINE
ora.rac1.gsd   application    OFFLINE   OFFLINE
ora.rac1.ons   application    OFFLINE   OFFLINE
ora.rac1.vip   application    OFFLINE   OFFLINE
ora....SM2.asm application    OFFLINE   OFFLINE
ora....C2.lsnr application    OFFLINE   OFFLINE
ora.rac2.gsd   application    OFFLINE   OFFLINE
ora.rac2.ons   application    OFFLINE   OFFLINE
ora.rac2.vip   application    OFFLINE   OFFLINE

4.停止两个节点上的CRS
1)停止第一个节点上的CRS
[root@rac1 ~]# crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.

2)停止第二个节点上的CRS
[root@rac2 ~]# crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.

5.使用最近的一次备份恢复OCR
[root@rac1 ~]# /oracle/app/crs/bin/ocrconfig -restore /oracle/app/crs/cdata/crs/backup00.ocr
[root@rac1 ~]#

6.重新启动两个节点上的CRS
1)启动第一个节点上的CRS
[root@rac1 ~]# crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly

此处稍等几分钟后,确认第一节点上的CRS资源已经成功启动。
[root@rac1 ~]# crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....B1.inst application    ONLINE    ONLINE    rac1
ora....B2.inst application    ONLINE    OFFLINE
ora.RACDB.db   application    ONLINE    ONLINE    rac1
ora....DB1.srv application    ONLINE    ONLINE    rac1
ora....DB2.srv application    ONLINE    OFFLINE
ora.....taf.cs application    ONLINE    ONLINE    rac1
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    OFFLINE
ora....C2.lsnr application    ONLINE    OFFLINE
ora.rac2.gsd   application    ONLINE    OFFLINE
ora.rac2.ons   application    ONLINE    OFFLINE
ora.rac2.vip   application    ONLINE    ONLINE    rac1

2)启动第二个节点上的CRS
[root@rac2 ~]# crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly

此处需要稍等几分钟,然后确认所有节点上的CRS资源均已成功启动。
[root@rac1 ~]# crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....B1.inst application    ONLINE    ONLINE    rac1
ora....B2.inst application    ONLINE    ONLINE    rac2
ora.RACDB.db   application    ONLINE    ONLINE    rac1
ora....DB1.srv application    ONLINE    ONLINE    rac1
ora....DB2.srv application    ONLINE    ONLINE    rac2
ora.....taf.cs application    ONLINE    ONLINE    rac1
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2

7.查看RAC所有节点上OCR的状态是否正常
[root@rac1 bin]# su - oracle
RACDB1@rac1 /home/oracle$ /oracle/app/crs/bin/cluvfy comp ocr -n all

Verifying OCR integrity

Checking OCR integrity...

Checking the absence of a non-clustered configuration...
All nodes free of non-clustered, local-only configurations.

Uniqueness check for OCR device passed.

Checking the version of OCR...
OCR of correct Version "2" exists.

Checking data integrity of OCR...
Data integrity check for OCR passed.

OCR integrity check passed.

Verification of OCR integrity was successful.

到此,OCR恢复成功。

8.小结
鉴于OCR的重要性,Oracle默认提供了系统级别的备份方法。这样可以避免故障出现时由于没有备份导致OCR无法恢复的烦恼。即便如此,OCR的备份是否生成成功和其有效性检查伊然重要。与此同时亦可以结合手工备份来保证备份万无一失。


二、OCR的逻辑备份与恢复
本文给大家演示有关OCR的逻辑备份与恢复的方法和过程。

1.生成OCR的逻辑备份
1)逻辑备份方法如下
# ocrconfig –export file name

2)有关ocrconfig命令的帮助信息可以通过如下方法获得
[root@rac1 ~]# /oracle/app/crs/bin/ocrconfig -help
Name:
        ocrconfig - Configuration tool for Oracle Cluster Registry.

Synopsis:
        ocrconfig [option]
        option:
                -export <filename> [-s online]
                                                    - Export cluster register contents to a file
                -import <filename>                  - Import cluster registry contents from a file
                -upgrade [<user> [<group>]]
                                                    - Upgrade cluster registry from previous version
                -downgrade [-version <version string>]
                                                    - Downgrade cluster registry to the specified version
                -backuploc <dirname>                - Configure periodic backup location
                -showbackup                         - Show backup information
                -restore <filename>                 - Restore from physical backup
                -replace ocr|ocrmirror [<filename>] - Add/replace/remove a OCR device/file
                -overwrite                          - Overwrite OCR configuration on disk
                -repair ocr|ocrmirror <filename>    - Repair local OCR configuration
                -help                               - Print out this help information

Note:
        A log file will be created in
        $ORACLE_HOME/log/<hostname>/client/ocrconfig_<pid>.log. Please ensure
        you have file creation privileges in the above directory before
        running this tool.

2)生成OCR的逻辑备份
(1)确认系统当前状态
[root@rac1 ~]# /oracle/app/crs/bin/crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....B1.inst application    ONLINE    ONLINE    rac1
ora....B2.inst application    ONLINE    ONLINE    rac2
ora.RACDB.db   application    ONLINE    ONLINE    rac2
ora....DB1.srv application    ONLINE    ONLINE    rac1
ora....DB2.srv application    ONLINE    ONLINE    rac2
ora.....taf.cs application    ONLINE    ONLINE    rac1
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2

(2)生成OCR的逻辑备份
[root@rac1 ~]# /oracle/app/crs/bin/ocrconfig -export logical_backup.ocr -s online

(3)确认生成的OCR逻辑备份文件
[root@rac1 ~]# ls -l logical_backup.ocr
-rw-r--r-- 1 root root 104301 Nov 11 20:59 logical_backup.ocr

2.停掉所有节点上的Oracle集群软件
在RAC的每个节点以root身份执行“crsctl stop crs”命令,停掉所有节点上的集群软件。
[root@rac1 ~]# /oracle/app/crs/bin/crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.

[root@rac2 ~]# /oracle/app/crs/bin/crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.

3.使用已有的逻辑备份文件恢复OCR
[root@rac1 ~]# /oracle/app/crs/bin/ocrconfig -import logical_backup.ocr

4.重新启动所有节点上的Oracle集群软件
在RAC的每个节点以root身份执行“crsctl start crs”命令,启动所有节点上的集群软件。

[root@rac1 ~]# /oracle/app/crs/bin/crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly

[root@rac2 ~]# /oracle/app/crs/bin/crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly

[root@rac1 ~]# crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora....B1.inst application    ONLINE    ONLINE    rac1
ora....B2.inst application    ONLINE    ONLINE    rac2
ora.RACDB.db   application    ONLINE    ONLINE    rac1
ora....DB1.srv application    ONLINE    ONLINE    rac1
ora....DB2.srv application    ONLINE    ONLINE    rac2
ora.....taf.cs application    ONLINE    ONLINE    rac1
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2

5.检查OCR的完整性,完成恢复
以oracle用户身份执行一下检验命令。
RACDB1@rac1 /home/oracle$ /oracle/app/crs/bin/cluvfy comp ocr -n all

Verifying OCR integrity

Checking OCR integrity...

Checking the absence of a non-clustered configuration...
All nodes free of non-clustered, local-only configurations.

Uniqueness check for OCR device passed.

Checking the version of OCR...
OCR of correct Version "2" exists.

Checking data integrity of OCR...
Data integrity check for OCR passed.

OCR integrity check passed.

Verification of OCR integrity was successful.

OCR的完整性检验通过。

6.小结
OCR的逻辑备份与恢复是物理备份与恢复的有效补充。在OCR内容有变动时,建议保留一份逻辑备份。


标签: 暂无标签
oraunix

写了 199 篇文章,拥有财富 1026,被 339 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 2010-11-25 16:31:58
两天的rac下来,真糊涂了。先看看再说
回复

使用道具

P6 | 发表于 2010-11-25 18:23:07
慢慢消化吧。
回复

使用道具

P4 | 发表于 2010-11-25 22:14:20
本帖最后由 fanchungang 于 2010-11-25 22:15 编辑

老师我有个疑问?
假如有一组4节点了RAC,在 t1 时刻节点2出现了异常被踢出了集群,其他3个节点开始重构集群;
最终在 t2 时刻组成了3节点的集群,这个时候OCR也相应改变了,并在这时备份了OCR;
t3 时刻节点2恢复,并加入了集群,集群又恢复为4节点,但在这时OCR出了问题,需要恢复;
如果此时只有t2时刻的OCR备份,可以用其进行恢复么?
回复

使用道具

P6 | 发表于 2010-11-26 12:26:08
那些信息都在voting disk中。
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈