在這里我們將介紹Oracle RAC在Linux下的安裝,Oracle Real Application Server,真正應用集群,簡稱Oracle RAC ,是Oracle的并行集群,位于不同服務器系統(tǒng)的Oracle實例同時訪問同一個Oracle數(shù)據(jù)庫,節(jié)點之間通過私有網(wǎng)絡進行通信,所有的控制文件、聯(lián)機日志和數(shù)據(jù)文件存放在共享的設備上,能夠被集群中的所有節(jié)點同時讀寫。
系統(tǒng)配置
1、創(chuàng)建用戶和組 oinstall dba 組用戶
oracle -g oinstall -G dba 匿名用戶:確認匿名用戶 nobody 存在與系統(tǒng)中,在安裝完成后nobody 用戶必須執(zhí)行一些擴展任務(extjob)確認nobody用戶是否存在:
#id nobody 如果用戶不存在則需要添加該用戶。
注意給oracle用戶設置密碼
2、配置網(wǎng)絡
ip地址的規(guī)劃,通過修改 /etc/sysconf/network-script/ifcfg-ethx
配置網(wǎng)卡的靜態(tài)ip地址主機名的永久修改: /etc/network
本地DNS的配置: /etc/hosts
配置/etc/host.conf 該文件用來指定域名解析方法的順序:
order hosts,bind 它說明,首先通過/etc/hosts文件解析,如果在該文件中沒有相應的主機名與IP 地址的對應關系,再通過域名服務器bind進行解析
3、配置安全SSH 通道,針對ORACLE用戶,在每個節(jié)點創(chuàng)建 rsa 和dsa 的密鑰
rac1#su - oracle rac1#mkdir .ssh rac1#chmod 700 .ssh rac1#cd .ssh rac1#ssh-keygen -t rsa 創(chuàng)建密鑰對,其他默認
同樣在另一臺主機上執(zhí)行相應的操作。
rac2#su - oracle rac2#mkdir .ssh rac2#chmod 700 .ssh rac2#cd .ssh rac2#ssh-keygen -t rsa 創(chuàng)建密鑰對,其他默認 rac1#ssh rac1 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys 把節(jié)點1 的共鑰 從定向到一個文件因為現(xiàn)在還沒有密鑰對,所以會提示輸入密碼。直接輸入密碼就行了
rac1#ssh rac2 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys 把節(jié)點2 的共鑰 從定向到一個文件 rac1#cat authorized_keys 查看節(jié)點1和節(jié)點2的共鑰的內容,同樣拷貝到 節(jié)點2上面。 rac1#scp authorized_keys rac2:/home/oracle/.ssh/ 要輸入節(jié)點2的密碼 改一下權限
rac1#chmod 600 authorized-keys DSA密鑰的設置同理
rac1#ssh rac1 date 測試共鑰連接情況 遠程執(zhí)行 date 命令,此時不用輸入密碼 rac1#ssh rac2 date 測試共鑰連接情況 遠程執(zhí)行 date 命令,此時不用輸入密碼 此時可證實安全需要通道配置成功
4、檢查所需的軟件
#rpm -qa |grep 需要的軟件包
5、配置內核參數(shù)
vi /etc/sysctl.conf kernel.sem=250 32000 100 128 kernel.shmmni=4096 kernel.shmall=2097152 kernel.shmmax=2147483648 net.ipv4.ip_local_port_range=1024 65000 net.core.rmem_default=1048576 net.core.rmem_max=1048576 net.core.wmem_default=262144 net.core.wmem_max=262144 然后執(zhí)行: #sysctl -p
6、設置shell對oracle用戶的限制
vi /etc/security/limits.conf 在每個節(jié)點上執(zhí)行相同的操作:編輯/etc/security/limits.conf,添加內容:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofilw 65536 編輯/etc/pam.d/login,添加如下內容: session required /lib/security/pam_limits.so
編輯/etc/profile,添加內容如下:
if[$USER="ORACLE"]; THEN if[$SHELL="/bin/ksh"];then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi 磁盤配置
安裝 CRS
安裝真正的RAC
存儲選項: 項目 存儲系統(tǒng) 存儲位置
clusterware 本地(EXT3)或NFS 本地或NFS
voting disk OCFS2 Raw device NFS 共享磁盤 NFS
OCR OCFS2 Raw device NFS 共享磁盤 NFS
數(shù)據(jù)庫軟件 OCFS2 本地 NFS 本地或共享磁盤 NFS
數(shù)據(jù)庫 OCFS2 ASM Raw device NFS 共享磁盤 NFS
恢復文件 OCFS2 ASM NFS 共享磁盤 NFS
存儲機制
clusterware 數(shù)據(jù)庫 恢復文件
ASM 否 是 是
OCFS2 是 是 是
Raw Device 是 是 否
NFS 是 是 是
OCFS2 安裝這個軟件 下載3個軟件包 在兩邊都要安裝 OCFS2-2.6.9-22.ELsmp-1.2.3-1.i686.rpm 這個文件要跟 uname -a 的系統(tǒng)版本對應起來 ocfs2console-1.2.1-1.i386.rpm ocfs2-tools-1.2.1-1.i386.rpm
安裝順序:tools ----內核模塊 ----- console
磁盤的處理
#fdisk -l 查看磁盤分區(qū) #fdisk /dev/sdb 創(chuàng)建分區(qū) #export DISPLAY=本地機器IP #ocfs2console 打開ocfs2的控制臺進行ocfs2的配置 菜單Task 下的format開始格式化分區(qū)
Oracle的安裝前的準備
#mkdir -p /orac/orachome #mkdir -p /orac/oradata #mount -t ocfs2 /dev/sdb1 /orac/orahome #df -h 查看掛接情況 #mount -t ocfs2 -o datavolume,nointr /dev/sdb2 orac/oradata #df -h #mounted.ocfs2 -f 查看ocfs2文件系統(tǒng)的加載情況 另一個節(jié)點rac2
#/etc/init.d/o2cd load 加載這個模塊 #/etc/init.d/o2cd status 查看加載這個模塊的狀態(tài) 查看到節(jié)點2 ocfs2 狀態(tài)是 offline
#/etc/init.d/o2cd online 使其online #/etc/init.d/o2cd status 查看加載這個模塊的狀態(tài) #mount -t ocfs2 /dev/sdb1 /orac/orahome #df -h #mounted.ocfs2 -f #mount -t ocfs2 -o datavolume,nointr /dev/sdb2 /orac/oradata #mounted.ocfs2 -f 系統(tǒng)啟動時自動加載ocfs2文件系統(tǒng)和啟動相應的模塊----兩個節(jié)點都要配置
#/etc/init.d/o2cd configure 啟動時自動加載ocfs2 的相關模塊 #vi /etc/fstab 啟動是自動掛接文件系統(tǒng) /dev/sdb1 /orac/orahome ocfs2 _netdev 0 0 /dev/sdb2 /orac/oradata ocfs2 _netdev,datavolume,nointr 0 0 安裝集群 clusterware 文件夾 crs 安裝clusterware oradata 建庫時使用 orahome 安裝oracle數(shù)據(jù)庫軟件
要對這些文件夾的主用戶進行修改
#cd /orac #chown root.oinstall crs #chown oracle.oinstall orahome #chown oracle.oinstall oradata #chmod -R 775 ors #chmod -R 775 orahome #chmod -R 775 oradata #ls -l 在另外一個節(jié)點上也要進行相應的修改
把集群clusterware安裝軟件拷貝進來
#su - oracle #export DISPLAY=本地ip:0.0 #./runInstaller 安裝數(shù)據(jù)庫軟件 選擇安裝類型 企業(yè)版
創(chuàng)建數(shù)據(jù)庫: #dbca
測試數(shù)據(jù)庫的情況:客戶端的連接文件的修改:在客戶端安裝路徑下: NETWORK/ADMIN/tnsnames.ora
ORATEST tns服務名= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.116.121 節(jié)點1IP)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.116.129 節(jié)點2IP)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = oratest.sinobest.com 全局數(shù)據(jù)庫名) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) ) SQLPLUS客戶端的測試:在windows下打開命令行 或者直接打開 Oracle SQL*Plus
> sqlplus /nolog SQL>conn sys/123456@tnsname as sysdba SQL>select * from V$instance; 查看當前的實例 SQL>set wrap off; 設置一下顯示的方式 SQL>set linesize 200; SQL>select * from V$instance; 查看當前的實例 SQL>select * from gv$instance; 查看全局實例視圖