RAC中OCR备份与恢复的方法有哪些

66次阅读
没有评论

共计 4243 个字符,预计需要花费 11 分钟才能阅读完成。

这篇文章主要介绍“RAC 中 OCR 备份与恢复的方法有哪些”,在日常操作中,相信很多人在 RAC 中 OCR 备份与恢复的方法有哪些问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”RAC 中 OCR 备份与恢复的方法有哪些”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

ocr 保存了 rac 中节点列表、实例和节点的关联、以及 rac 各种资源(VIP、监听等)信息。
如果 ocr 所在磁盘或者阵列没有使用 raid,则强烈要求对 ocr 做镜像。
因为 OCR 也非常重要,除了 mirror 外,也要做好充分的备份。

备份 ocr 有两种方法:

[@more@]1、ocr 自动备份与恢复方法
1) 自动备份
oracle 会每小时备份一次 ocr,自动备份的默认路径是:$CRS_HOME/cdata/$CRS_NAME 下,可以用 ocrconfig 查看自动备份的信息,如:

[oracle@dwdb01 backup]$ ocrconfig -showbackup

dwdb03     2011/04/26 13:22:47     /oracle/product/10.2.0/crs/cdata/crs

dwdb03     2011/04/26 09:22:47     /oracle/product/10.2.0/crs/cdata/crs

dwdb03     2011/04/26 05:22:47     /oracle/product/10.2.0/crs/cdata/crs

dwdb03     2011/04/25 13:22:46     /oracle/product/10.2.0/crs/cdata/crs

dwdb03     2011/04/14 09:22:28     /oracle/product/10.2.0/crs/cdata/crs

自动备份只会在一个节点执行。如果用于备份的节点出现异常,则 oracle 会自动切换到其他节点进行备份。
默认情况下,oracle 会保留最近 5 份 ocr 备份:3 份最近的、一份昨天和一份上周的。

自动备份只会在一个节点上执行,安全起见,应该定期拷贝字段备份产生的文件到所有节点上。

要实现这个功能,首先配置两个节点的相互认证,使得互相访问不需要口令:

– 以 root 在所有节点执行:
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa

– 以 root 在其中一个节点执行(这里选择 dwdb01):

touch  ~/.ssh/authorized_keys
cd ~/.ssh
ssh dwdb01 cat ~/.ssh/id_rsa.pub authorized_keys
ssh dwdb01 cat ~/.ssh/id_rsa.pub authorized_keys

ssh dwdb02 cat ~/.ssh/id_rsa.pub authorized_keys
ssh dwdb02 cat ~/.ssh/id_rsa.pub authorized_keys

ssh dwdb03 cat ~/.ssh/id_rsa.pub authorized_keys
ssh dwdb03 cat ~/.ssh/id_rsa.pub authorized_keys

ssh dwdb04 cat ~/.ssh/id_rsa.pub authorized_keys
ssh dwdb04 cat ~/.ssh/id_rsa.pub authorized_keys

scp authorized_keys dwdb02:`pwd`
scp authorized_keys dwdb03:`pwd`
scp authorized_keys dwdb04:`pwd`

– 所有节点执行
chmod 600 ~/.ssh/authorized_keys

– 在 dwdb01 测试
ssh dwdb02 date
ssh dwdb03 date
ssh dwdb04 date

2) 恢复
自动备份这种备份方式是物理备份,类似于数据库备份中的 rman,需要用 restore 方式还原,恢复步骤:
a) 用 ocrconfig -showbackup 命令查看自动备份文件的位置(在那个节点上,在那个路径下)

b) 用 ocrdump 验证 ocr 信息,如:
以 root 执行:
/opt/oracle/product/10.2/crs/bin/ocrdump -backupfile /opt/oracle/product/10.2/crs/cdata/crs/week.ocr
这个命令会在当前路径下产生一个文件:OCRDUMPFILE,查看这个文件即可。

c) 在所有节点停止 crs
/etc/init.d/init.crs stop

d) 用户 ocrconfig 还原
  ocrconfig -restore file_name
  –file_name 为自动备份的 ocr 文件路径及名称

e) 在所有节点启动 crs
/etc/init.d/init.crs start

f) 可以用 cluvfy 验证 ocr 是否正确
  cluvfy comp ocr -n all [-verbose]

2 手工备份 (逻辑备份) 及恢复方法
  我们不能修改 ocr 自动备份的时间及频率,但是 oracle 给我们提供了另外一种备份方式,可以让我们对 ocr 进行手工备份。
  手工备份很简单,我们可以用 ocrconfig 命令,如:
 ocrconfig -export /tmp/ocr.bak
 
  注意,该命令只能以 root 执行。
  这种备份方式是逻辑备份,类似于数据库备份中的 exp,需要用 imp 方式还原
 
  为了保险起见,最好让自动备份和手工备份的任务在不同的节点执行,且把手工 export 出来的文件放到所有节点的本地硬盘上,避免阵列故障,下面的维护的例子:
vi backup_ocr.sh
————————————————————————–
#!/bin/bash
########################################################################################################
# Name          : backup_ocr.sh
# Author        : Shengkai Su
# Date          : 04/25/2011
#
# Description   : backup ocr manually
#
#
# Usage         : ./backup_ocr.sh
#
#
# Prerequisite  : run under root
#
#
# Modifications :
#
#       When            Who             What
#       ==========      ===========     ================================================================
#       04/25/2011      shengkai su     start developing the script
#
########################################################################################################

##############################
# set  env
#############################
. /home/oracle/.bash_profile

DATE=`date +%Y%m%d`
DIRNAME=`dirname $0`
SCRIPT=`basename $0`
KEYWORD= ocr
MYPATH=${DIRNAME}/rac_comp/${KEYWORD}
NODELIST= dwdb02 dwdb03 dwdb04

DEST=${MYPATH}/${KEYWORD}.${DATE}

###############################
# backup ocr disk via dd
###############################
echo ============start at `date` ===============

#dd if file not exists
if [-f ${DEST} ];then
  echo file exists
  exit 1
else
 ${ORA_CRS_HOME}/bin/ocrconfig -export $DEST -s online
fi

###############################################
# copy ocr disk backup file to other nodes
###############################################
for N in `echo ${NODELIST}`;do
  scp ${DEST} ${N}:`cd ${MYPATH};pwd`
done

echo ============end at `date` ===============

————————————————————————
- 定义定时任务,每六小时一次
# backup ocr every 6 hours
10 */6 * * * /oracle/DBA/backup/backup_ocr.sh

  上面提到了,用 export 方式备份是逻辑备份,如果 ocr 损坏需要还原,则需要用 import 方式把导出的内容导入,步骤如下:
 
a) 用 ocrconfig -export 出来的文件位置

b) 在所有节点停止 crs
   /etc/init.d/init.crs stop

c) 用户 ocrconfig 还原
  ocrconfig -import file_name
  –file_name 为 export 出来的 ocr 文件路径及名称

d) 在所有节点启动 crs
   /etc/init.d/init.crs start

e) 可以用 cluvfy 验证 ocr 是否正确
  cluvfy comp ocr -n all [-verbose]

到此,关于“RAC 中 OCR 备份与恢复的方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计4243字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)