Oracle RAC CRS、OCR、Voting破壞重建

maojinyu發表於2011-03-29
1、主機名:
#Public Network - (eth0)
192.168.10.11 rac1
192.168.10.12 rac2
#Private Interconnect - (eth1)
10.10.10.11 rac1priv
10.10.10.12 rac2priv
#Public Virtual IP (VIP) addresses - (eth0)
192.168.10.21 rac1vip
192.168.10.22 rac2vip
2、生成listener的cap檔案,用於重建ocr後註冊監聽(也可以用後面的netca)
crs_stat -p ora.rac1.LISTENER_RAC1.lsnr > /oracle/backup/ora.rac1.LISTENER_RAC1.lsnr.cap
crs_stat -p ora.rac2.LISTENER_RAC2.lsnr > /oracle/backup/ora.rac2.LISTENER_RAC2.lsnr.cap
3、停掉所有的資源,備份ocr、votingdisk並重新格式化
crs_stop -all
crsctl stop crs
備份OCR:
[root@rac1 ~]# ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 104216
Used space (kbytes) : 4640
Available space (kbytes) : 99576
ID : 1718671696
Device/File Name : /dev/raw/raw1
Device/File integrity check succeeded
Device/File not configured
Cluster registry integrity check succeeded

ocrconfig -export /oracle/backup/ocr_20100531.bak
[root@rac1 ~]# ocrconfig -export /oracle/backup/ocr_20100531.bak
備份votedisk:
[root@rac1 ~]# crsctl query css votedisk
0. 0 /dev/raw/raw2
located 1 votedisk(s).

破壞OCR,Voting磁碟
在兩邊用root執行:
/oracle/app/crs/install/rootdelete.sh
/oracle/app/crs/install/rootdeinstall.sh
[root@rac1 ~]# dd if=/dev/raw/raw2 f=/oracle/backup/votedisk_20100531.bak
208864+0 records in
208864+0 records out
106938368 bytes (107 MB) copied, 78.8653 seconds, 1.4 MB/s
[root@rac1 ~]#
[root@rac1 ~]# dd if=/dev/zero f=/dev/raw/raw2 bs=1024000 count=120
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.00235728 seconds, 434 kB/s
[root@rac1 ~]# dd if=/dev/zero f=/dev/raw/raw1 bs=1024000 count=120
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.0335442 seconds, 30.5 kB/s

在每個節點依次執行(root 使用者):
如果是10.2.0.1 版本,在最後一個節點上執行的時候會因為靜默vipca的bug丟擲異常,在該節點上圖形化
介面呼叫VIPCA。
/oracle/app/crs/root.sh
Checking to see if Oracle CRS stack is already configured
Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/oracle/app' is not owned by root
WARNING: directory '/oracle' is not owned by root
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node :
node 1: rac1 rac1priv rac1
node 2: rac2 rac2priv rac2
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Now formatting voting device: /dev/raw/raw2
Format of 1 voting devices complete.
Startup will be queued to init within 30 seconds.
Adding daemons to inittab
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
rac1
rac2
CSS is active on all nodes.
Waiting for the Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
Creating VIP application resource on (2) nodes...
Creating GSD application resource on (2) nodes...
Creating ONS application resource on (2) nodes...
Starting VIP application resource on (2) nodes...
Starting GSD application resource on (2) nodes...
Starting ONS application resource on (2) nodes...
Done
如果報錯:
[root@rac1 backup]# /oracle/app/crs/install/rootconfig
Checking to see if Oracle CRS stack is already configured
Oracle CRS stack is already configured and will be running under init(1M)
則刪除檔案:每臺機器上都刪除rm /etc/oracle/scls_scr/rac1/oracle/cssfatal 這根檔案
[oracle@rac1 admin]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
--------以下均用oracle使用者操作
7、使用oifcfg配置db使用的共有、私連網路
oifcfg setif -global eth0/192.168.10.0:public
oifcfg setif -global eth1/10.10.10.0:cluster_interconnect
[oracle@rac2 bin]$ oifcfg getif
eth0 192.168.10.0 global public
eth1 10.10.10.0 global cluster_interconnect

8、註冊其他資源到叢集(oracle使用者)
①註冊監聽到叢集
修改監聽配置檔案lisntener.ora並編輯生成的cap檔案(改名),更改其中用到的hostname.
ora.rac1.LISTENER_rac1.lsnr.cap
ora.rac2.LISTENER_rac2.lsnr.cap
crs_register ora.rac1.LISTENER_RAC1.lsnr -dir /oracle/backup
crs_register ora.rac2.LISTENER_RAC2.lsnr -dir /oracle/backup
[oracle@rac1 backup]$ srvctl start listener -n rac1
[oracle@rac1 backup]$ srvctl start listener -n rac2
[oracle@rac1 backup]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
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....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
刪除可用
[root@rac1 backup]# crs_unregister ora.rac1.LISTENER_RAC1.lsnr
[root@rac1 backup]# crs_unregister ora.rac2.LISTENER_RAC2.lsn
或者使用netca圖形化介面來配置監聽。

②註冊ASM例項到叢集(如果使用ASM)
srvctl add asm -n rac1 -i +ASM1 -o $ORACLE_HOME
srvctl add asm -n rac2 -i +ASM2 -o $ORACLE_HOME
[oracle@rac1 backup]$ srvctl start asm -n rac1
[oracle@rac1 backup]$ srvctl start asm -n rac2
[oracle@rac1 backup]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
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
③註冊instance/database到叢集
srvctl add database -d racdb -o $ORACLE_HOME
srvctl add instance -d racdb -i racdb1 -n rac1
srvctl add instance -d racdb -i racdb2 -n rac2
srvctl config database -d racdb
srvctl start database -d racdb
[root@rac1 backup]# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
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
ora.racdb.db application ONLINE ONLINE rac1
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application ONLINE ONLINE rac2

4.註冊services到叢集
(命令註冊不能用與DB相同的service名)
srvctl add service -d -s -r "" [-a ""] [-P ]
[root@rac1 backup]# srvctl add service -h
Usage: srvctl add service -d -s -r "" [-a ""] [-P ]
-d Unique name for the database
-s Service name
-r "" List of preferred instances
-a "" List of available instances
-P TAF policy (NONE, BASIC, or PRECONNECT)
Usage: srvctl add service -d -s -u {-r "" | -a ""}
-d Unique name for the database
-s Service name
-u Add a new instance to service configuration
-r Name of new preferred instance
-a Name of new available instance
-h Print usage
/oracle/app/crs/bin/srvctl add service -d racdb -s racdb-r racdb1 -a racdb2 -P BASIC
/oracle/app/crs/bin/srvctl add service -d racdb -s racdb_s -r racdb1,racdb2 -P BASIC
(建議)
[root@rac2 ~]# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
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
ora.racdb.db application ONLINE ONLINE rac1
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application ONLINE ONLINE rac2
ora....db_s.cs application ONLINE ONLINE rac1
ora....db1.srv application ONLINE ONLINE rac1
ora....db2.srv application ONLINE ONLINE rac2
與之前不同service名後,則資料庫會自己變為新的service名字,如下:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string racdb_s
###############################################
5、更改tnsnams名字即可
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9907339/viewspace-1047900/,如需轉載,請註明出處,否則將追究法律責任。

相關文章