Oracle 12CR2 RAC安裝過程記錄
環境:
服務器(vbox虛擬機)
操作系統: CentOS 7.2
內存: 8G
本地磁盤: 50G
IP規划
主機 IP priv-ip vip rac1 10.19.100.5 192.168.220.5 10.19.100.15 rac2 10.19.100.6 192.168.220.6 10.19.100.16
scan-IP 10.19.100.19
其中“IP”和“priv-ip”各占用一個網卡或者bind網卡,“vip”和“scan-IP”為rac節點啟動后配置的虛擬IP和scanIP。
共享存儲規划
本演示不做冗余,采用最低配置。12CR2 voting disk至少需要40G有效空余空間。Data disk預留60G有效磁盤空間。
一、 安裝前准備工作
此步驟需要在兩台服務器上都執行
關閉selinux、防火牆等操作不贅述。
創建用戶
# groupadd -g 501 oinstall # groupadd -g 502 dba # groupadd -g 504 asmadmin # groupadd -g 506 asmdba # groupadd -g 507 asmoper # useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper grid # useradd -u 502 -g oinstall -G dba,asmdba oracle # passwd oracle # passwd grid
文件目錄准備
# mkdir -p /u01/app/oraInventory # mkdir -p /u01/app/grid # mkdir -p /u01/app/12.2.0/grid # mkdir -p /u01/app/oracle/product/12.2.0/db_1 # chown -R grid:oinstall /u01/app/oraInventory # chown -R grid:oinstall /u01/app/grid # chown -R grid:oinstall /u01/app/12.2.0/grid # chown -R oracle:oinstall /u01/app/oracle # chown -R oracle:oinstall /u01/app/oracle/product/12.2.0/db_1 # chmod -R 775 /u01
檢查依賴包
# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \ compat-libstdc++-33 \ elfutils-libelf \ elfutils-libelf-devel \ gcc \ gcc-c++ \ glibc \ glibc-common \ glibc-devel \ glibc-headers \ ksh \ libaio \ libaio-devel \ libgcc \ libstdc++ \ libstdc++-devel \ libXext \ libXtst \ libX11 \ libXau \ libxcb \ libXi \ make \ sysstat \ compat-libcap1 \ unixODBC \ unixODBC-devel
根據輸出結果補全缺失的依賴包。
修改內核參數設置
# vi /etc/sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 1934714880 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 kernel.panic_on_oops = 1 # sysctl -p
其他操作系統參數修改
# vi /etc/pam.d/login #添加以下內容 session required pam_limits.so # vi /etc/security/limits.conf #添加以下內容 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 grid soft nproc 2047 grid hard nproc 32768 grid soft nofile 1024 grid hard nofile 65536 # vi /etc/profile #添加以下內容 if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 ulimit -s 10240 else ulimit -u 16384 -n 65536 -s 10240 fi fi
掛載共享磁盤,每個物理磁盤一個主分區,無文件系統。
# fdisk /dev/sdb # fdisk /dev/sdc
使用udev掛載。
# cd /etc/udev/rules.d # vi 99-ASM.rules ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N" KERNEL=="raw[1-2]*", OWNER="grid", GROUP="asmadmin", MODE="660" # systemctl restart systemd-udev-trigger.service
掛載結果
# ll /dev/raw* total 0 crwxrwxr-x 1 grid asmdba 162, 1 Mar 14 11:03 raw1 crwxrwxr-x 1 grid asmdba 162, 2 Mar 14 11:03 raw2 crw-rw---- 1 root disk 162, 0 Mar 14 11:03 rawctl
不使用DNS服務器,采用host文件尋址
# vi /etc/host # public 10.19.100.5 rac1 10.19.100.6 rac2 # private 192.168.220.5 rac1-pvt 192.168.220.6 rac2-pvt # virtual 10.19.100.11 rac1-vip 10.19.100.12 rac2-vip 10.19.100.13 rac-scan
配置環境變量
節點rac1
Oracle用戶
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1
export ORACLE_SID=aegisrac1
export ORACLE_UNQNAME=aegisrac
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
grid用戶
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/12.2.0/grid
export ORACLE_SID=+ASM1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
節點rac2
Oracle用戶
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1
export ORACLE_SID=aegisrac2
export ORACLE_UNQNAME=aegisrac
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
grid用戶
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/12.2.0/grid
export ORACLE_SID=+ASM2
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
二、 安裝grid軟件
此步驟僅需要在一個節點上執行
12cr2的grid和之前版本不同,壓縮包本身就是軟件的一部分,安裝時要直接解壓到grid home下。
# su - grid $ cd /u01/app/12.2.0/grid $ unzip -q /opt/linuxx64_12201_grid_home.zip
進行ssh互信配置
# su - grid $ cd /u01/app/12.2.0/grid/deinstall ./sshUserSetup.sh -user grid -hosts "rac1 rac2 rac1-pvt rac2-pvt" -advanced -noPromptPassphrase # su - oracle $ cd /u01/app/12.2.0/grid/deinstall ./sshUserSetup.sh -user oracle -hosts "rac1 rac2 rac1-pvt rac2-pvt" -advanced -noPromptPassphrase
完成后在所有節點分別以oracle用戶和grid用戶測試,以下命令均應不需要密碼就可以輸出結果
$ ssh rac1 date $ ssh rac1-pvt date $ ssh rac2 date $ ssh rac2-pvt date
安裝cvuqdisk(需要分別在2個節點上執行),該步驟理論上可以在grid軟件安裝時自動處理,但是我這里沒有實測。
# cd /u01/app/12.2.0/grid/cv/rpm # export CVUQDISK_GRP=asmadmin # rpm -ivh cvuqdisk-1.0.10-1.rpm
圖形界面安裝grid軟件,遠程圖形化工具有很多,我這里用的是Xmanager
$ ./gridSetup.sh
ScanName填寫host文件中的scan ip名稱
點擊add添加所有節點及其虛擬主機名,我這里只有rac1 rac2兩個節點
創建OCR and Voting Disk,注意無論采用哪一種冗余格式,有效空間至少要有40G
上圖用圖錯誤,注意software location應該為你的grid用戶的ORACLE_HOME目錄,懶得再做一次了,特此說明
我這里3個failed是由於沒有配置DNS,時間同步服務器導致,可以選擇右上角的忽略后繼續,如果還有其他錯誤,則需要具體分析,不可忽略。
此間需要分別在2台服務器上執行提示需要執行的腳本。先在安裝grid軟件的服務器上執行成功后,再去其他服務器節點上執行
安裝完成后可以通過crsctl命令查看節點狀態。
這里列3個常用命令
#檢查集群狀態 crsctl check cluster -all #檢查節點詳細資源情況 crsctl stat res -t #啟停crs(必須root) crsctl start crs和crsctl stop crs
三、 使用ASMCA創建asm磁盤
此步驟僅需要在一個節點上執行
# su – grid
$ asmca
四、 使用安裝Oracle RAC
其中幾項fixable標記為no的是由於我沒有配置時間服務器和DNS服務器導致的,可以忽略。若出現其他錯誤則需要具體問題具體分析,不可直接忽略。
分別在rac1節點和rac2節點執行腳本
五、 創建數據庫
使用dbca創建數據庫實例
# dbca
最后說一句,12CR2 RAC的磁盤和內存要求比之前的版本提高了非常多,我16G內存的筆記本的虛擬機在原來12CR1 RAC能做4個節點(會有點卡),現在只能勉強做2個節點,在最吃內存的安裝grid軟件時執行腳本的那一步還可能會報錯。對服務器的要求越來越高了。