摘要:Oracle RAC 添加節(jié)點(diǎn)操作,跟安裝類似朴译,配置所需OS參數(shù)、IP規(guī)劃等属铁,需要在rac層和db層分別添加眠寿。
1安裝準(zhǔn)備工作
1.1?加節(jié)點(diǎn)步驟
加節(jié)點(diǎn)不需要停機(jī),在線操作焦蘑,但需要在業(yè)務(wù)較低時(shí)段進(jìn)行盯拱,若安排重啟測(cè)試和業(yè)務(wù)測(cè)試,則視情況申請(qǐng)停機(jī)時(shí)間例嘱。
1????原生產(chǎn)庫兩臺(tái)主機(jī)安裝新的操作系統(tǒng)狡逢,連接現(xiàn)生產(chǎn)庫所用的存儲(chǔ)并進(jìn)行多路徑的配置
2????配置網(wǎng)絡(luò)
3????檢查系統(tǒng)包和配置等價(jià)性等一系列加節(jié)點(diǎn)操作,具體操作參考章節(jié)1.3~1.12
4????在現(xiàn)有生產(chǎn)庫節(jié)點(diǎn)1上進(jìn)行加節(jié)點(diǎn)操作拼卵。
5????檢查各個(gè)節(jié)點(diǎn)的crs和instance的狀態(tài)奢浑。
節(jié)點(diǎn)
節(jié)點(diǎn)名稱
實(shí)例名稱
數(shù)據(jù)庫名稱
處理器
RAM/SWAP
操作系統(tǒng)
Master-db-03
db3
db
Intel(R) Xeon(R) CPU E7- 4870 ?@ 2.40GHz
256GB/128GB
RedHatEL6.5
Master-db-04
db4
Intel(R) Xeon(R) CPU E7- 4870 ?@ 2.40GHz
256GB/128GB
RedHatEL6.5
網(wǎng)絡(luò)配置
節(jié)點(diǎn)名稱
公共IP地址
專用IP地址
虛擬IP地址
SCAN名稱
SCAN IP地址
Master-db-03
10.0.3.11
10.0.5.11
10.0.3.111
scan-ip
10.0.3.223
Master-db-04
10.0.3.12
10.0.5.12
10.0.3.112
Oracle軟件組件
軟件組件
操作系統(tǒng)用戶
主組
輔助組
主目錄
Oracle基目錄/Oracle主目錄
Grid Infra
Grid
oinstall
asmadmin、asmdba腋腮、asmoper
/home/grid
/opt/oracrs/base
/opt/oracrs/product/11gr2/grid
Oracle RAC
Oracle
oinstall
dba雀彼、oper、asmdba
/home/oracle
/opt/oracle/
/opt/oracle/product/11.2.0/db
存儲(chǔ)組件
存儲(chǔ)組件
類型
卷大小
ASM卷組名
ASM冗余
設(shè)備名
OCR/VF
ASM
10G
DG_OCR
NORMAL
按新的標(biāo)準(zhǔn)
數(shù)據(jù)
ASM
2000G
DG_ACC
External
按新的標(biāo)準(zhǔn)
數(shù)據(jù)
ASM
2000G
DG_INDX
External
按新的標(biāo)準(zhǔn)
數(shù)據(jù)
ASM
2000G
DG_OPT
External
按新的標(biāo)準(zhǔn)
ASM
200G
DG_ORA
External
按新的標(biāo)準(zhǔn)
歸檔日志
ASM
200G
DG_ARCH
External
按新的標(biāo)準(zhǔn)
1.1?檢查系統(tǒng)要求
E.補(bǔ)丁包
rpm -q binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
pdksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libXp \
make \
numactl-devel \
sysstat \
unixODBC \
unixODBC-devel \
compat-libcap1.x86_64 \
libcap.x86_64|grep not
F.核心參數(shù)
編輯/etc/sysctl.conf文件即寡,添加下面的內(nèi)容
# for oracle
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.sem=250 32000 100 128
kernel.shmmni=4096
kernel.shmall=8388608
kernel.shmmax=32212254720
net.ipv4.ip_local_port_range=900065000
net.core.rmem_default=1048576
net.core.rmem_max=1048576ànet.core.rmem_max = 4194304(11.2.0.3)
net.core.wmem_default=262144
net.core.wmem_max=1048586
然后執(zhí)行以下命令使參數(shù)生效:
sysctl –p
1.1?設(shè)置/etc/hosts
私有IP地址必需與公網(wǎng)分離,兩個(gè)節(jié)點(diǎn)可互相訪問可以ping通,必須在/etc/hosts里有徊哑;
虛擬IP地址同公網(wǎng)IP地址是一個(gè)網(wǎng)段的,如果有DNS就注冊(cè)在DNS中聪富,如果沒有DNS就寫在/etc/hosts文件里莺丑;
公網(wǎng)IP地址,是主機(jī)真正的IP地址善涨,主機(jī)管理員預(yù)先分配窒盐,如果有DNS就注冊(cè)在DNS中草则,如果沒有DNS就寫在/etc/hosts文件里),并且保證寫入每個(gè)客戶系統(tǒng)中的hosts文件蟹漓。
在各個(gè)節(jié)點(diǎn)的網(wǎng)卡配置必須相同炕横,例如:第一個(gè)節(jié)點(diǎn)公共IP是用eth0,那么其他節(jié)點(diǎn)也得用eth0
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 ??????????????localhost.localdomain localhost
::1 ????????????localhost6.localdomain6 localhost6
# that require network functionality will fail.
127.0.0.1 localhost
10.0.3.22 MASTER-DB-02
10.0.3.21 MASTER-DB-01
10.0.3.12 MASTER-DB-04
10.0.3.11 MASTER-DB-03
#heart ip
10.0.5.22 ?db2-heart
10.0.5.21 ?db1-heart
10.0.5.12 ?db4-heart
10.0.5.11 ?db3-heart
#vip
10.0.3.122 ?db2-vip
10.0.3.121 ?db1-vip
10.0.3.112 ?db4-vip
10.0.3.111 ?db3-vip
#scan ip
10.0.3.123 scan-ip
設(shè)置完/etc/hosts后葡粒,建議在各自節(jié)點(diǎn)通過名字PING對(duì)方份殿,看能否PING通。
建立oracle嗽交、grid用戶和dba組
#/usr/sbin/groupadd -g 501 oinstall
#/usr/sbin/groupadd -g 502 dba
#/usr/sbin/groupadd -g 503 oper
/#usr/sbin/groupadd -g 504 asmadmin
#/usr/sbin/groupadd -g 505 asmoper
#/usr/sbin/groupadd -g 506 asmdba
#/usr/sbin/useradd -g oinstall -G dba,asmdba,oper oracle
/#usr/sbin/useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
1.1?配置等效性
注意:需要在GRID和ORACLE用戶下分別執(zhí)行
# su - oracle
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
--產(chǎn)生rsa,dsa
$ ssh-keygen -t rsa
注意:以上操作分別在兩臺(tái)機(jī)器上執(zhí)行
--在節(jié)點(diǎn)1上執(zhí)行:
$ sshmaster-db-04cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ sshmaster-db-03cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ scp ~/.ssh/authorized_keysmaster-db-02:~/.ssh/.
$?scp ~/.ssh/authorized_keysmaster-db-03:~/.ssh/.
$ scp ~/.ssh/authorized_keysmaster-db-04:~/.ssh/.
--測(cè)試SSH在兩邊都不用輸入密碼,表示SSH配置完成
$ sshmaster-db-01date
$ sshmaster-db-02date
$ sshmaster-db-03date
$ sshmaster-db-04date
1.1?設(shè)置系統(tǒng)限制
--在每個(gè)節(jié)點(diǎn)上執(zhí)行相同的操作
編輯/etc/security/limits.conf,添加如下內(nèi)容:
oralce ???soft ?nofile 131072
oracle ??hard ?nofile 131072
grid ???soft ?nofile 131072
grid ???hard ?nofile 131072
oracle hard memlock 153092096
oracle soft memlock 153092096
編輯/etc/pam.d/login,添加如下內(nèi)容:
session required /lib/security/pam_limits.so
1.2?建立GRID及RAC安裝目錄
--建立ORACLE_HOME目錄
mkdir -p /opt/oracle/product/11.2.0/db
--建立ORACLE_GRID_HOME目錄
mkdir -p /opt/oracrs/base
mkdir -p /opt/oracrs/product/11gr2/grid
--授權(quán)
chown ?-R oracle:oinstall/opt/oracle
chown–R grid:oinstall /opt/oracrs
chmod -R 775 /opt
1.3?關(guān)閉防火墻
chkconfig --list iptables
chkconfig iptables off
chkconfig --list iptables
service iptables stop
1.4?設(shè)置NTP服務(wù)
配置NTP服務(wù)
1.5?設(shè)置用戶的環(huán)境變量
#gird用戶
修改~/.bash_profile文件卿嘲,增加以下內(nèi)容:
umask 022
export ORACLE_BASE=/opt/grid
export ORACLE_HOME=/opt/crs_home/product/11.2.0/grid
export ORACLE_SID=+ASM1
export PATH=/usr/sbin:$PATH
exportPATH=$ORACLE_HOME/bin:$PATH
為了讓以上內(nèi)容立即生效,執(zhí)行以下命令即可:
$Source .bash_profile
#oracle用戶
修改~/.bash_profile文件夫壁,增加以下內(nèi)容:
umask 022
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORA_GRID_HOME=/opt/crs_home/product/11.2.0/grid
export ORACLE_SID=db3
export PATH=/usr/sbin:$PATH
exportPATH=$ORACLE_HOME/bin:$PATH?:$ORA_GRID_HOME/bin
為了讓以上內(nèi)容立即生效拾枣,執(zhí)行以下命令即可:
$Source .bash_profile
1.6?配置磁盤設(shè)備
使用UDEV綁定磁盤設(shè)備,參考現(xiàn)生產(chǎn)庫磁盤設(shè)備配置盒让。
1.7?使用CVU檢查新加節(jié)點(diǎn)的硬件和OS環(huán)境
$ cluvfy stage -post hwos -ndb-maser-3,master-db-04–verbose
$ cluvfy comp peer -refnodedb-maser-1 -ndb-maser-3,master-db-04-orainv oinstall -osdba oinstall-verbose
$ cluvfy stage -pre nodeadd -ndb-maser-3,master-db-04–verbose
注意:服務(wù)器上的防火墻一定要關(guān)閉梅肤,否則不能通過檢查。雖然chkconfig iptables off檢查都是off邑茄,但是沒有執(zhí)行service iptables stop操作姨蝴。如:當(dāng)時(shí)有如下報(bào)錯(cuò)。
正在檢查子網(wǎng)"10.0.3.0"是否能夠與多點(diǎn)傳送組"230.0.1.0"進(jìn)行多點(diǎn)傳送通信...
PRVG-11134 :節(jié)點(diǎn)"master-db-04"上的接口"10.0.3.12"無法與節(jié)點(diǎn)"master-db-04"上的接口"10.0.3.12"通信
PRVG-11134 :節(jié)點(diǎn)"master-db-04"上的接口"10.0.3.12"無法與節(jié)點(diǎn)"master-db-03"上的接口"10.0.3.11"通信
PRVG-11134 :節(jié)點(diǎn)"master-db-03"上的接口"10.0.3.11"無法與節(jié)點(diǎn)"master-db-04"上的接口"10.0.3.12"通信
1.8?備份OCR
在添加節(jié)點(diǎn)前肺缕,建議手動(dòng)備份OCR(GRID每4個(gè)小時(shí)也會(huì)自動(dòng)備份OCR)左医,目的是如果出
現(xiàn)某些問題,我們可以恢復(fù)到添加節(jié)點(diǎn)前的狀態(tài):
$su - root
$GRID_HOME/bin/ocrdump /tmp/ocrdump_1nodes.bak
2?添加節(jié)點(diǎn)
2.1?在GRID (GI)層面添加節(jié)點(diǎn)
將GRID HOME復(fù)制/擴(kuò)展到節(jié)點(diǎn)3,4同木,在節(jié)點(diǎn)1以grid用戶執(zhí)行下面的命令:
注意:addNode.sh腳本首先進(jìn)行安裝前檢查浮梢,如果檢查過程有錯(cuò)誤或者警告,需要在運(yùn)行
addNode.sh前設(shè)置環(huán)境變量exportIGNORE_PREADDNODE_CHECKS=Y泉手,否則addNode.sh會(huì)失敗退出
#su–grid
$cd $GRID_HOME/oui/bin
$./addnode.sh“CLUSTER_NEW_NODES={master-db-03,master-db-04}”“CLUSTER_NEW_VIRTUAL_HOSTNAMES={db3-vip,db4-vip}”
以root用戶在節(jié)點(diǎn)3和4運(yùn)行orainstRoot.sh來注冊(cè)Inventory
在2.3章節(jié)再執(zhí)行root.sh
2.2?在RAC層面添加節(jié)點(diǎn)
將RDBMS ORACLE HOME復(fù)制/擴(kuò)展到節(jié)點(diǎn)3,在節(jié)點(diǎn)1以oracle用戶執(zhí)行下面的命令:
./addNode.sh“CLUSTER_NEW_NODES={ master-db-03,master-db-04}”
在節(jié)點(diǎn)3,4以root用戶運(yùn)行$RDBMS_OARCLE_HOME/root.sh
2.3?運(yùn)行GRID_HOME/root.sh
在節(jié)點(diǎn)3,4以root用戶運(yùn)行$GRID_HOME/root.sh
運(yùn)行root.sh后黔寇,節(jié)點(diǎn)rac3的資源已經(jīng)更新到集群中(OCR),并且已經(jīng)啟動(dòng):
$crsctl stat res–t
2.4?添加實(shí)例
運(yùn)行dbca