• 博客访问: 1115473
  • 博文数量: 442
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-30 18:35
个人简介

暂无介绍

文章分类

全部博文(442)

文章存档

2011年(22)

2010年(13)

2008年(22)

2007年(229)

2006年(106)

2005年(50)

我的朋友

分类: Oracle

2011-04-26 16:29:42

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]

阅读(7973) | 评论(0) | 转发(4) |
1

上一篇:RAC备份恢复之Voting备份与恢复

下一篇:没有了

给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册