(超详细)Oracle 10g RAC 添加节点实验操作总结
Oracle 10g RAC 添加節點實驗操作總結
?
目? 錄
?
RAC物理結構...3
一. 安裝前準備及OS安裝配置... 4
1、安裝并配置新節點的虛擬機...4
2、節點三(dbi)的網絡配置...4
3、節點三(dbi)的時間同步配置...5
5、??安裝Oracle RAC依賴的操作系統軟件包... 6
6、??安裝oracleasm ASMlib軟件包... 7
7、??修改各節點的/etc/hosts主機名解析文件... 7
8、??建立用戶、配置環境變量及建立用戶等價性... 8
9、??創建目錄結構... 10
10、配置Linux系統參數...10
11、配置hangcheck-timer 模塊... 11
12、配置裸設備RAW(OCR和Votedisk使用的裸設備)12
13、配置ASM磁盤...13
二. 添加節點之--安裝Clusterware集群件到新節點... 14
1、??檢查硬件和操作系統配置... 14
2、??在安裝集群之前預檢查節點列表中的所有節點... 15
3、??執行addNode.sh腳本安裝復制集群件到新節點... 16
三.????添加節點之--安裝數據庫軟件到新節點... 23
1、執行addNode.sh腳本安裝復制數據庫軟件到新節點...23
四.????添加節點之--在新節點上配置監聽器... 28
五.????添加節點之--在新節點上創建ASM實例... 32
六.????添加節點之--在新節點上創建數據庫實例... 39
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
RAC物理結構
現在的RAC環境是二個節點: dbp,dbs, 這個實驗就是添加節點dbi。
dbp,dbs和dbi節點的信息規劃如下:
| 服務器主機名 | 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 |
| 集群實例名稱 | crs(查看命令$CRS_HOME/bin/cemutlo -n) | ||
| OCR(oracle集群注冊表) | /dev/raw/raw1?? /dev/sdb1??????? 300M 1、$CRS_HOME/bin/ocrcheck 2、根據上述步驟1查到裸設備后,再執行 raw -q /dev/raw/raw1 查得裸設備的major和minor號后,再根據以下查ASM設備的方法查得對應的塊設備和計算大小。 | ||
| 表決磁盤(voting disk) | /dev/raw/raw2?? /dev/sdb2?????? 300M 查看命令: 1、$CRS_HOME/bin/crsctl query css votedisk 2、根據上述步驟1查到裸設備后,再執行 raw -q /dev/raw/raw2 查得裸設備的major和minor號后,再根據以下查ASM設備的方法查得對應的塊設備和計算大小。 | ||
| 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 ?? 根據VOL1的major和minor號查到的塊設備是/dev/sdc1 3、? 查看 /dev/sdc1 的大小: fdisk -l /dev/sdc1 或 blockdev --getsize /dev/sdc1 查得塊數,再乘以512(OS塊大小)/1024/1024/1024 上述兩個命令計算的大小有差異,fdisk -l命令計算的大小比 blockdev命令計算的大,但blockdev命令計算的大小和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; | ||
| 數據庫備份 | 無 | ||
?
一.安裝前準備及OS安裝配置
同2個節點的類似,裝好虛擬操作系統,配置好硬盤,網關,IP地址,建立用戶等效性,建立用戶并創建相關目錄,修改linux參數等。
?
1、安裝并配置新節點的虛擬機
1.1、復制之前節點剛創建未配置RAC時的虛擬機或新創建一個虛擬機。
1.2、將之前節點創建虛擬機的.vmx配置文件中的以下部分復制到新節點虛擬機的.vmx配置文件中:
?????????? disk.locking= "FALSE" ????##創建ASM共享磁盤必須要配置此項
scsi1:0.deviceType = "disk"?? ##如果scsi1:0對應的磁盤為共享磁盤,必須要配置此項
?????????? scsi1:2.deviceType= "disk"?? ##如果scsi1:2對應的磁盤為共享磁盤,必須要配置此項
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"
如果是復制之前節點創建的虛擬機,側displayName 等參數也要改為新節點名字的參數。
?
2、節點三(dbi)的網絡配置
???????? 配置節點三dbi的兩個網卡(PublicNIC 和 Private NIC)的固定IP,Hostname, Gateway,配置情況見本文檔最上的節點規劃信息表,對應的配置文件是:
???????? /etc/sysconfig/network-scripts/ifcfg-eth0??## Public NIC 的IP和網關配置
/etc/sysconfig/network-scripts/ifcfg-eth1??## Private NIC 的IP和網關配置
/etc/sysconfig/network??? ## 主機名配置
配置情況如下:
[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
##上面這個在文件修改主機名的方法需要重啟才能生效,而且是永久生效,要立即生效,還要再執行一下命令:hostname dbi
?
也可以用root用戶登錄圖形界面配置或在安裝系統時配置。
?
修改完IP,網關等網絡配置之后,需要重啟網絡服務生效:
/etc/init.d/network restart
?
?
3、節點三(dbi)的時間同步配置
有多種方法可以實現時間同步,其中:
3.1、最簡單的方法是使用ntpdate命令進行時間同步,但使用ntpdate命令同步時間時,ntpd服務必須要關閉。通過在各節點主機的crontab 中加入以下每分鐘向節點一同步時間的定時任務:
* * * * * /usr/sbin/ntpdate 192.168.123.154
?
3.2、本例中,由于節點一dbp(192.168.123.154)已經配置為NTP時間服務器,所以需要在節點三(dbi)中做如下配置:
???????? 3.2.1、在dbi節點的/etc/ntp.conf文件中配置后的內容如下:
???????? server192.168.123.154 prefer
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
keys /etc/ntp/keys
?
3.2.2、在dbi節點及各節點的/etc/sysconfig/ntpd 文件中加入-x參數,配置后的內容如下:
[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 對節點間時間較敏感,如果不同步在安裝clusterware 時后會報錯,而且在安裝vipca的時候也會報錯。
?
3.3、然后,重啟 NTP 服務:
?[root@dbi tmp]# /etc/init.d/ntpd restart
?[root@dbi tmp]# chkconfig --level 35 ntpd on? ##配置開機自動啟動ntpd服務,必須執行這個。
?
5、?安裝Oracle RAC依賴的操作系統軟件包
5.1、執行以下命令檢查系統所需的軟件包是否已經安裝:
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、檢查發現如下軟件包沒有安裝:
packagecompat-db is not installed
packagecompat-libstdc++ is not installed? ##發現這個包安裝了,還是提示沒安裝,安裝后,不用理會這個提示
packagegnome-libs is not installed
package pdksh isnot installed
package sysstatis not installed
packagexscreensaver is not installed
?
mount掛載系統安裝盤的ISO鏡像文件,進入光盤的/Server目錄下查看相關包進行安裝。
?
?
6、?安裝oracleasm ASMlib軟件包
[root@dbi tmp]# ls -ltr
總計 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、?修改各節點的/etc/hosts主機名解析文件
在各節點的/etc/hosts文件中加入節點三dbi主機的解析條目,修改后各節點主機的/etc/hosts內容如下:
?
???????? 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、?建立用戶、配置環境變量及建立用戶等價性
8.1、創建dba用戶組和oracle用戶
[root@dbitmp]# groupadd -g 700 dba??
##創建dba用戶組,組ID必須要其它節點一樣,如700。這里由于其它節點的oracle用戶只存在一個用戶組dba,所以,只創建dba用戶組,不創建oinstall用戶組。一般來說,oracle用戶的主用戶組是oinstall,附屬組是dba的。
?
[root@dbitmp]# useradd -m -d /home/oracle -u 600 -g dba oracle
##創建oracle用戶,uid和用戶組必須要用其它節點一樣,如果oracle存在于是oinstall主組和dba附屬組,側創建oracle用戶的命令應該是:[root@dbi tmp]# useradd -m -d /home/oracle -u 600 -g oinstall -G dbaoracle
?
[root@dbitmp]# passwd oracle ??##默認新創建的用戶密碼為空,需要修改密碼
?
?
?
8.2、配置oracle用戶環境變量
將以下內容添加到 /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、建立用戶等價性
[root@dbi tmp]# su - oracle
[oracle@dbi tmp]$ mkdir -m 700 ~/.ssh?? ##-m參數表示權限位,相同于是 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/
?
在三個節點上用Oracle用戶分別ssh所有節點(必須和個節點都要執行一次):
ssh dbp date
ssh dbp-priv date
ssh dbs date
ssh dbs-priv date
ssh dbi date
ssh dbi-priv date
?
?
9、?創建目錄結構
mkdir -p /oracle/product/database
mkdir -p /oracle/product/crs
chown -R oracle:dba /oracle
chmod -R 755 /oracle
?
?
10、配置Linux系統參數
10.1、配置Linux內核參數
vi /etc/sysctl.conf 加入以下參數內容:
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 #################
?
???????? 執行 sysctl -p 立即生效上述內核參數:
???????? [root@dbi tmp]# sysctl –p
?
10.2、修改limits.conf 資源限制參數
vi /etc/security/limits.conf 加入以下內容:
##如果使用 HugePage內存技術,添加下面2行:
#Oracle soft memlock 5242880
#Oracle hard memlock 5242880
?
######## Configure for Oracle ########
##文件句柄數
oracle? soft??? nofile?1024
oracle? hard??? nofile?65536
##進程句柄數
oracle? soft??? nproc??2047
oracle? hard??? nproc??16384
################ End #################
查看oracle用戶的資源限制:
ulimit -a
?
?10.3、修改/etc/pam.d/login 登錄模塊文件
???????? vi/etc/pam.d/login加入以下內容:
???????? 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
?
?
?
配置系統啟動時自動加載模塊,在/etc/rc.d/rc.local 中添加如下內容:
/sbin/modprobehangcheck-timer
并執行一次:
[root@dbi tmp]# /sbin/modprobe hangcheck-timer
?
配置hangcheck-timer參數, 在/etc/modprobe.conf 中添加如下內容:
options hangcheck-timer hangcheck_tick=10hangcheck_margin=30
?
確認模塊加載成功:
[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秒,必須要重啟系統才能生效hangcheck_tick和hangcheck_margin新參數值的配置。
?
? 說明:hangcheck-timer模塊是用于是將故障的RAC節點進行IO分離,即在hangcheck_tick配置的時間(單位秒)內檢查到本機節點無響應或已宕機,就會將節點機器重啟,oracle會將該故障節點踢出集群。hangcheck_margin參數表示有時系統負載較高,無法及時響應,該參數表示最大延遲響應時間,即hangcheck_tick是下限值,hangcheck_margin是上限值。hangcheck_tick默認值是30秒,hangcheck_margin默認值是180秒。
hangcheck-timer模塊兩次檢查的時間間隔要小于 hangcheck_tick + hangcheck_margin,而 CRS的misscount參數的值必須要大于hangcheck_tick + hangcheck_margin,因為CRS的misscount參數表示超過該參數時間(單位秒),沒收到故障節點的心跳消息,就會將故障節點踢出集群,進行集群重構(包括在正常節點的Crash Recovery)如果misscount的值小于hangcheck_tick +hangcheck_margin,就可能會導致故障節點還沒重啟,就將其踢出集群,但該故障節點還會向集群進行操作,就會損壞數據庫,所以misscount參數的值必須要大于hangcheck_tick + hangcheck_margin,等節點重啟后,再進行集群重構。CRS的misscount參數值可以通過crsctl get css misscount命令獲得,通過 crsctl set css misscount n秒命令設置。
?
?
12、配置裸設備RAW(OCR和Votedisk使用的裸設備)
10g RAC的OCR磁盤和Votedisk表決磁盤都必須放在裸設備上,11g RAC側不用。
?
12.1、vi /etc/udev/rules.d/60-raw.rules 文件,添加如下內容:
###############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服務進行梆定raw設備:
[root@dbi tmp]# start_udev
啟動 udev:???????????????????????????????????????????????[確定]
?
12.3、查看梆定的raw設備,已經梆定成功:
[root@dbi tmp]# ls -ltr /dev/raw
總計 0
crw-rw---- 1 oracledba 162, 1 02-14 13:21 raw1
crw-rw---- 1 oracledba 162, 2 02-14 13:21 raw2
查看裸設備梆定的塊設備的major和minor號:
[root@dbi tmp]# raw -qa
/dev/raw/raw1:? bound to major 8, minor 17
/dev/raw/raw2:? bound to major 8, minor 18
根據major和minor號查找梆定的塊設備:
?[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
檢查裸設備和梆定的塊設備的大小(塊數)是一致的:
[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驅動接口的用戶
Default group to ownthe driver interface []: dba??? ## 允許使用ASM驅動接口的用戶組
Start Oracle ASMlibrary driver on boot (y/n) [n]: y? ?## 開機啟動ASM驅動
Scan for Oracle ASMdisks on boot (y/n) [y]: y?????? ## 開機掃描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的區別:
/etc/init.d/oracleasmconfigure 用于是啟動ASM配置向導進行配置ASM;
oracleasm configure 用于顯示當前ASM的配置情況。
?
?
13.3、查看ASM磁盤:
[root@dbi tmp]# oracleasm listdisks
ARCH_DISK1
ARCH_DISK2
VOL1
VOL2
?
?
二.添加節點之--安裝Clusterware集群件到新節點
Oracle 集群件已經安裝在集群上;這里的任務是將新節點添加到集群配置中。要執行該任務,需要執行 Oracle 提供的名為 addnode 的實用程序,該工具位于 Clusterware 的主 oui/bin 目錄中。Oracle 集群件有兩個文件(Oracle 集群信息庫 (OCR) 和 Oracle 集群同步服務 (CSS) 表決磁盤),它們包含有關該集群以及由 Oracle 集群件管理的應用程序的信息。這些文件需要使用關于新節點的信息進行更新。集群件安裝過程的第一步是驗證新節點是否準備好進行安裝。
1、檢查硬件和操作系統配置
先看一下當前集群成員:
[oracle@dbp tmp]$olsnodes -n
dbp???? 1
dbs???? 2
檢查硬件和系統配置,在其它任何一個正常節點上執行(如節點一dbp或節點二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??##只需在一個正常節點上執行
ERROR:
Could not find a suitable set of interfaces for VIPs.? ##這個報錯暫時不用理會,繼續下面的操作
?
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".? ##這個報錯暫時不用理會,繼續下面的操作
?
Post-check forhardware and operating system setup was unsuccessful on all the nodes.
以上報錯:1)、不能連通VIP,因為節點三dbi還沒有安裝集群件,所以vip是不通的,這個暫時不用理會。
2)、cvuqdisk這個支持共享存儲的軟件包在dbp,dbs,dbi三個節點都沒有安裝,這個軟件包在Oracle集群件的安裝包可以找到。
?
解決方法:
1)、設置環境變量CVUQDISK_GRP,使其指向作為 cvuqdisk的所有者所在的組(本例為 dba,因為沒有oinstall用戶組):
[root@dbp tmp]#export CVUQDISK_GRP=dba???? ## root用戶執行
??? 2)、在dbp,dbs,dbi三個節點安裝 cvuqdisk軟件包:
?????? [root@dbp tmp]# rpm -ivh cvuqdisk-1.0.9-1.rpm
3)、重新執行檢查:
?? [oracle@dbp bin]$ ./cluvfy stage -post hwos -n dbp,dbs,dbi –verbose
不會報 cvuqdisk 軟件包沒有安裝了,但是還會報:
Could not find a suitable set ofinterfaces for VIPs.
Shared storage check failed on nodes"dbp,dbi,dbs".
這兩個錯誤,先不用理會,繼續以下的操作。
?
?
2、在安裝集群之前預檢查節點列表中的所有節點
[oracle@dbpbin]$ ./cluvfy stage -pre crsinst -ndbp,dbs,dbi -verbose?##只需在一個正常節點上執行,這個會檢查所有節點的軟件包安裝情況等信息
報以下錯誤:
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".? ##不用理會,因為本RAC環境只創建有dba用戶組,沒有oinstall用戶組,oinstall用戶組不是必須的。
?
Administrativeprivileges check failed.
?
ERROR:
Could not find a suitable set of interfaces for VIPs.
?
Result: Nodeconnectivity check failed.? ##這個報錯暫時不用理會,繼續下面的操作
?
?
3、執行addNode.sh腳本安裝復制集群件到新節點
3.1、安裝復制集群件到新節點操作及過程截圖
[oracle@dbp bin]$ export DISPLAY=192.168.123.1:0.0
[oracle@dbp bin]$ cd $CRS_HOME/oui/bin
[oracle@dbp bin]$ ./addNode.sh
?
直接點擊”Next”
?
輸入新節點的對應/etc/hosts的Public/Private/Vip 節點名,然后點擊“Next”
?
?
?
顯示添加集群新節點的概要信息,點擊”Install”
?
顯示添加集群件到新節點進度
?
?
?
按提示,登錄root用戶,按順序依次在dbi(新節點),dbp(第一個節點,執行addNode.sh的節點)執行以上三個腳本文件:
步驟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"已被使用。請輸入一個未使用的 IP 地址。
解決方法:因為 VIP已經在所有節點(而非新節點dbi)上進行了配置。我們手動執行 VIPCA(虛擬 IP配置助手)即可。點擊以上圖界面的”OK”按鈕完成安裝,然后用Xmanager工具連到新節點,在root用戶下執行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"
執行 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、安裝集群件到新節點后檢查
在新節點完成集群件的安裝后,將在新節點產生如下動作:
1)、/etc/init.d/目錄中創建下列文件:
[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)、新節點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)、在所有節點執行olsnodes 命令檢查集群件是否已經注冊了所有節點:
[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 命令在各節點檢查是否啟動了集群服務:
[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節點的gsd、ons、vip集群服務已經成功啟動,查dbi節點的其它集群服務,如asm、listener、instance服務需要在安裝和配置數據庫軟件后才會出現。
?
?
三.添加節點之--安裝數據庫軟件到新節點
1、執行addNode.sh腳本安裝復制數據庫軟件到新節點
1.1、安裝復制數據庫軟件到新節點操作及過程截圖
Oracle 已經提供了一個新的稱為addNode.sh 的可執行文件,它位于 $ORACLE_HOME/oui/bin 目錄。用Oracle 用戶執行該腳本即可以將數據庫軟件復制安裝到新節點。
?
在節點一上執行:
[oracle@dbp tmp]$ export DISPLAY=192.168.123.1:0.0
[oracle@dbp tmp]$ cd $ORACLE_HOME/oui/bin
[oracle@dbp bin]$ ./addNode.sh
?
指定新節點,然后點擊“Next”
?
顯示添加集群新節點的數據庫軟件概要信息,點擊”Install”
?
顯示添加數據庫軟件到新節點進度
?
?
該錯誤可忽略,點擊”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節點,使用root用戶登錄,執行以上腳本文件:
[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.
?
最后在安裝向導界面中點擊“Exit->Yes”完成新節點的數據庫軟件安裝。
?
?
?
?
?
?
四.添加節點之--在新節點上配置監聽器
在新節點oracle用戶上運行 netca:
[oracle@dbi tmp]$ export DISPLAY=192.168.123.1:0.0
[oracle@dbi tmp]$ netca
選擇 “Cluster configuration”,點擊”Next”
?
只選擇新節點dbi,點擊”Next”
?
?
?
選擇”Listener configuration”,點擊”Next”
?
默認選擇”Add”,點擊”Next”
?
保留默認監聽名:LISTENER,點擊”Next”
?
選擇TCP協議,點擊“Next”
?
如果沒有端口號沖突,就選擇默認端口號1521,點擊”Next”
?
選擇”No”,不再配置另一個監聽器,點擊”Next”,最后點擊”Finished”完成。
?
配置完監聽器后,會自動將監聽服務注冊到CRS中,執行crs_stat -t -v檢查:
?
?
五.添加節點之--在新節點上創建ASM實例
在節點一dbp上執行dbca為dbi節點創建ASM實例:
[oracle@dbp tmp]$ export DISPLAY=192.168.123.1:0.0
[oracle@dbp tmp]$ dbca
選擇”Oracle Real Application Clusters database”,點擊”Next”
?
選擇”Configure Automatic Storage Management”,點擊”Next”
?
選擇dbp和dbi節點,這里dbp節點是必選的,作為父節點,然后向dbi節點進行extend。在dbi上安裝ASM實例,點擊”Next”
?
點擊”Yes”
?
點擊”ASM Parameters”,可以查看一下下面的”ASM Parameters”ASM參數列表。
?
創建ASM實例的相關目錄:
[oracle@dbi +ASM]$ cd $ORACLE_BASE/admin/+ASM
[oracle@dbi +ASM]$ mkdir bdump cdump hdump pfile udump
?
輸入之前ASM實例的SYS用戶密碼,和選擇創建pfile文件,如果選擇spfile文件會報錯,點擊”Next”
?
?
點擊”OK”,開始創建ASM實例。
?
?
?
檢查 $ORACLE_HOME/dbs 目錄下 $ORACLE_BASE/admin/+ASM/pfile 目錄下已經生成了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
?
所有節點的ASM實例配置的ASM Diskgroup(ASM磁盤組)都必須顯示出來,然后點擊”Finish”
?
點擊”No”完成新節點的ASM實例的創建
?
執行 crs_stat -t -v 檢查dbi節點的ASM實例已經正常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????????
?
在新節點dbi上登錄ASM實例檢查狀態正常:
[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
?
?
六.添加節點之--在新節點上創建數據庫實例
?
在節點一dbp上執行dbca為dbi節點創建數據庫實例:
[oracle@dbp tmp]$ export DISPLAY=192.168.123.1:0.0
[oracle@dbp tmp]$ dbca
?
?
?
選擇”Oracle Real Application Clusters database”,點擊”Next”
?
?
選擇”Instance Management”,點擊”Next”
?
選擇”Add an instance”,點擊”Next”
?
輸入數據庫的sys用戶和密碼,點擊”Next”
?
顯示目前存在活動的數據庫實例,點擊”Next”
?
選擇要添加實例的節點,這里必須要選擇新節點dbi,點擊”Next”
?
這里點擊下一步后,會提示 The local node instance wxxrdb1 is not running。檢查wxxrdb1實例是已經正常運行在dbp節點上的,重啟集群所有的服務后,再重新dbca到這一步,還是提示The local node instance wxxrdb1 is not running。不知道是什么原因,不知道是否是10.2.0.1.0版本的bug??梢試L試以下兩種方法重試:
1)、在第一個節點中的登錄sqlplus /as sysdba,重新啟動實例:
SQL> shutdownimmediate;
SQL> startup;
? 然后再執行 dbca
?
2)、可以嘗試在其它正常的節點(非新增節點),如第二節點dbs中執行dbca
本次操作是選擇了上面第一種方法在sqlplus中重啟實例,再執行dbca重試就可以了,使用集群管理命令重啟實例,如:
srvctl stop instance -d wxxrdb -i wxxrdb1
srvctl start instance -d wxxrdb -i wxxrdb1
或使用重啟數據庫和實例命令,如:
srvctl stop database -d wxxrdb -o immediate
srvctl start database -d wxxrdb -o open
都是不可以的,執行dbca創建新節點實例時會報如上The local node instance wxxrdb1 is not running的錯誤。
?
點擊”File Location Variables”顯示如上圖的窗口,顯示的SID是 wxxrdb1,這個不用理會,這個是指執行dbca的實例ID,不是指新節點的實例ID,新節點的實例ID是wxxrdb3。
點擊”Fnish”后,如下所示:
?
?
顯示新節點實例wxxrdb3的概要信息,點擊”OK”,如果出現如下錯誤提示:
?
?
表示每個節點使用的歸檔目錄不是ASM共享磁盤目錄,而是本地目錄,因為是在dbp節點上使用dbca命令創建新節點dbi的數據庫實例,可能是從dbp節點的數據庫實例wxxrdb1上讀取了參數值(log_archive_dest_1='location=/wxxrdb1_arch'),而dbi節點還沒有創建/wxxrdb1_arch這個目錄,所以會報錯,在dbi節點用root用戶創建該目錄并修改為oracle屬主權限:
[root@dbi tmp]# mkdir -m 755 /wxxrdb1_arch
[root@dbi tmp]# chown oracle:dba /wxxrdb1_arch
然后再重試即可。
?
?
開始創建新節點的數據庫實例
?
新節點的數據庫實例創建完成,點擊”No”退出向導界面。
?
最后,在各節點執行 crs_stat -t -v 命令檢查新節點dbi的數據庫實例wxxrdb3是否已經注冊到了CRS,并且是否已經成功online:
?
在sqlplus中檢查各實例都已經成功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節點的操作成功圓滿完成!!!
總結
以上是生活随笔為你收集整理的(超详细)Oracle 10g RAC 添加节点实验操作总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JASS萌新学习指南(1.1)
- 下一篇: 本页面是由KSWEB生成的web包