Oracle 12c 备份恢复OCR(Oracle Cluster Registry)

转自:Oracle 12c 备份恢复OCR(Oracle Cluster Registry)

有两种方法来备份OCR的内容:

自动备份    Oracle集群每4个小时会自动备份OCR,并保留最新的3份备份。CRSD进程负责创建和维护OCR的备份。目前不可以定制OCR自动备份的频率和备份的保留份数。

手动备份    在集群的一个节点上,运行下述命令来执行OCR的手动备份。OLR只支持手动备份。
ocrconfig -manualbackup
显示OCR备份文件
ocrconfig -showbackup
检查指定OCR备份文件的内容并验证备份的完整性
ocrdump -backupfile backup_file_name
改变OCR备份文件的保存路径
ocrconfig -backuploc Grid_home/cdata/cluster3
恢复OCR备份
1.显示节点
olsnodes
2.停止Oracle集群

如果OCR存放在Oracle ASM磁盘组中,使用下面命令来停止集群
crsctl stop crs
如果执行上面的命令返回关于OCR损坏的任何错误,通过下面命令,使用root用户来强制停止集群
crsctl stop crs -f
3.恢复OCR到集群文件系统或网络文件系统,使用root用户来执行下面命令
ocrconfig -restore file_name
如果这个操作执行完成,调到步骤10.
如果没有恢复OCR到集群文件系统或网络文件系统中,继续执行下面步骤。
如果OCR备份文件是存放到Oracle ASM磁盘组中,确保指定的磁盘组存在并被挂载。

4.通过root用户,启动Oracle Clusterware stack
crsctl start crs -excl -nocrs
-nocrs参数确保CRSD进程和OCR不启动Oracle Clusterware stack其他余下的部分
忽略任何显示的报错
5.检查CRSD是否运行
crsctl status resource ora.crsd -init
如果CRSD在运行,通过root用户,执行下面命令来关闭它
crsctl stop resource ora.crsd -init
6.想将OCR恢复到一个Oracle ASM磁盘组,需要首先使用SQL*Plus创建一个磁盘组,这个磁盘组的名称和恢复的磁盘组名称相同,然后将它挂载到本地节点
如果不能将这个磁盘组挂载到本地,执行下面命令
SQL> drop diskgroup disk_group_name force including contents;
7.恢复OCR
ocrconfig -restore file_name
如果OCR的原始路径不存在,在执行恢复前,需要手动创建一个空的OCR路径
确保指定的OCR设备存在于OCR配置中并且OCR设备是有效的
如果将OCR配置在ASM磁盘组中,确保Oracle ASM磁盘组存在并已挂载
如果OCR备份文件存在于Oracle ASM磁盘组中,确保Oracle ASM磁盘组存在并已挂载
8.验证OCR的完整性
ocrcheck
9.在运行exclusive模式的集群节点上,停止Oracle集群
crsctl stop crs -f
10.使用root用户,在没有执行ocrconfig -restore命令的集群节点上,执行下面命令
ocrconfig -repair -replace
例如,有一个4节点的集群,在节点1上执行了ocrconfig -restore命令,在节点2、3、4上则需要执行ocrconfig -repair -replace命令
11.启动Oracle集群
crsctl start crs
12.在集群所有节点上,验证OCR的完整性
cluvfy comp ocr -n all -verbose

猜你喜欢

转载自blog.csdn.net/qiye005/article/details/80337606