環境準備
節點一:CentOS 6.8 x86-64
CPU:4C 內存:8GB SWAP:8GB
主機名:rac01 業務ip:192.168.50.21 私網ip:10.98.50.21 虛擬ip:192.168.50.23
節點二:CentOS 6.8 x86-64
CPU:4C 內存:8GB SWAP:8GB
主機名:rac02 業務ip:192.168.50.22 私網ip:10.98.50.22 虛擬ip:192.168.50.24
SCANip:192.168.50.25 192.168.50.26 192.168.50.27
數據庫與集羣軟件:
linuxamd64_12102_grid_1of2.zip
linuxamd64_12102_grid_2of2.zip
linuxamd64_12102_database_1of2.zip
linuxamd64_12102_database_2of2.zip
共享磁盤:
這裏OCRVOTING ,DATA和FRA採用Normal。所需磁盤數至少三塊,每塊盤至少800MB。
External所需磁盤至少一塊,每塊盤至少400MB;
High所需磁盤至少五塊,每塊至少1.2GB。
具體參閱Oracle官網RAC安裝文檔,存儲配置章節。http://docs.oracle.com/database/121/CWLIN/storage.htm#CWLIN287
創建虛擬機:
使用工具VMware vSphere Client或VMware vSphere Web Client連接vCenter或ESXi主機,選中一臺ESXi主機,點擊入門選項卡上的“創建新的虛擬機”
創建類型自定義
爲虛擬機命名
確定虛擬機存放datastore的位置
虛擬機版本可以保持默認,如果後期有遷移其他版本平臺的需求,這裏就需要考慮版本的兼容性。
虛擬機操作系統與版本
虛擬機CPU數量按照規格配置
內存容量按照規格
配置兩張虛擬網卡
scsi控制器類型保持默認
虛擬磁盤類型選擇“創建新的虛擬磁盤”
設定虛擬機系統盤容量,爲了儘可能減小數據庫主機性能影響,這裏建議磁盤置備爲“厚置備置零”,並指定數據存儲位置。
虛擬機設備節點保持默認
查看虛擬機摘要信息,並勾選“完成前編輯虛擬機配置”,點擊繼續。
點擊添加
設備類型選擇硬盤
選擇“創建新的虛擬磁盤”
創建容量爲10GB,厚置備置零的磁盤,並指定數據存儲位置。
虛擬機設備節點選擇“SCSI(1:0)”
確認摘要信息無誤,點擊完成。
按照此過程,陸續添加第二塊與第三塊虛擬磁盤,設置參數一樣,不同的地方爲:虛擬設備節點依次爲“SCSI(1:1)”與“SCSI(1:2)”。
最後編輯虛擬機配置,將新的SCSI控制器,也就是第二個SCSI控制器,編號爲1,SCSI總線共享類型改爲物理,即讓最後添加的三塊虛擬磁盤實現與其他虛擬機共享訪問。
完成開始創建第一臺虛擬機,照此過程新建第二臺虛擬機,過程與以上類似,不同的地方爲虛擬機命名。
最後添加三塊磁盤這裏選擇“使用現有虛擬磁盤”
點擊瀏覽
定位到第一臺虛擬機那三塊磁盤的數據存儲位置
打開第一臺虛擬機命名的文件夾
三塊容量爲10GB的虛擬磁盤即爲第一臺虛擬機所使用的那三塊磁盤
按照順序將第一塊磁盤添加到第二臺虛擬機,以實現共享。
這裏虛擬設備節點依然是按照“SCSI(1:0)到SCSI(1:2)”的順序選擇,分別將三塊磁盤添加到第二臺虛擬機。
最後任然將第二個SCSI控制器總線共享類型改爲“物理”,完成第二臺虛擬機的創建。
作爲Oracle RAC雙節點兩臺虛擬機就完成創建了,接下來使用CentOS官方的ISO系統鏡像同時爲兩主機安裝CentOS 6.8帶圖形環境系統,這裏安裝過程略,可參閱互聯網搜索。系統安裝完成後,爲虛擬機安裝VMware Tools。
配置節點一主機名
使用vi編輯器修改網絡配置文件/etc/sysconfig/network
配置網絡參數
使用vi編輯器修改網絡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
使用vi編輯器修改網絡配置文件/etc/sysconfig/network-scripts/ifcfg-eth1
注意:網絡配置文件裏的每一項參數都不能少,包括MAC地址、UUID、IP參數等等,也不能配置錯誤,否則會導致後期網絡故障而影響集羣性能!
停止NetworkManager服務並設置開機不啓動,重啓network服務。
/etc/init.d/NetworkManager stop
chkconfig NetworkManager off
/etc/init.d/network restart
配置節點二主機名
使用vi編輯器修改網絡配置文件/etc/sysconfig/network
配置節點二網絡參數
使用vi編輯器修改網絡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
使用vi編輯器修改網絡配置文件/etc/sysconfig/network-scripts/ifcfg-eth1
停止NetworkManager服務並設置開機不啓動,重啓network服務。
/etc/init.d/NetworkManager stop
chkconfig NetworkManager off
/etc/init.d/network restart
在節點一與節點二同時配置DNS服務器 ,配置文件/etc/resolv.conf。(根據實際運營商提供dns server進行配置)
在節點一圖形環境下使用系統自帶的Firefox瀏覽器,訪問Oracle官網http://www.oracle.com,點擊下載-數據庫-Oracle數據庫
Oracle數據庫12c-64位Linux系統-查看所有
同意協議,下載數據庫與集羣安裝軟件包。
登錄Oracle賬戶後即可開始下載(可免費註冊)
待四個壓縮包下載完成後,使用cksum命令獲取CRC校驗碼與官網對比,來確認下載文件是否完整。
系統配置:
節點一與節點二同時配置host文件 /etc/hosts 添加,這裏的ooa.com爲舉例域名,根據實際環境域名而定。
# Oracle RAC Public IP
192.168.50.21 rac01.ooa.com rac01
192.168.50.22 rac02.ooa.com rac02
# Oracle RAC Private IP
10.98.50.21 rac01pri.ooa.com rac01pri
10.98.50.22 rac02pri.ooa.com rac02pri
# Oracle RAC Virtual IP
192.168.50.23 rac01vip.ooa.com rac01vip
192.168.50.24 rac02vip.ooa.com rac02vip
# Oracle RAC SCAN IP
192.168.50.25 scan.ooa.com
192.168.50.26 scan.ooa.com
192.168.50.27 scan.ooa.com
節點一與節點二同時停止NTP服務並卸載其軟件包,使用Oracle集羣自帶的ctss服務來同步節點系統時間。
/etc/init.d/ntpd stop
yum erase ntp -y
使用ntpdate與NTP服務器同步一次系統時間,並寫入硬件時鐘,ntpdate服務開機自啓動。
ntpdate 0.centos.pool.ntp.org
hwclock -w
chkconfig ntpdate on
停止防火牆與selinux服務
/etc/init.d/iptables stop
chkconfig iptables off
setenforce 0
selinux服務需要修改配置文件/etc/sysconfig/selinux來永久禁用。
創建用於Oracle集羣的用戶與組,以及數據目錄。這裏建議專門劃分一塊數據盤掛載到/u01存儲Oracle數據文件。
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 asmdba
groupadd -g 54326 dgdba
groupadd -g 54327 kmdba
groupadd -g 54328 asmadmin
groupadd -g 54329 asmoper
useradd -u 54322 -g oinstall -G dba,asmdba,oper oracle
useradd -u 54321 -g oinstall -G asmadmin,asmdba,asmoper grid
mkdir -p /u01/app/12.1.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
爲grid與oracle用戶設置系統登錄密碼
內核參數優化,修改配置文件 /etc/sysctl.conf 添加
# Oracle RAC Optimized parameters
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
執行命令sysctl -p配置立即生效
軟硬限制策略,編輯配置文件/etc/secrity/limits.conf添加
grid soft nproc 2047
grid hard nproc 32768
grid soft nofile 1024
grid hard nofile 250000
oralce soft nproc 2047
oracle hard nproc 32768
oracle soft nofile 1024
oracle hard nofile 250000
編輯配置文件/etc/pam.d/login添加
session required pam_limits.so
編輯配置文件/etc/profile添加
if [ $USER == "oracle" ] || [ $USER == "grid" ];then
if [ $SHELL == "/bin/ksh" ];then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
如果添加的三塊磁盤在系統裏識別爲/dev/sdb、/dev/sdc、/dev/sdd的話,使用以下命令生成asm命名的磁盤
for i in b c d;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\",PROGRAM==\"/sbin/scsi_id -g -u /dev/\$name\", RESULT==\"`/sbin/scsi_id -g -u /dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\",GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done
查看生成的udev命名規則文件
重新啓動udev查看生成的設備文件
start_udev
注意:節點一與節點二都需要參與以上配置!
節點一安裝並配置vncserver,用於遠程圖形環境下訪問CentOS主機,安裝集羣數據庫。
yum install tigervnc-server -y
編輯vncserver配置文件/etc/sysconfig/vncservers添加
VNCSERVERS="1:grid 2:oracle"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
分別切換到grid與oracle用戶環境下,使用vncpasswd命令設置vncserver登錄密碼。
啓動vncserver服務 /etc/init.d/vncserver start
查看服務端口啓動狀態 netstat -antpl | grep Xvnc 同時包含5901與5902端口監聽狀態,即爲正常。
節點一與節點二同時操作切換到grid用戶環境下執行
ssh-keygen -t rsa
ssh-keygen -t dsa
節點一再次執行
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac02:~/.ssh/authorized_keys
隨後鍵入grid系統登錄密碼,將各自認證公鑰傳給對方。
節點二再次執行
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac01:~/.ssh/authorized_keys
節點一修改配置文件~/.bash_profile,註釋最後兩行並添加
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/12.1.0/grid
export ORACLE_SID=+ASM1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/usr/sbin
export PATH
節點二修改配置文件~/.bash_profile,註釋最後兩行並添加
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/12.1.0/grid
export ORACLE_SID=+ASM2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/usr/sbin
export PATH
節點一與節點二同時切換到oracle用戶環境下執行
ssh-keygen -t rsa
ssh-keygen -t dsa
節點一再次執行
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac02:~/.ssh/authorized_keys
節點二再次執行
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac01:~/.ssh/authorized_keys
節點一修改配置文件~/.bash_profile,註釋最後兩行並添加
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1
export ORACLE_SID=racdb1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/usr/sbin
export PATH
節點二修改配置文件~/.bash_profile,註釋最後兩行並添加
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1
export ORACLE_SID=racdb2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/usr/sbin
export PATH
Grid的安裝
官方文檔介紹Grid可以通過基於圖形界面下的安裝嚮導和配置文件兩種方式來安裝,這裏講述前者,後者適用於批量部署。參閱 http://docs.oracle.com/database/121/CWLIN/toc.htm
使用vnc客戶端(可在附件下載,32位系統使用32爲軟件,64位系統使用64位軟件)連接節點一主機,鍵入主機完整域名或ip地址,附加端口號。
點擊繼續
鍵入vncserver登錄密碼
暫無用不到root權限,取消root用戶認證。
右擊桌面打開一個terminal
切換到安裝軟件包所在目錄,解壓grid軟件包
unzip linuxamd64_12102_grid_1of2.zip
unzip linuxamd64_12102_grid_2of2.zip
解壓完成後,以root用戶身份安裝cvuqdisk軟件包
將cvudisk軟件包傳到節點二,並root用戶安裝。
繼續在節點一圖形環境下,切換到grid目錄,./runInstaller 執行安裝程序開始集羣軟件的安裝。
打開圖形安裝嚮導
標準集羣
高級安裝
默認英語語言
集羣名稱,SCAN名稱要與hosts文件裏設置一致,可成功解析,SCAN端口號。
修正節點信息,維持各個名稱與hosts文件裏一致,可成功解析。
注意虛擬主機名稱的一致性
添加節點二的信息
保持名稱一致性
這裏可以不用鍵入grid用戶系統登錄密碼,正常情況下直接點擊下一步認證通過。(注意:如果不能順利通過認證,請在命令行ssh rac02與ssh rac01互相測試與對方是否可以正常免密訪問,然後註銷圖形環境再次登錄重新執行安裝程序!通過vnc訪問的圖形環境,重啓vncserver服務即可註銷當前用戶登錄的圖形環境。)
配置eth1網卡通過私網數據。
存儲選項使用標準的asm存儲
這裏磁盤組參數保持默認,點擊修改磁盤查找路徑
查找路徑/dev/asm*
勾選三塊磁盤
爲所有賬戶配置一樣的密碼
無需配置IPMI
無需EM配置
配置ASM組
配置oracle base與home目錄
inventory目錄配置
自動腳本配置,這裏可以配置root系統登錄密碼,讓後面腳本自動執行。否則後面手工在各節點執行安裝腳本。
執行環境檢查,檢查出一些存在的問題。點擊修復和再次檢查
提示自動執行修復腳本,點擊OK確認。
再次檢查後發現還存在一些軟件包的缺失
在root用戶環境下使用yum安裝這些軟件包即可(注意:節點二也需要執行yum來安裝這些軟件包)
yum install compat-libcap1-1.10 compat-libstdc++-33-3.2.3 libstdc++-devel-4.4.4 gcc gcc-c++ ksh libaio-devel-0.3.107 -y
軟件包完成安裝後,執行再次檢查。
最後遺留而下關於dns與域名解析問題,可查看詳細信息。
由於這裏使用hosts文件來解析,故不使用dns服務器,這兩個問題直接忽略掉。
警告信息提示,繼續即可。
查看安裝摘要信息,確認無誤即可進行安裝。
安裝過程中會出現提示自動執行配置腳本的提示,點擊Yes確認操作。
靜靜地等待整個安裝過程
最後報錯有驗證失敗,通過日誌查詢是由於SCAN名稱無法通過dns服務器解析問題,實際通過ip訪問則可以忽略。
點擊yes繼續
完成Grid的安裝
使用命令 crsctl stat res -t 查看雙節點狀態信息
使用命令 crsctl check ctss 查看雙節點ctss服務同步系統時間的狀態
安裝Oracle數據庫
使用vnc客戶端訪問節點一,端口號5902即通過oracle用戶登錄。
切換到數據庫軟件包目錄,解壓文件。
unzip linuxamd64_12102_database_1of2.zip
unzip linuxamd64_12102_database_2of2.zip
解壓完成後切換到database目錄執行安裝程序
打開oracle圖形界面安裝嚮導,配置安全更新。這裏如果有註冊的Oracle賬戶,請鍵入email地址與密碼來實現自動更新,也可以不用配置。
僅僅安裝數據庫軟件
RAC集羣數據庫安裝
選擇所要安裝的所有節點
默認英語語言
默認安裝企業版,需要6.4GB的磁盤空間。
確定oracle base與home目錄
oracle有關的組
需求檢查,這裏任然存在dns服務器與域名解析問題,在此使用了hosts文件做解析,故忽略這些錯誤。
確認摘要信息無誤,即可開始安裝。
安裝中提示手動在各節點以root用戶身份執行root.sh腳本
依次在各節點執行即可
執行完後,點擊OK繼續。
數據庫安裝成功
創建數據庫
在Oracle用戶環境下直接鍵入 dbca 命令啓動數據庫創建嚮導,選擇創建數據庫
高級模式
用於一般事務性處理
配置數據庫名稱,可選項容器數據庫。
創建一個新的server pool
管理選項可保持默認
爲所有的賬戶配置相同的密碼
設置數據存儲的位置,並編輯歸檔模式參數,這裏數據都選擇存放到ASM磁盤組,所以存儲類型爲ASM。
注意:這裏需要對grid_home目錄下的oracle執行文件授權,否則會發現不了ASM磁盤!(各節點都要求)
chmod +s /u01/app/12.1.0/grid/bin/oracle
設定歸檔位置
sample schemas無需設置
初始化參數可以保持默認
創建類型-創建數據庫
需求檢查提示有問題的依然是scan名稱不能dns服務器解析問題,這裏忽略掉。
確認摘要信息無誤,點擊完成開始創建數據庫。