RAC知识更新之-RAC节点删除添加服务+维护RAC ocr表(摘自文平书)

p509 文平
如果使用DBCA工具进行数据库的创建、集群服务创建,或使用netca进行集群监听器的配置等操作,
相应的配置结果会被自动写入OCR中注册记载。但如果手工创建了数据库(create database)、手工编辑
了监听器文件,则OCR中不作记载。这是需要管理员使用srvctl add 命令进行群集服务信息箱OCR的手工注册。
反之,如果进行了数据库的直接删除等类似操作,而未经过DBCA工具等,则需要使用反向命令srvctl remove进行
信息的手工删除。
     例如,下面通过add database命令手工添加一套群集数据库sdzy,在集群节点node_a的node_b上分别添加实例
sdzy1和sdzy2:
  $srvctl add database -d sdzy -o /db/oracle/product/10.2.0/db_1
  $srvctl add instance -d sdzy -i sdzy1 -n node_a
  $srvctl add instance -d sdzy -i sdzy2 -n node_b

在上面的过程中,关于数据库sdzy的定义被添加到了集群注册表中(这并不意味着这个数据库一定存在)
。其中-d 参数后面的是数据库名,-o参数声明了这套数据库的ORACLE_HOME,-i参数声明的是在各节点上的数据库
实例名,而-n参数则描述了节点名。

检查数据库在OCR的注册结果,对数据库sdzy进行查询如下:
$srvctl config database -d sdzy
node_a sdzy1 /db/oracle/product/10.2.0/db_1
node_b sdzy2 /db/oracle/product/10.2.0/db_1


$ crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora....t1.inst application    ONLINE    ONLINE    cctt1      
ora....t2.inst application    ONLINE    ONLINE    cctt2      
ora.cctt.db    application    ONLINE    ONLINE    cctt1      
ora....tt1.srv application    ONLINE    ONLINE    cctt1      
ora....tt2.srv application    ONLINE    ONLINE    cctt2      
ora.....taf.cs application    ONLINE    ONLINE    cctt1      
ora....SM1.asm application    ONLINE    ONLINE    cctt1      
ora....T1.lsnr application    ONLINE    ONLINE    cctt1      
ora.cctt1.gsd  application    ONLINE    ONLINE    cctt1      
ora.cctt1.ons  application    ONLINE    ONLINE    cctt1      
ora.cctt1.vip  application    ONLINE    ONLINE    cctt1      
ora....SM2.asm application    ONLINE    ONLINE    cctt2      
ora....T2.lsnr application    ONLINE    ONLINE    cctt2      
ora.cctt2.gsd  application    ONLINE    ONLINE    cctt2      
ora.cctt2.ons  application    ONLINE    ONLINE    cctt2      
ora.cctt2.vip  application    ONLINE    ONLINE    cctt2      
ora.sdzy.db    application    OFFLINE   OFFLINE              
ora....y1.inst application    OFFLINE   OFFLINE              
ora....y2.inst application    OFFLINE   OFFLINE    

$ srvctl config database -d sdzy
cctt1 sdzy1 /oracle/product/db
cctt2 sdzy2 /oracle/product/db

添加完成后,管理员可以从任意一个节点进行手工的sdzy数据库的创建操作,并从各节点按照群集方式启动和
关闭数据库,或者以集群方式使用数据库,只要再创建其它相关信息即可,如网络监听服务等。


   删除OCR信息也同样重要。如果一套数据库被手工删除,或是需要重构数据库,则由于集群注册表中已经包含这样的信息,因此必须先行删除原始数据库信息,才能重行创建数据库。

下面使用srvctl remove命令手工删除一套集群数据库sdzy,在集群节点node_a 和node_b上分别删除实例sdzy1和
sdzy2:
srvctl remove instance -d sdzy -i sdzy1
srvctl remove instance -d sdzy -i sdzy2

||||||||||||||||||||||
$ srvctl config database -d sdzy
cctt1 sdzy1 /oracle/product/db
cctt2 sdzy2 /oracle/product/db
$ srvctl remove instance -d sdzy -i sdzy1
Remove instance sdzy1 from the database sdzy? (y/[n]) y
$ srvctl remove instance -d sdzy -i sdzy2
Remove instance sdzy2 from the database sdzy? (y/[n]) y
$ srvctl remove database -d sdzy
Remove the database sdzy? (y/[n]) y
$ crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora....t1.inst application    ONLINE    ONLINE    cctt1      
ora....t2.inst application    ONLINE    ONLINE    cctt2      
ora.cctt.db    application    ONLINE    ONLINE    cctt1      
ora....tt1.srv application    ONLINE    ONLINE    cctt1      
ora....tt2.srv application    ONLINE    ONLINE    cctt2      
ora.....taf.cs application    ONLINE    ONLINE    cctt1      
ora....SM1.asm application    ONLINE    ONLINE    cctt1      
ora....T1.lsnr application    ONLINE    ONLINE    cctt1      
ora.cctt1.gsd  application    ONLINE    ONLINE    cctt1      
ora.cctt1.ons  application    ONLINE    ONLINE    cctt1      
ora.cctt1.vip  application    ONLINE    ONLINE    cctt1      
ora....SM2.asm application    ONLINE    ONLINE    cctt2      
ora....T2.lsnr application    ONLINE    ONLINE    cctt2      
ora.cctt2.gsd  application    ONLINE    ONLINE    cctt2      
ora.cctt2.ons  application    ONLINE    ONLINE    cctt2      
ora.cctt2.vip  application    ONLINE    ONLINE    cctt2      
$

 

 

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

由于OCR中包括了集群服务相关的信息,集群众实例相关信息、ASM实例相关信息、集群数据库相关信息
等,这些信息维系了RAC集群的运行,需要进行必要的可靠性维护,是所有节点的信息不会产生缺失。
OCR的设置信息可以通过$CRS_HOME/bin目录下的ocrcheck获得


$ ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     524044
         Used space (kbytes)      :       4636
         Available space (kbytes) :     519408
         ID                       :  344313012
         Device/File Name         : /dev/roradsk/oradsk00
                                    Device/File integrity check succeeded

                                    Device/File not configured

         Cluster registry integrity check succeeded


由于OCR信息对集群十分重要,Oracle本身设计中就包含了对OCR信息的备份。在运行状态下OCR信息
每4个小时备份一次,存储在CRS_HOME中的cdata/<clustername>目录下。同时在CRS_HOME目录下的bin
目录中,也包含对应的ORC维护命令 ocrconfig,OCR的备份信息可以通过该命令查询出来。

|||||||||||||
$ cd $ORA_CRS_HOME
$ pwd
/oracle/product/crs
$ cd cdata
$ ls
crs-cctt   localhost
$ cd crs-cctt
$ ls
backup00.ocr  backup02.ocr  day_.ocr      week_.ocr
backup01.ocr  day.ocr       week.ocr
$ pwd
/oracle/product/crs/cdata/crs-cctt
||||||||||||||||||||||||||||||||||||||||||||||||||||||


$ ocrconfig -showbackup

cctt1     2010/01/28 10:09:37     /oracle/product/crs/cdata/crs-cctt

cctt1     2010/01/28 06:09:36     /oracle/product/crs/cdata/crs-cctt

cctt1     2010/01/28 02:09:35     /oracle/product/crs/cdata/crs-cctt

cctt1     2010/01/27 02:09:30     /oracle/product/crs/cdata/crs-cctt

cctt1     2010/01/18 02:08:41     /oracle/product/crs/cdata/crs-cctt
$

|||||||||||||||||||||||||

当然,这个备份可以更改,如果希望OCR能够备份到其他目录,则管理员可以使用如下命令
进行修改。首先以root用户登录系统,然后进入到$CRS_HOME/bin目录下,执行下面的命令,更
该备份位置到另外一个目录crs-backup:
#./ocrconfig  -backuploc /db/oracle/product/10.2.0/crs/cdata/crs_backup

    Oracle保证OCR每四小时自动备份一次。除此之外,通过ocrconfig工具,我们可以进行自定义
周期的OCR逻辑备份。下面使用ocrconfig 命令的导出语法将OCR备份到/db/oracle目录下的一个文件
ocr_export1.dmp中,过程如下:


#./ocrconfig -export /db/oracle/orc_export1.dmp

|||||||||||||||||||||||||||||||||||||||||||||||||||||||
$ which ocrconfig
/oracle/product/db/bin/ocrconfig
$ cd /oracle/product/db/bin/
$ su
Password:
#
# ./ocrconfig -export /oracle/ocr_export1.dmp
#
# ls -l /oracle/ocr_export1.dmp
-rw-rw-rw-   1 root       sys         104160 Jan 28 11:54 /oracle/ocr_export1.dmp

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

在AIX上,使用 ./ocrconfig -export 命令来构成一个Shell脚本,并使用 crontab -e 命令将OCR备份的计划放入
例行备份计划中,这显然是一个工程上的可选方法。


如果集群OCR不可用,集群无法启动和使用,则这时的OCR备份重要性会凸现出来,仅启动集群的某个节点,
并以单用户模式登录系统来避免启动CSS和CRS守护进程,使用OCR逻辑备份来重构OCR,方法如下:


#./ocrconfig -import  /db/oracle/ocr_export1.dmp

导入成功后,再以正常模式启动所有的节点即可。
如果使用OCR的自动物理备份,则使用./ocrconfig -resotre 命令进行恢复。

 

 

 

 

 

 


        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值