(超详细)Oracle 10g RAC 添加节点实验操作总结
Oracle 10g RAC 添加節(jié)點(diǎn)實(shí)驗(yàn)操作總結(jié)
?
目? 錄
?
RAC物理結(jié)構(gòu)...3
一. 安裝前準(zhǔn)備及OS安裝配置... 4
1、安裝并配置新節(jié)點(diǎn)的虛擬機(jī)...4
2、節(jié)點(diǎn)三(dbi)的網(wǎng)絡(luò)配置...4
3、節(jié)點(diǎn)三(dbi)的時(shí)間同步配置...5
5、??安裝Oracle RAC依賴的操作系統(tǒng)軟件包... 6
6、??安裝oracleasm ASMlib軟件包... 7
7、??修改各節(jié)點(diǎn)的/etc/hosts主機(jī)名解析文件... 7
8、??建立用戶、配置環(huán)境變量及建立用戶等價(jià)性... 8
9、??創(chuàng)建目錄結(jié)構(gòu)... 10
10、配置Linux系統(tǒng)參數(shù)...10
11、配置hangcheck-timer 模塊... 11
12、配置裸設(shè)備RAW(OCR和Votedisk使用的裸設(shè)備)12
13、配置ASM磁盤...13
二. 添加節(jié)點(diǎn)之--安裝Clusterware集群件到新節(jié)點(diǎn)... 14
1、??檢查硬件和操作系統(tǒng)配置... 14
2、??在安裝集群之前預(yù)檢查節(jié)點(diǎn)列表中的所有節(jié)點(diǎn)... 15
3、??執(zhí)行addNode.sh腳本安裝復(fù)制集群件到新節(jié)點(diǎn)... 16
三.????添加節(jié)點(diǎn)之--安裝數(shù)據(jù)庫軟件到新節(jié)點(diǎn)... 23
1、執(zhí)行addNode.sh腳本安裝復(fù)制數(shù)據(jù)庫軟件到新節(jié)點(diǎn)...23
四.????添加節(jié)點(diǎn)之--在新節(jié)點(diǎn)上配置監(jiān)聽器... 28
五.????添加節(jié)點(diǎn)之--在新節(jié)點(diǎn)上創(chuàng)建ASM實(shí)例... 32
六.????添加節(jié)點(diǎn)之--在新節(jié)點(diǎn)上創(chuàng)建數(shù)據(jù)庫實(shí)例... 39
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
RAC物理結(jié)構(gòu)
現(xiàn)在的RAC環(huán)境是二個(gè)節(jié)點(diǎn): dbp,dbs, 這個(gè)實(shí)驗(yàn)就是添加節(jié)點(diǎn)dbi。
dbp,dbs和dbi節(jié)點(diǎn)的信息規(guī)劃如下:
| 服務(wù)器主機(jī)名 | dbp | dbs | dbi |
| 公共IP地址(eth0) | 192.168.123.154 | 192.168.123.155 | 192.168.123.156 |
| 虛擬IP地址(eth0) | 192.168.123.130 | 192.168.123.131 | 192.168.123.132 |
| 私有IP地址(eth1) | 10.0.0.154 | 10.0.0.155 | 10.0.0.156 |
| ORACLE RAC SID | wxxrdb1 | wxxrdb2 | wxxrdb3 |
| 集群實(shí)例名稱 | crs(查看命令$CRS_HOME/bin/cemutlo -n) | ||
| OCR(oracle集群注冊(cè)表) | /dev/raw/raw1?? /dev/sdb1??????? 300M 1、$CRS_HOME/bin/ocrcheck 2、根據(jù)上述步驟1查到裸設(shè)備后,再執(zhí)行 raw -q /dev/raw/raw1 查得裸設(shè)備的major和minor號(hào)后,再根據(jù)以下查ASM設(shè)備的方法查得對(duì)應(yīng)的塊設(shè)備和計(jì)算大小。 | ||
| 表決磁盤(voting disk) | /dev/raw/raw2?? /dev/sdb2?????? 300M 查看命令: 1、$CRS_HOME/bin/crsctl query css votedisk 2、根據(jù)上述步驟1查到裸設(shè)備后,再執(zhí)行 raw -q /dev/raw/raw2 查得裸設(shè)備的major和minor號(hào)后,再根據(jù)以下查ASM設(shè)備的方法查得對(duì)應(yīng)的塊設(shè)備和計(jì)算大小。 | ||
| ASM | ASM_diskname:VOL1? For_DG:+DATA?Blockdev_name:/dev/sdc1 ?容量:6G ASM_diskname:VOL2? For_DG:+RECOVERY ?Blockdev_name:/dev/sdd1 ?容量:6G ASM_diskname: ARCH_DISK1? For_DG:+ARCH?Blockdev_name:/dev/sdd2 ?容量:5G ASM_diskname: ARCH_DISK2? For_DG:+ARCH?Blockdev_name:/dev/sdd3 ?容量:5G ? 檢查方法: 1、? oracleasm listdisks 查到所有的ASM diskname 2、? ls -ltr /dev/oracleasm/disks/VOL1 brw-rw---- 1 oracle dba 8, 33 02-12 00:16 /dev/oracleasm/disks/VOL1 查到VOL1的major是8,minor 是33 3、[root@dbp dev]# ls -ltr /dev | grep "8,.*33" brw-r----- 1 root disk???? 8,?? 33 2016-02-12 sdc1 ?? 根據(jù)VOL1的major和minor號(hào)查到的塊設(shè)備是/dev/sdc1 3、? 查看 /dev/sdc1 的大小: fdisk -l /dev/sdc1 或 blockdev --getsize /dev/sdc1 查得塊數(shù),再乘以512(OS塊大小)/1024/1024/1024 上述兩個(gè)命令計(jì)算的大小有差異,fdisk -l命令計(jì)算的大小比 blockdev命令計(jì)算的大,但blockdev命令計(jì)算的大小和v$asm_disk.total_mb 一樣差不多。 4、? 查看 ASM disk所屬的DG(Disk Group): select asmdg.name,asmd.group_number,asmd.path,asmd.total_mb,asmd.free_mb from v$asm_disk asmd,v$asm_diskgroup asmdg where asmd.group_number=asmdg.group_number; | ||
| 數(shù)據(jù)庫備份 | 無 | ||
?
一.安裝前準(zhǔn)備及OS安裝配置
同2個(gè)節(jié)點(diǎn)的類似,裝好虛擬操作系統(tǒng),配置好硬盤,網(wǎng)關(guān),IP地址,建立用戶等效性,建立用戶并創(chuàng)建相關(guān)目錄,修改linux參數(shù)等。
?
1、安裝并配置新節(jié)點(diǎn)的虛擬機(jī)
1.1、復(fù)制之前節(jié)點(diǎn)剛創(chuàng)建未配置RAC時(shí)的虛擬機(jī)或新創(chuàng)建一個(gè)虛擬機(jī)。
1.2、將之前節(jié)點(diǎn)創(chuàng)建虛擬機(jī)的.vmx配置文件中的以下部分復(fù)制到新節(jié)點(diǎn)虛擬機(jī)的.vmx配置文件中:
?????????? disk.locking= "FALSE" ????##創(chuàng)建ASM共享磁盤必須要配置此項(xiàng)
scsi1:0.deviceType = "disk"?? ##如果scsi1:0對(duì)應(yīng)的磁盤為共享磁盤,必須要配置此項(xiàng)
?????????? scsi1:2.deviceType= "disk"?? ##如果scsi1:2對(duì)應(yīng)的磁盤為共享磁盤,必須要配置此項(xiàng)
scsi1:0.fileName = "E:\VirtualMachines\ShareDisk\OCR_VOTEDISK.vmdk"
scsi1:0.mode= "independent-persistent"
scsi1:0.present= "TRUE"
scsi1:0.redo= ""
scsi1:0.writeThrough= "TRUE"
scsi1:1.deviceType= "disk"
scsi1:1.fileName= "E:\Virtual Machines\ShareDisk\ASM_DISK_ARCH_1.vmdk"
scsi1:1.mode= "independent-persistent"
scsi1:1.present= "TRUE"
scsi1:1.redo= ""
scsi1:1.writeThrough= "TRUE"
scsi1:2.deviceType= "disk"
scsi1:2.fileName= "E:\Virtual Machines\ShareDisk\ASM_DISK_ARCH_2.vmdk"
scsi1:2.mode= "independent-persistent"
scsi1:2.present= "TRUE"
scsi1:2.redo= ""
scsi1:2.writeThrough ="TRUE"
如果是復(fù)制之前節(jié)點(diǎn)創(chuàng)建的虛擬機(jī),側(cè)displayName 等參數(shù)也要改為新節(jié)點(diǎn)名字的參數(shù)。
?
2、節(jié)點(diǎn)三(dbi)的網(wǎng)絡(luò)配置
???????? 配置節(jié)點(diǎn)三dbi的兩個(gè)網(wǎng)卡(PublicNIC 和 Private NIC)的固定IP,Hostname, Gateway,配置情況見本文檔最上的節(jié)點(diǎn)規(guī)劃信息表,對(duì)應(yīng)的配置文件是:
???????? /etc/sysconfig/network-scripts/ifcfg-eth0??## Public NIC 的IP和網(wǎng)關(guān)配置
/etc/sysconfig/network-scripts/ifcfg-eth1??## Private NIC 的IP和網(wǎng)關(guān)配置
/etc/sysconfig/network??? ## 主機(jī)名配置
配置情況如下:
[root@dbi network-scripts]# cat ifcfg-eth0
# Intel Corporation 82545EM Gigabit Ethernet Controller(Copper)
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:ce:22:50
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=192.168.123.156
USERCTL=no
IPV6INIT=no
PEERDNS=yes
?
[root@dbi network-scripts]# cat ifcfg-eth1
# Intel Corporation 82545EM Gigabit Ethernet Controller(Copper)
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:ce:22:5a
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=10.0.0.156
USERCTL=no
IPV6INIT=no
PEERDNS=yes
?
[root@dbi sysconfig]# cat network???
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=dbi
##上面這個(gè)在文件修改主機(jī)名的方法需要重啟才能生效,而且是永久生效,要立即生效,還要再執(zhí)行一下命令:hostname dbi
?
也可以用root用戶登錄圖形界面配置或在安裝系統(tǒng)時(shí)配置。
?
修改完IP,網(wǎng)關(guān)等網(wǎng)絡(luò)配置之后,需要重啟網(wǎng)絡(luò)服務(wù)生效:
/etc/init.d/network restart
?
?
3、節(jié)點(diǎn)三(dbi)的時(shí)間同步配置
有多種方法可以實(shí)現(xiàn)時(shí)間同步,其中:
3.1、最簡(jiǎn)單的方法是使用ntpdate命令進(jìn)行時(shí)間同步,但使用ntpdate命令同步時(shí)間時(shí),ntpd服務(wù)必須要關(guān)閉。通過在各節(jié)點(diǎn)主機(jī)的crontab 中加入以下每分鐘向節(jié)點(diǎn)一同步時(shí)間的定時(shí)任務(wù):
* * * * * /usr/sbin/ntpdate 192.168.123.154
?
3.2、本例中,由于節(jié)點(diǎn)一dbp(192.168.123.154)已經(jīng)配置為NTP時(shí)間服務(wù)器,所以需要在節(jié)點(diǎn)三(dbi)中做如下配置:
???????? 3.2.1、在dbi節(jié)點(diǎn)的/etc/ntp.conf文件中配置后的內(nèi)容如下:
???????? server192.168.123.154 prefer
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
keys /etc/ntp/keys
?
3.2.2、在dbi節(jié)點(diǎn)及各節(jié)點(diǎn)的/etc/sysconfig/ntpd 文件中加入-x參數(shù),配置后的內(nèi)容如下:
[root@dbi tmp]#cat /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-x-u ntp:ntp -p /var/run/ntpd.pid"
?
# Set to 'yes' to sync hw clock aftersuccessful ntpdate
SYNC_HWCLOCK=no
?
# Additional options for ntpdate
NTPDATE_OPTIONS=""
?
RAC 對(duì)節(jié)點(diǎn)間時(shí)間較敏感,如果不同步在安裝clusterware 時(shí)后會(huì)報(bào)錯(cuò),而且在安裝vipca的時(shí)候也會(huì)報(bào)錯(cuò)。
?
3.3、然后,重啟 NTP 服務(wù):
?[root@dbi tmp]# /etc/init.d/ntpd restart
?[root@dbi tmp]# chkconfig --level 35 ntpd on? ##配置開機(jī)自動(dòng)啟動(dòng)ntpd服務(wù),必須執(zhí)行這個(gè)。
?
5、?安裝Oracle RAC依賴的操作系統(tǒng)軟件包
5.1、執(zhí)行以下命令檢查系統(tǒng)所需的軟件包是否已經(jīng)安裝:
rpm -q --qf'%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' \
binutils \
compat-db \
compat-libstdc++\
control-center \
gcc \
gcc-c++ \
glibc \
glibc-common \
gnome-libs \
libstdc++ \
libstdc++-devel\
make \
pdksh \
sysstat \
xscreensaver \
setarch \
glibc-devel \
libaio | sort
?
5.2、檢查發(fā)現(xiàn)如下軟件包沒有安裝:
packagecompat-db is not installed
packagecompat-libstdc++ is not installed? ##發(fā)現(xiàn)這個(gè)包安裝了,還是提示沒安裝,安裝后,不用理會(huì)這個(gè)提示
packagegnome-libs is not installed
package pdksh isnot installed
package sysstatis not installed
packagexscreensaver is not installed
?
mount掛載系統(tǒng)安裝盤的ISO鏡像文件,進(jìn)入光盤的/Server目錄下查看相關(guān)包進(jìn)行安裝。
?
?
6、?安裝oracleasm ASMlib軟件包
[root@dbi tmp]# ls -ltr
總計(jì) 252
-rw-r--r-- 1 root root? 90225 02-13 02:21 oracleasm-support-2.1.8-1.el5.x86_64.rpm
-rw-r--r-- 1 root root? 14176 02-13 02:21oracleasmlib-2.0.4-1.el5.x86_64.rpm
-rw-r--r-- 1 root root 137396 02-13 02:21oracleasm-2.6.18-238.el5-2.0.5-1.el5.x86_64.rpm
[root@dbi tmp]# rpm -Uvh oracleasm*
warning: oracleasm-2.6.18-238.el5-2.0.5-1.el5.x86_64.rpm:Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...???????????????########################################### [100%]
??1:oracleasm-support?????########################################### [ 33%]
??2:oracleasm-2.6.18-238.el########################################### [67%]
??3:oracleasmlib??????????########################################### [100%]
?
?
7、?修改各節(jié)點(diǎn)的/etc/hosts主機(jī)名解析文件
在各節(jié)點(diǎn)的/etc/hosts文件中加入節(jié)點(diǎn)三dbi主機(jī)的解析條目,修改后各節(jié)點(diǎn)主機(jī)的/etc/hosts內(nèi)容如下:
?
???????? 127.0.0.1?????????????? localhost.localdomain localhost
???????? #::1??????????? localhost6.localdomain6 localhost6
????????
???????? ##Configure for Public NIC(eth0)
???????? 192.168.123.154dbp
???????? 192.168.123.155dbs
???????? 192.168.123.155dbi
????????
???????? ##Configure for Private NIC(eth1)
???????? 10.0.0.154????? dbp-priv
???????? 10.0.0.155????? dbs-priv
???????? 10.0.0.156??????? ??dbi-priv
????????
???????? ##Configure for VIP(eth0:1)
???????? 192.168.123.130?dbp-vip
???????? 192.168.123.131?dbs-vip
???????? 192.168.123.132? dbi-vip
?
?
8、?建立用戶、配置環(huán)境變量及建立用戶等價(jià)性
8.1、創(chuàng)建dba用戶組和oracle用戶
[root@dbitmp]# groupadd -g 700 dba??
##創(chuàng)建dba用戶組,組ID必須要其它節(jié)點(diǎn)一樣,如700。這里由于其它節(jié)點(diǎn)的oracle用戶只存在一個(gè)用戶組dba,所以,只創(chuàng)建dba用戶組,不創(chuàng)建oinstall用戶組。一般來說,oracle用戶的主用戶組是oinstall,附屬組是dba的。
?
[root@dbitmp]# useradd -m -d /home/oracle -u 600 -g dba oracle
##創(chuàng)建oracle用戶,uid和用戶組必須要用其它節(jié)點(diǎn)一樣,如果oracle存在于是oinstall主組和dba附屬組,側(cè)創(chuàng)建oracle用戶的命令應(yīng)該是:[root@dbi tmp]# useradd -m -d /home/oracle -u 600 -g oinstall -G dbaoracle
?
[root@dbitmp]# passwd oracle ??##默認(rèn)新創(chuàng)建的用戶密碼為空,需要修改密碼
?
?
?
8.2、配置oracle用戶環(huán)境變量
將以下內(nèi)容添加到 /home/oracle/.bash_profile 文件中:
######## Configurefor Oracle environment variables ########
exportORACLE_BASE=/oracle
exportCRS_HOME=/oracle/product/crs
exportORACLE_HOME=/oracle/product/database
exportORACLE_SID=wxxrdb3
exportORACLE_UNQNAME=wxxrdb
#exportORACLE_TERM=xterm
exportTNS_ADMIN=$ORACLE_HOME/network/admin
exportORA_NLS10=$ORACLE_HOME/nls/data
exportPATH=$PATH:$CRS_HOME/bin:$ORACLE_HOME/bin
exportLANG=en_US.UTF-8
exportNLS_LANG=AMERICAN_AMERICA.ZHS16GBK
###########################End ###########################
8.3、建立用戶等價(jià)性
[root@dbi tmp]# su - oracle
[oracle@dbi tmp]$ mkdir -m 700 ~/.ssh?? ##-m參數(shù)表示權(quán)限位,相同于是 chmod700
[oracle@dbi tmp]$ ls -ld ~/.ssh
drwx------ 2 oracle dba 4096 02-13 02:41/home/oracle/.ssh
[oracle@dbi tmp]$ cd ~/.ssh
[oracle@dbi .ssh]$ ssh-keygen -t rsa
[oracle@dbi .ssh]$ ssh-keygen -t dsa
?
將dbp上將authorized_keys 文件copy到dbi:
[oracle@dbi .ssh]$ scpdbp:/home/oracle/.ssh/authorized_keys ./
?
[oracle@dbi .ssh]$ ls -ltr
total 24
-rw-r--r-- 1 oracle dba? 392 Feb 13 03:03 id_rsa.pub
-rw------- 1 oracle dba 1675 Feb 13 03:03id_rsa
-rw-r--r-- 1 oracle dba? 600 Feb 13 03:04 id_dsa.pub
-rw------- 1 oracle dba? 672 Feb 13 03:04 id_dsa
-rw-r--r-- 1 oracle dba? 401 Feb 13 03:09 known_hosts
-rw-r--r-- 1 oracle dba 1984 Feb 13 03:09authorized_keys
?
將dbi的id_rsa.pub 和id_dsa.pub 寫入authorized_keys:
[oracle@dbi .ssh]$ cat *.pub >>authorized_keys
?
將dbi上最新的authorized_keys 文件copy到dbp和dbs上:
[oracle@dbi .ssh]$ scp authorized_keysdbp:/home/oracle/.ssh/
[oracle@dbi .ssh]$ scp authorized_keys dbs:/home/oracle/.ssh/
?
在三個(gè)節(jié)點(diǎn)上用Oracle用戶分別ssh所有節(jié)點(diǎn)(必須和個(gè)節(jié)點(diǎn)都要執(zhí)行一次):
ssh dbp date
ssh dbp-priv date
ssh dbs date
ssh dbs-priv date
ssh dbi date
ssh dbi-priv date
?
?
9、?創(chuàng)建目錄結(jié)構(gòu)
mkdir -p /oracle/product/database
mkdir -p /oracle/product/crs
chown -R oracle:dba /oracle
chmod -R 755 /oracle
?
?
10、配置Linux系統(tǒng)參數(shù)
10.1、配置Linux內(nèi)核參數(shù)
vi /etc/sysctl.conf 加入以下參數(shù)內(nèi)容:
net.ipv4.ip_forward = 0
?
net.ipv4.conf.default.rp_filter = 1
?
net.ipv4.conf.default.accept_source_route = 0
?
kernel.sysrq = 0
?
kernel.core_uses_pid = 1
?
net.ipv4.tcp_syncookies = 1
?
kernel.msgmnb = 65536
?
kernel.msgmax = 65536
?
?
######## Configure for Oracle ########
kernel.shmall=2097152
kernel.shmmax=2147483648
kernel.shmmni=4096
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=1048576
net.core.wmem_max=1048576
???????? ???################ End #################
?
???????? 執(zhí)行 sysctl -p 立即生效上述內(nèi)核參數(shù):
???????? [root@dbi tmp]# sysctl –p
?
10.2、修改limits.conf 資源限制參數(shù)
vi /etc/security/limits.conf 加入以下內(nèi)容:
##如果使用 HugePage內(nèi)存技術(shù),添加下面2行:
#Oracle soft memlock 5242880
#Oracle hard memlock 5242880
?
######## Configure for Oracle ########
##文件句柄數(shù)
oracle? soft??? nofile?1024
oracle? hard??? nofile?65536
##進(jìn)程句柄數(shù)
oracle? soft??? nproc??2047
oracle? hard??? nproc??16384
################ End #################
查看oracle用戶的資源限制:
ulimit -a
?
?10.3、修改/etc/pam.d/login 登錄模塊文件
???????? vi/etc/pam.d/login加入以下內(nèi)容:
???????? session required/lib/security/pam_limits.so
?
?
11、配置hangcheck-timer 模塊
查找hangcheck-timer模塊位置:
[root@dbi tmp]# find /lib/modules -name"hangcheck-timer.ko"
/lib/modules/2.6.18-238.el5/kernel/drivers/char/hangcheck-timer.ko
?
?
?
配置系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載模塊,在/etc/rc.d/rc.local 中添加如下內(nèi)容:
/sbin/modprobehangcheck-timer
并執(zhí)行一次:
[root@dbi tmp]# /sbin/modprobe hangcheck-timer
?
配置hangcheck-timer參數(shù), 在/etc/modprobe.conf 中添加如下內(nèi)容:
options hangcheck-timer hangcheck_tick=10hangcheck_margin=30
?
確認(rèn)模塊加載成功:
[root@dbi tmp]# grep -i hangcheck /var/log/messages | tail-2
Feb 14 01:48:43 dbikernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, marginis 60 seconds).
Feb 14 01:48:43 dbikernel: Hangcheck: Using monotonic_clock().
? 注意:以上檢查顯示tick 180秒,margin 60秒,必須要重啟系統(tǒng)才能生效hangcheck_tick和hangcheck_margin新參數(shù)值的配置。
?
? 說明:hangcheck-timer模塊是用于是將故障的RAC節(jié)點(diǎn)進(jìn)行IO分離,即在hangcheck_tick配置的時(shí)間(單位秒)內(nèi)檢查到本機(jī)節(jié)點(diǎn)無響應(yīng)或已宕機(jī),就會(huì)將節(jié)點(diǎn)機(jī)器重啟,oracle會(huì)將該故障節(jié)點(diǎn)踢出集群。hangcheck_margin參數(shù)表示有時(shí)系統(tǒng)負(fù)載較高,無法及時(shí)響應(yīng),該參數(shù)表示最大延遲響應(yīng)時(shí)間,即hangcheck_tick是下限值,hangcheck_margin是上限值。hangcheck_tick默認(rèn)值是30秒,hangcheck_margin默認(rèn)值是180秒。
hangcheck-timer模塊兩次檢查的時(shí)間間隔要小于 hangcheck_tick + hangcheck_margin,而 CRS的misscount參數(shù)的值必須要大于hangcheck_tick + hangcheck_margin,因?yàn)?/span>CRS的misscount參數(shù)表示超過該參數(shù)時(shí)間(單位秒),沒收到故障節(jié)點(diǎn)的心跳消息,就會(huì)將故障節(jié)點(diǎn)踢出集群,進(jìn)行集群重構(gòu)(包括在正常節(jié)點(diǎn)的Crash Recovery)如果misscount的值小于hangcheck_tick +hangcheck_margin,就可能會(huì)導(dǎo)致故障節(jié)點(diǎn)還沒重啟,就將其踢出集群,但該故障節(jié)點(diǎn)還會(huì)向集群進(jìn)行操作,就會(huì)損壞數(shù)據(jù)庫,所以misscount參數(shù)的值必須要大于hangcheck_tick + hangcheck_margin,等節(jié)點(diǎn)重啟后,再進(jìn)行集群重構(gòu)。CRS的misscount參數(shù)值可以通過crsctl get css misscount命令獲得,通過 crsctl set css misscount n秒命令設(shè)置。
?
?
12、配置裸設(shè)備RAW(OCR和Votedisk使用的裸設(shè)備)
10g RAC的OCR磁盤和Votedisk表決磁盤都必須放在裸設(shè)備上,11g RAC側(cè)不用。
?
12.1、vi /etc/udev/rules.d/60-raw.rules 文件,添加如下內(nèi)容:
###############Configure for OCR and Votedisk of Oracle ###############
ACTION=="add",KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",ENV{MAJOR}=="8", ENV{MINOR}=="17", RUN+="/bin/raw/dev/raw/raw1 %M %m"
?
ACTION=="add",KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",ENV{MAJOR}=="8", ENV{MINOR}=="18", RUN+="/bin/raw/dev/raw/raw2 %M %m"
?
ACTION=="add",KERNEL=="raw[1-2]", OWNER="oracle", GROUP="dba",MODE="660"
#################################End ##################################
?
12.2、重啟udev服務(wù)進(jìn)行梆定raw設(shè)備:
[root@dbi tmp]# start_udev
啟動(dòng) udev:???????????????????????????????????????????????[確定]
?
12.3、查看梆定的raw設(shè)備,已經(jīng)梆定成功:
[root@dbi tmp]# ls -ltr /dev/raw
總計(jì) 0
crw-rw---- 1 oracledba 162, 1 02-14 13:21 raw1
crw-rw---- 1 oracledba 162, 2 02-14 13:21 raw2
查看裸設(shè)備梆定的塊設(shè)備的major和minor號(hào):
[root@dbi tmp]# raw -qa
/dev/raw/raw1:? bound to major 8, minor 17
/dev/raw/raw2:? bound to major 8, minor 18
根據(jù)major和minor號(hào)查找梆定的塊設(shè)備:
?[root@dbi tmp]# ls -ltr /dev | grep "8,[[:space:]]*1[7,8]"
brw-r----- 1 rootdisk???? 8,?? 18 2016-02-14 sdb2
brw-r----- 1 rootdisk???? 8,?? 17 2016-02-14 sdb1
檢查裸設(shè)備和梆定的塊設(shè)備的大小(塊數(shù))是一致的:
[root@dbi tmp]# blockdev --getsize /dev/raw/raw1
594342
[root@dbi tmp]# blockdev --getsize /dev/sdb1
594342
[root@dbi tmp]# blockdev --getsize /dev/raw/raw2
594405
[root@dbi tmp]# blockdev --getsize /dev/sdb2
594405
?
?
13、配置ASM磁盤
13.1、配置ASM:
[root@dbi tmp]# /etc/init.d/oracleasm configure
分別回答oracle、dba、y、y:
Default user to ownthe driver interface []: oracle?? ## 允許使用ASM驅(qū)動(dòng)接口的用戶
Default group to ownthe driver interface []: dba??? ## 允許使用ASM驅(qū)動(dòng)接口的用戶組
Start Oracle ASMlibrary driver on boot (y/n) [n]: y? ?## 開機(jī)啟動(dòng)ASM驅(qū)動(dòng)
Scan for Oracle ASMdisks on boot (y/n) [y]: y?????? ## 開機(jī)掃描ASM磁盤
Writing Oracle ASMlibrary driver configuration: done
Initializing theOracle ASMLib driver:????????????????????[? OK? ]
Scanning the systemfor Oracle ASMLib disks:??????????????[? OK? ]
?
13.2、顯示ASM配置情況:
[root@dbi tmp]# oracleasm configure
ORACLEASM_ENABLED=true
ORACLEASM_UID=oracle
ORACLEASM_GID=dba
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"
?
注意:/etc/init.d/oracleasmconfigure和 oracleasm configure的區(qū)別:
/etc/init.d/oracleasmconfigure 用于是啟動(dòng)ASM配置向?qū)нM(jìn)行配置ASM;
oracleasm configure 用于顯示當(dāng)前ASM的配置情況。
?
?
13.3、查看ASM磁盤:
[root@dbi tmp]# oracleasm listdisks
ARCH_DISK1
ARCH_DISK2
VOL1
VOL2
?
?
二.添加節(jié)點(diǎn)之--安裝Clusterware集群件到新節(jié)點(diǎn)
Oracle 集群件已經(jīng)安裝在集群上;這里的任務(wù)是將新節(jié)點(diǎn)添加到集群配置中。要執(zhí)行該任務(wù),需要執(zhí)行 Oracle 提供的名為 addnode 的實(shí)用程序,該工具位于 Clusterware 的主 oui/bin 目錄中。Oracle 集群件有兩個(gè)文件(Oracle 集群信息庫 (OCR) 和 Oracle 集群同步服務(wù) (CSS) 表決磁盤),它們包含有關(guān)該集群以及由 Oracle 集群件管理的應(yīng)用程序的信息。這些文件需要使用關(guān)于新節(jié)點(diǎn)的信息進(jìn)行更新。集群件安裝過程的第一步是驗(yàn)證新節(jié)點(diǎn)是否準(zhǔn)備好進(jìn)行安裝。
1、檢查硬件和操作系統(tǒng)配置
先看一下當(dāng)前集群成員:
[oracle@dbp tmp]$olsnodes -n
dbp???? 1
dbs???? 2
檢查硬件和系統(tǒng)配置,在其它任何一個(gè)正常節(jié)點(diǎn)上執(zhí)行(如節(jié)點(diǎn)一dbp或節(jié)點(diǎn)二dbs):
[oracle@dbp tmp]$ echo $CRS_HOME
/oracle/product/crs
[oracle@dbptmp]$ cd /oracle/product/crs/bin
[oracle@dbpbin]$ ./cluvfy stage -post hwos -ndbp,dbs,dbi -verbose??##只需在一個(gè)正常節(jié)點(diǎn)上執(zhí)行
ERROR:
Could not find a suitable set of interfaces for VIPs.? ##這個(gè)報(bào)錯(cuò)暫時(shí)不用理會(huì),繼續(xù)下面的操作
?
Node connectivity check failed.
?
?
Checking shared storage accessibility...
?
WARNING:
Package cvuqdisk not installed.
??????? dbp,dbi,dbs
?
?
Shared storage check failed on nodes "dbp,dbi,dbs".? ##這個(gè)報(bào)錯(cuò)暫時(shí)不用理會(huì),繼續(xù)下面的操作
?
Post-check forhardware and operating system setup was unsuccessful on all the nodes.
以上報(bào)錯(cuò):1)、不能連通VIP,因?yàn)楣?jié)點(diǎn)三dbi還沒有安裝集群件,所以vip是不通的,這個(gè)暫時(shí)不用理會(huì)。
2)、cvuqdisk這個(gè)支持共享存儲(chǔ)的軟件包在dbp,dbs,dbi三個(gè)節(jié)點(diǎn)都沒有安裝,這個(gè)軟件包在Oracle集群件的安裝包可以找到。
?
解決方法:
1)、設(shè)置環(huán)境變量CVUQDISK_GRP,使其指向作為 cvuqdisk的所有者所在的組(本例為 dba,因?yàn)闆]有oinstall用戶組):
[root@dbp tmp]#export CVUQDISK_GRP=dba???? ## root用戶執(zhí)行
??? 2)、在dbp,dbs,dbi三個(gè)節(jié)點(diǎn)安裝 cvuqdisk軟件包:
?????? [root@dbp tmp]# rpm -ivh cvuqdisk-1.0.9-1.rpm
3)、重新執(zhí)行檢查:
?? [oracle@dbp bin]$ ./cluvfy stage -post hwos -n dbp,dbs,dbi –verbose
不會(huì)報(bào) cvuqdisk 軟件包沒有安裝了,但是還會(huì)報(bào):
Could not find a suitable set ofinterfaces for VIPs.
Shared storage check failed on nodes"dbp,dbi,dbs".
這兩個(gè)錯(cuò)誤,先不用理會(huì),繼續(xù)以下的操作。
?
?
2、在安裝集群之前預(yù)檢查節(jié)點(diǎn)列表中的所有節(jié)點(diǎn)
[oracle@dbpbin]$ ./cluvfy stage -pre crsinst -ndbp,dbs,dbi -verbose?##只需在一個(gè)正常節(jié)點(diǎn)上執(zhí)行,這個(gè)會(huì)檢查所有節(jié)點(diǎn)的軟件包安裝情況等信息
報(bào)以下錯(cuò)誤:
Check: Existence of group "oinstall"
? Node Name???? Status??????????????????? Group ID???????????????
? ------------? ------------------------? ------------------------
? dbp?????????? does not exist??????????? N/A????????????????????
? dbi?????????? does not exist??????????? N/A????????????????????
? dbs?????????? does not exist??????????? N/A????????? ???????????
Result: Group existence check failed for"oinstall".? ##不用理會(huì),因?yàn)楸?/span>RAC環(huán)境只創(chuàng)建有dba用戶組,沒有oinstall用戶組,oinstall用戶組不是必須的。
?
Administrativeprivileges check failed.
?
ERROR:
Could not find a suitable set of interfaces for VIPs.
?
Result: Nodeconnectivity check failed.? ##這個(gè)報(bào)錯(cuò)暫時(shí)不用理會(huì),繼續(xù)下面的操作
?
?
3、執(zhí)行addNode.sh腳本安裝復(fù)制集群件到新節(jié)點(diǎn)
3.1、安裝復(fù)制集群件到新節(jié)點(diǎn)操作及過程截圖
[oracle@dbp bin]$ export DISPLAY=192.168.123.1:0.0
[oracle@dbp bin]$ cd $CRS_HOME/oui/bin
[oracle@dbp bin]$ ./addNode.sh
?
直接點(diǎn)擊”Next”
?
輸入新節(jié)點(diǎn)的對(duì)應(yīng)/etc/hosts的Public/Private/Vip 節(jié)點(diǎn)名,然后點(diǎn)擊“Next”
?
?
?
顯示添加集群新節(jié)點(diǎn)的概要信息,點(diǎn)擊”Install”
?
顯示添加集群件到新節(jié)點(diǎn)進(jìn)度
?
?
?
按提示,登錄root用戶,按順序依次在dbi(新節(jié)點(diǎn)),dbp(第一個(gè)節(jié)點(diǎn),執(zhí)行addNode.sh的節(jié)點(diǎn))執(zhí)行以上三個(gè)腳本文件:
步驟1:
[root@dbi tmp]# cd /oracle/oraInventory
[root@dbioraInventory]# ./orainstRoot.sh
Changing permissions of/oracle/oraInventory to 770.
Changing groupname of/oracle/oraInventory to dba.
The execution of thescript is complete
?
步驟2:
[root@dbp tmp]# cd /oracle/product/crs/install
[root@dbp install]# ./rootaddnode.sh
clscfg: EXISTINGconfiguration version 3 detected.
clscfg: version 3 is10G Release 2.
Attempting to add 1new nodes to the configuration
Using ports:CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node<nodenumber>: <nodename> <private interconnect name><hostname>
node 3: dbi dbi-privdbi
Creating OCR keys foruser 'root', privgrp 'root'..
Operation successful.
/oracle/product/crs/bin/srvctladd nodeapps -n dbi -A dbi-vip/255.255.255.0/eth0 -o /oracle/product/crs
?
步驟3:
[root@dbi ~]# cd /oracle/product/crs
[root@dbi crs]# ./root.sh
WARNING: directory'/oracle/product' is not owned by root
WARNING: directory'/oracle' is not owned by root
Checking to see ifOracle CRS stack is already configured
/etc/oracle does notexist. Creating it now.
OCR LOCATIONS =? /dev/raw/raw1
OCR backup directory'/oracle/product/crs/cdata/crs' does not exist. Creating now
Setting thepermissions on OCR backup directory
Setting up NSdirectories
Oracle ClusterRegistry configuration upgraded successfully
WARNING: directory'/oracle/product' is not owned by root
WARNING: directory'/oracle' is not owned by root
clscfg: EXISTINGconfiguration version 3 detected.
clscfg: version 3 is10G Release 2.
Successfullyaccumulated necessary OCR keys.
Using ports:CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node<nodenumber>: <nodename> <private interconnect name><hostname>
node 1: dbp dbp-privdbp
node 2: dbs dbs-privdbs
clscfg: Argumentscheck out successfully.
?
NO KEYS WERE WRITTEN.Supply -force parameter to override.
-force is destructiveand will destroy any previous cluster
configuration.
Oracle ClusterRegistry for cluster has already been initialized
Startup will bequeued to init within 90 seconds.
Adding daemons toinittab
Expecting the CRSdaemons to be up within 600 seconds.
CSS is active onthese nodes.
??????? dbp
??????? dbs
??????? dbi
CSS is active on allnodes.
Waiting for theOracle CRSD and EVMD to start
Waiting for theOracle CRSD and EVMD to start
Waiting for theOracle CRSD and EVMD to start
Waiting for theOracle CRSD and EVMD to start
Oracle CRS stack installedand running under init(1M)
Running vipca(silent)for configuring nodeapps
IP address "dbp-vip"has already been used. Enter an unused IP address.
提示:IP 地址 "dbp-vip"已被使用。請(qǐng)輸入一個(gè)未使用的 IP 地址。
解決方法:因?yàn)?/span> VIP已經(jīng)在所有節(jié)點(diǎn)(而非新節(jié)點(diǎn)dbi)上進(jìn)行了配置。我們手動(dòng)執(zhí)行 VIPCA(虛擬 IP配置助手)即可。點(diǎn)擊以上圖界面的”O(jiān)K”按鈕完成安裝,然后用Xmanager工具連到新節(jié)點(diǎn),在root用戶下執(zhí)行vipca:
[root@dbi crs]# export DISPLAY=192.168.123.1:0.0
[root@dbi crs]# cd /oracle/product/crs/bin
[root@dbi bin]# ./vipca
Exception in thread"main"
執(zhí)行 vipca 后,提示異常,查看日志文件$CRS_HOME/cfgtoollogs/vipca/vipca.log顯示缺少libXp的rpm包:
java.lang.UnsatisfiedLinkError:/oracle/product/crs/jdk/jre/lib/i386/libawt.so: libXp.so.6: cannot open sharedobject file: No such file or directory
解決方法:
1、? 安裝 libXp的rpm軟件包
[root@dbi tmp]# rpm -ivh libXp-1.0.0-8.i386.rpm
2、? vi $CRS_HOME/bin/vipca文件,在 export LD_ASSUME_KERNEL后加入unset LD_ASSUME_KERNEL
3.2、安裝集群件到新節(jié)點(diǎn)后檢查
在新節(jié)點(diǎn)完成集群件的安裝后,將在新節(jié)點(diǎn)產(chǎn)生如下動(dòng)作:
1)、/etc/init.d/目錄中創(chuàng)建下列文件:
[oracle@dbi tmp]$ ls -ltr /etc/init.d/init.*
-r-xr-xr-x 1 rootroot? 3182 Feb 14 18:46/etc/init.d/init.evmd
-r-xr-xr-x 1 rootroot 36794 Feb 14 18:46 /etc/init.d/init.cssd
-r-xr-xr-x 1 rootroot? 4706 Feb 14 18:46/etc/init.d/init.crsd
-r-xr-xr-x 1 rootroot? 1951 Feb 14 18:46/etc/init.d/init.crs
?
2)、新節(jié)點(diǎn)dbi中生成/etc/oraInst.loc文件,記錄oracleInventory的目錄位置:
[oracle@dbi bin]$ cat /etc/oraInst.loc
inventory_loc=/oracle/oraInventory
inst_group=dba
?
3)、/etc/inittab 文件加入了如下條目:
h1:35:respawn:/etc/init.d/init.evmdrun >/dev/null 2>&1 </dev/null
h2:35:respawn:/etc/init.d/init.cssdfatal >/dev/null 2>&1 </dev/null
h3:35:respawn:/etc/init.d/init.crsdrun >/dev/null 2>&1 </dev/null
?
4)、在所有節(jié)點(diǎn)執(zhí)行olsnodes 命令檢查集群件是否已經(jīng)注冊(cè)了所有節(jié)點(diǎn):
[oracle@dbi tmp]$ olsnodes -n
dbp???? 1
dbs???? 2
dbi???? 3
[oracle@dbp tmp]$ olsnodes -n
dbp???? 1
dbs???? 2
dbi???? 3
[oracle@dbs tmp]$ olsnodes -n
dbp???? 1
dbs???? 2
dbi???? 3
?
5)、生成 /etc/oratab文件,并加入以下條目:
[oracle@dbp wxxrdb]$ cat /etc/oratab
+ASM3:/oracle/product/database:N
wxxrdb:/oracle/product/database:N
?
6)、使用 crs_stat 命令在各節(jié)點(diǎn)檢查是否啟動(dòng)了集群服務(wù):
[oracle@dbi tmp]$crs_stat -t -v
Name?????????? Type?????????? R/RA?? F/FT??Target??? State???? Host
----------------------------------------------------------------------
ora.dbi.gsd??? application??? 0/5???0/0??? ONLINE??? ONLINE???dbi
ora.dbi.ons??? application??? 0/3???0/0? ??ONLINE???ONLINE??? dbi
ora.dbi.vip??? application??? 0/0???0/0??? ONLINE??? ONLINE???dbi
ora....SM1.asmapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbp
ora....BP.lsnrapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbp
ora.dbp.gsd??? application??? 0/5???0/0??? ONLINE??? ONLINE???dbp
ora.dbp.ons??? application??? 0/3???0/0??? ONLINE??? ONLINE???dbp
ora.dbp.vip??? application??? 0/0???0/0??? ONLINE??? ONLINE???dbp
ora....SM2.asmapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbs
ora....BS.lsnrapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbs
ora.dbs.gsd??? application??? 0/5???0/0??? ONLINE??? ONLINE???dbs
ora.dbs.ons??? application??? 0/3???0/0??? ONLINE??? ONLINE???dbs
ora.dbs.vip??? application??? 0/0???0/0??? ONLINE??? ONLINE???dbs
ora.wxxrdb.db? application???0/1??? 0/1??? ONLINE???ONLINE??? dbs
ora....b1.instapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbp
ora....b2.instapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbs
?
可以看到,dbi節(jié)點(diǎn)的gsd、ons、vip集群服務(wù)已經(jīng)成功啟動(dòng),查dbi節(jié)點(diǎn)的其它集群服務(wù),如asm、listener、instance服務(wù)需要在安裝和配置數(shù)據(jù)庫軟件后才會(huì)出現(xiàn)。
?
?
三.添加節(jié)點(diǎn)之--安裝數(shù)據(jù)庫軟件到新節(jié)點(diǎn)
1、執(zhí)行addNode.sh腳本安裝復(fù)制數(shù)據(jù)庫軟件到新節(jié)點(diǎn)
1.1、安裝復(fù)制數(shù)據(jù)庫軟件到新節(jié)點(diǎn)操作及過程截圖
Oracle 已經(jīng)提供了一個(gè)新的稱為addNode.sh 的可執(zhí)行文件,它位于 $ORACLE_HOME/oui/bin 目錄。用Oracle 用戶執(zhí)行該腳本即可以將數(shù)據(jù)庫軟件復(fù)制安裝到新節(jié)點(diǎn)。
?
在節(jié)點(diǎn)一上執(zhí)行:
[oracle@dbp tmp]$ export DISPLAY=192.168.123.1:0.0
[oracle@dbp tmp]$ cd $ORACLE_HOME/oui/bin
[oracle@dbp bin]$ ./addNode.sh
?
指定新節(jié)點(diǎn),然后點(diǎn)擊“Next”
?
顯示添加集群新節(jié)點(diǎn)的數(shù)據(jù)庫軟件概要信息,點(diǎn)擊”Install”
?
顯示添加數(shù)據(jù)庫軟件到新節(jié)點(diǎn)進(jìn)度
?
?
該錯(cuò)誤可忽略,點(diǎn)擊”Yes”,查看日志文件:
[root@dbi racg]# cd /oracle/product/database/log/dbp/racg
[root@dbi racg]# tail-5 imon_wxxrdb.log
?- OCIAQDeqArray
?
2016-02-1420:39:54.390: [??? RACG][1210632512][8059][1210632512][ora.wxxrdb.wxxrdb1.inst]: clsrrlbgthr: Error 25228ORA-25228: timeout or end-of-fetch during message dequeue fromSYS.SYS$SERVICE_METRICS
?- OCIAQDeqArray
?
?
在dbi節(jié)點(diǎn),使用root用戶登錄,執(zhí)行以上腳本文件:
[root@dbi racg]# cd /oracle/product/database
[root@dbi database]# ./root.sh
Running Oracle10root.sh script...
?
The followingenvironment variables are set as:
??? ORACLE_OWNER= oracle
??? ORACLE_HOME=? /oracle/product/database
?
Enter the fullpathname of the local bin directory: [/usr/local/bin]:
?? Copying dbhome to /usr/local/bin ...
?? Copying oraenv to /usr/local/bin ...
?? Copying coraenv to /usr/local/bin ...
?
?
Creating /etc/oratabfile...
Entries will be addedto the /etc/oratab file as needed by
DatabaseConfiguration Assistant when a database is created
Finished runninggeneric part of root.sh script.
Now product-specificroot actions will be performed.
?
最后在安裝向?qū)Ы缑嬷悬c(diǎn)擊“Exit->Yes”完成新節(jié)點(diǎn)的數(shù)據(jù)庫軟件安裝。
?
?
?
?
?
?
四.添加節(jié)點(diǎn)之--在新節(jié)點(diǎn)上配置監(jiān)聽器
在新節(jié)點(diǎn)oracle用戶上運(yùn)行 netca:
[oracle@dbi tmp]$ export DISPLAY=192.168.123.1:0.0
[oracle@dbi tmp]$ netca
選擇 “Cluster configuration”,點(diǎn)擊”Next”
?
只選擇新節(jié)點(diǎn)dbi,點(diǎn)擊”Next”
?
?
?
選擇”Listener configuration”,點(diǎn)擊”Next”
?
默認(rèn)選擇”Add”,點(diǎn)擊”Next”
?
保留默認(rèn)監(jiān)聽名:LISTENER,點(diǎn)擊”Next”
?
選擇TCP協(xié)議,點(diǎn)擊“Next”
?
如果沒有端口號(hào)沖突,就選擇默認(rèn)端口號(hào)1521,點(diǎn)擊”Next”
?
選擇”No”,不再配置另一個(gè)監(jiān)聽器,點(diǎn)擊”Next”,最后點(diǎn)擊”Finished”完成。
?
配置完監(jiān)聽器后,會(huì)自動(dòng)將監(jiān)聽服務(wù)注冊(cè)到CRS中,執(zhí)行crs_stat -t -v檢查:
?
?
五.添加節(jié)點(diǎn)之--在新節(jié)點(diǎn)上創(chuàng)建ASM實(shí)例
在節(jié)點(diǎn)一dbp上執(zhí)行dbca為dbi節(jié)點(diǎn)創(chuàng)建ASM實(shí)例:
[oracle@dbp tmp]$ export DISPLAY=192.168.123.1:0.0
[oracle@dbp tmp]$ dbca
選擇”O(jiān)racle Real Application Clusters database”,點(diǎn)擊”Next”
?
選擇”Configure Automatic Storage Management”,點(diǎn)擊”Next”
?
選擇dbp和dbi節(jié)點(diǎn),這里dbp節(jié)點(diǎn)是必選的,作為父節(jié)點(diǎn),然后向dbi節(jié)點(diǎn)進(jìn)行extend。在dbi上安裝ASM實(shí)例,點(diǎn)擊”Next”
?
點(diǎn)擊”Yes”
?
點(diǎn)擊”ASM Parameters”,可以查看一下下面的”ASM Parameters”ASM參數(shù)列表。
?
創(chuàng)建ASM實(shí)例的相關(guān)目錄:
[oracle@dbi +ASM]$ cd $ORACLE_BASE/admin/+ASM
[oracle@dbi +ASM]$ mkdir bdump cdump hdump pfile udump
?
輸入之前ASM實(shí)例的SYS用戶密碼,和選擇創(chuàng)建pfile文件,如果選擇spfile文件會(huì)報(bào)錯(cuò),點(diǎn)擊”Next”
?
?
點(diǎn)擊”O(jiān)K”,開始創(chuàng)建ASM實(shí)例。
?
?
?
檢查 $ORACLE_HOME/dbs 目錄下 $ORACLE_BASE/admin/+ASM/pfile 目錄下已經(jīng)生成了pfile文件:
[oracle@dbi dbs]$ ls-ltr init*ASM*
lrwxrwxrwx 1 oracledba 33 Feb 14 21:56 init+ASM3.ora -> /oracle/admin/+ASM/pfile/init.ora
?
所有節(jié)點(diǎn)的ASM實(shí)例配置的ASM Diskgroup(ASM磁盤組)都必須顯示出來,然后點(diǎn)擊”Finish”
?
點(diǎn)擊”No”完成新節(jié)點(diǎn)的ASM實(shí)例的創(chuàng)建
?
執(zhí)行 crs_stat -t -v 檢查dbi節(jié)點(diǎn)的ASM實(shí)例已經(jīng)正常online,如下:
[oracle@dbi tmp]$ crs_stat -t -v
Name?????????? Type?????????? R/RA?? F/FT??Target??? State???? Host???????
----------------------------------------------------------------------
ora....SM3.asm application??? 0/5???0/0??? ONLINE??? ONLINE???dbi????????
ora....BI.lsnrapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbi????????
ora.dbi.gsd??? application??? 0/5???0/0??? ONLINE??? ONLINE???dbi????????
ora.dbi.ons??? application??? 0/3???0/0??? ONLINE??? ONLINE???dbi????????
ora.dbi.vip??? application??? 0/0???0/0??? ONLINE??? ONLINE???dbi????????
ora....SM1.asmapplication??? 0/5?? ?0/0???ONLINE??? ONLINE??? dbp????????
ora....BP.lsnrapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbp????????
ora.dbp.gsd??? application??? 0/5???0/0??? ONLINE??? ONLINE???dbp????????
ora.dbp.ons??? application??? 0/3???0/0??? ONLINE??? ONLINE ???dbp????????
ora.dbp.vip??? application??? 0/0???0/0??? ONLINE??? ONLINE???dbp????????
ora....SM2.asmapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbs????????
ora....BS.lsnrapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbs????????
ora.dbs.gsd??? application??? 0/5???0/0??? ONLINE??? ONLINE???dbs????????
ora.dbs.ons??? application??? 0/3???0/0??? ONLINE??? ONLINE???dbs????????
ora.dbs.vip??? application??? 0/0???0/0??? ONLINE??? ONLINE???dbs????????
ora.wxxrdb.db? application???0/1 ???0/1??? ONLINE???ONLINE??? dbs????????
ora....b1.instapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbp????????
ora....b2.instapplication??? 0/5??? 0/0???ONLINE??? ONLINE??? dbs????????
?
在新節(jié)點(diǎn)dbi上登錄ASM實(shí)例檢查狀態(tài)正常:
[oracle@dbi tmp]$ export ORACLE_SID=+ASM3
[oracle@dbi tmp]$ asmcmd -p
ASMCMD [+] >ls??
ARCH/
DATA/
RECOVERY/
?
SQL> selectinst_id,instance_number,instance_name,host_name,status from gv$instance;
?
INST_ID INSTANCE_NUMBER INSTANCE_NAME?? HOST_NAME?STATUS
------- --------------- --------------- --------------------
????? 3?????????????? 3 +ASM3?????????? dbi??????? STARTED
????? 2?????????????? 2 +ASM2?????????? dbs??????? STARTED
????? 1?????????????? 1 +ASM1?????????? dbp??????? STARTED
?
?
六.添加節(jié)點(diǎn)之--在新節(jié)點(diǎn)上創(chuàng)建數(shù)據(jù)庫實(shí)例
?
在節(jié)點(diǎn)一dbp上執(zhí)行dbca為dbi節(jié)點(diǎn)創(chuàng)建數(shù)據(jù)庫實(shí)例:
[oracle@dbp tmp]$ export DISPLAY=192.168.123.1:0.0
[oracle@dbp tmp]$ dbca
?
?
?
選擇”O(jiān)racle Real Application Clusters database”,點(diǎn)擊”Next”
?
?
選擇”Instance Management”,點(diǎn)擊”Next”
?
選擇”Add an instance”,點(diǎn)擊”Next”
?
輸入數(shù)據(jù)庫的sys用戶和密碼,點(diǎn)擊”Next”
?
顯示目前存在活動(dòng)的數(shù)據(jù)庫實(shí)例,點(diǎn)擊”Next”
?
選擇要添加實(shí)例的節(jié)點(diǎn),這里必須要選擇新節(jié)點(diǎn)dbi,點(diǎn)擊”Next”
?
這里點(diǎn)擊下一步后,會(huì)提示 The local node instance wxxrdb1 is not running。檢查wxxrdb1實(shí)例是已經(jīng)正常運(yùn)行在dbp節(jié)點(diǎn)上的,重啟集群所有的服務(wù)后,再重新dbca到這一步,還是提示The local node instance wxxrdb1 is not running。不知道是什么原因,不知道是否是10.2.0.1.0版本的bug。可以嘗試以下兩種方法重試:
1)、在第一個(gè)節(jié)點(diǎn)中的登錄sqlplus /as sysdba,重新啟動(dòng)實(shí)例:
SQL> shutdownimmediate;
SQL> startup;
? 然后再執(zhí)行 dbca
?
2)、可以嘗試在其它正常的節(jié)點(diǎn)(非新增節(jié)點(diǎn)),如第二節(jié)點(diǎn)dbs中執(zhí)行dbca
本次操作是選擇了上面第一種方法在sqlplus中重啟實(shí)例,再執(zhí)行dbca重試就可以了,使用集群管理命令重啟實(shí)例,如:
srvctl stop instance -d wxxrdb -i wxxrdb1
srvctl start instance -d wxxrdb -i wxxrdb1
或使用重啟數(shù)據(jù)庫和實(shí)例命令,如:
srvctl stop database -d wxxrdb -o immediate
srvctl start database -d wxxrdb -o open
都是不可以的,執(zhí)行dbca創(chuàng)建新節(jié)點(diǎn)實(shí)例時(shí)會(huì)報(bào)如上The local node instance wxxrdb1 is not running的錯(cuò)誤。
?
點(diǎn)擊”File Location Variables”顯示如上圖的窗口,顯示的SID是 wxxrdb1,這個(gè)不用理會(huì),這個(gè)是指執(zhí)行dbca的實(shí)例ID,不是指新節(jié)點(diǎn)的實(shí)例ID,新節(jié)點(diǎn)的實(shí)例ID是wxxrdb3。
點(diǎn)擊”Fnish”后,如下所示:
?
?
顯示新節(jié)點(diǎn)實(shí)例wxxrdb3的概要信息,點(diǎn)擊”O(jiān)K”,如果出現(xiàn)如下錯(cuò)誤提示:
?
?
表示每個(gè)節(jié)點(diǎn)使用的歸檔目錄不是ASM共享磁盤目錄,而是本地目錄,因?yàn)槭窃赿bp節(jié)點(diǎn)上使用dbca命令創(chuàng)建新節(jié)點(diǎn)dbi的數(shù)據(jù)庫實(shí)例,可能是從dbp節(jié)點(diǎn)的數(shù)據(jù)庫實(shí)例wxxrdb1上讀取了參數(shù)值(log_archive_dest_1='location=/wxxrdb1_arch'),而dbi節(jié)點(diǎn)還沒有創(chuàng)建/wxxrdb1_arch這個(gè)目錄,所以會(huì)報(bào)錯(cuò),在dbi節(jié)點(diǎn)用root用戶創(chuàng)建該目錄并修改為oracle屬主權(quán)限:
[root@dbi tmp]# mkdir -m 755 /wxxrdb1_arch
[root@dbi tmp]# chown oracle:dba /wxxrdb1_arch
然后再重試即可。
?
?
開始創(chuàng)建新節(jié)點(diǎn)的數(shù)據(jù)庫實(shí)例
?
新節(jié)點(diǎn)的數(shù)據(jù)庫實(shí)例創(chuàng)建完成,點(diǎn)擊”No”退出向?qū)Ы缑妗?/p>
?
最后,在各節(jié)點(diǎn)執(zhí)行 crs_stat -t -v 命令檢查新節(jié)點(diǎn)dbi的數(shù)據(jù)庫實(shí)例wxxrdb3是否已經(jīng)注冊(cè)到了CRS,并且是否已經(jīng)成功online:
?
在sqlplus中檢查各實(shí)例都已經(jīng)成功open:
SQL> selectinst_id,instance_name,host_name,thread#,status from gv$instance;
?
?? INST_ID INSTANCE_NAME??? HOST_NAME???? THREAD# STATUS
---------- ---------------- -------------------- --------
???????? 3 wxxrdb3????????? dbi???????????????? 3 OPEN
???????? 2 wxxrdb2????????? dbs???????????????? 2 OPEN
???????? 1 wxxrdb1????????? dbp???????????????? 1 OPEN
?
OK,本次添加RAC節(jié)點(diǎn)的操作成功圓滿完成!!!
總結(jié)
以上是生活随笔為你收集整理的(超详细)Oracle 10g RAC 添加节点实验操作总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JASS萌新学习指南(1.1)
- 下一篇: 本页面是由KSWEB生成的web包