在這裏存儲系統使用的是ASM,在 ASM 上存儲 OCR 和表決磁盤文件,具體是存儲在一個名爲 +CRS 的磁盤組中,該磁盤組使用外部冗餘配置,只有一個 OCR 位置和一個表決磁盤位置。ASM 磁盤組應在共享存儲器上建立,大小至少爲 2GB。Oracle 物理數據庫文件(數據、聯機重作日誌、控制文件、存檔重作日誌)將安裝在 ASM 上一個名爲 +RACDB_DATA 的 ASM 磁盤組中,而快速恢復區將在一個名爲 +FRA 的 ASM 磁盤組上建立。
yum –y install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
unixODBC-devel-2.2.11(32 位)
(2)、網絡配置:
網絡硬件要求:
- 每一個 Oracle RAC 節點至少必須有兩個網絡適配器(即網絡接口卡 (NIC)):一個用於公共網絡接口,另外一個用於專用網絡接口(互連)。要對公共網絡或專用網絡使用多個 NIC,Oracle 建議採用 NIC 綁定。對公共網絡和專用網絡使用不一樣的綁定(即,對公共網絡使用 bond0,對專用網絡使用 bond1),這是由於在安裝過程當中,每一個接口要麼定義爲公共接口,要麼定義爲專用接口。本文不討論 NIC 綁定。
- 每一個網絡中網絡適配器的相關公共接口名稱在全部節點上都應相同,網絡適配器的相關專用接口名稱在全部節點上都應相同。
- 對於公共網絡,每一個網絡適配器必須支持 TCP/IP。
- 對於專用網絡,互連必須支持用戶數據報協議 (UDP),使用支持 TCP/IP(最小要求爲 1 Gb 以太網)的高速網絡適配器和交換機。
UDP 是 Oracle RAC 的默認互連協議,TCP 是 Oracle Clusterware 的互連協議。對於此互連,必須使用一個交換機。Oracle 建議您使用一個專用交換機。
對於互連,Oracle 不支持令牌環和交叉電纜。
- 對於專用網絡,全部指定互鏈接口的端點在網絡上必須徹底可達。每一個節點均應鏈接到全部的專用網絡接口。可使用 ping 命令測試一個互鏈接口是否可達。
- 在 Oracle Grid Infrastructure 的安裝過程當中,系統都會要求您標識 OUI 在您的集羣節點上檢測到的每一個網絡接口計劃使用方式。必須將每一個接口標識爲 public interface、private interface 或 not used,而且必須對 Oracle Clusterware 和 Oracle RAC 使用相同的專用接口。
可將若干獨立的接口綁定爲一個公共接口,這樣可在某個 NIC 出現故障時提供冗餘性。可是,Oracle 建議您不要爲 Oracle Clusterware 和 Oracle RAC 建立不一樣的接口。若是您對專用互連使用多個 NIC,Oracle 建議您使用 NIC 綁定。請注意,多個專用接口提供負載平衡,但不提供故障切換功能,只有將它們綁定在一塊兒時才提供故障切換功能。
從 Oracle Clusterware 11
g 第 2 版開始,無需再爲互連提供專用名稱或 IP 地址。標識爲專用的子網上的 IP 地址將被分配做爲集羣成員節點的專用 IP 地址。無需在 hosts 目錄中手動配置這些地址。若是須要針對互連進行名稱解析,可在 hosts 文件或 DNS 上配置專用 IP 名稱。而 Oracle Clusterware 會爲安裝期間定義爲專用接口的那個接口(如 eth1)分配互連地址,並將該地址分配給用做專用子網的那個子網。實際上,在本指南中,我會繼續在每一個節點包括一個專用名稱和 IP 地址以用於 RAC 互連。這在專用網絡上提供了自我文檔編制的方法和一組端點,可供故障排除之用:
192.168.0.51 rac01-priv 192.168.0.52 rac02-priv
- 在使用 iSCSI 進行網絡存儲的生產環境中,咱們強烈建議使用 TCP/IP 卸載引擎 (TOE) 卡配置第三個網絡接口(如 eth2)做爲冗餘接口來處理這種存儲流量。爲簡單起見,本文中的配置是讓 RAC 專用互鏈接口 (eth1) 所屬的網絡同時承載 iSCSI 網絡存儲流量。在同一網絡接口上同時處理 Oracle RAC 的 iSCSI 存儲流量和緩存融合流量使咱們的測試系統成本低廉,但永遠不要考慮在生產環境中使用該方法。
TOE 的基本用意是將 TCP/IP 協議的處理工做從主機處理器卸載到適配器上的硬件或系統中。TOE 一般內嵌在網絡接口卡 (NIC) 或主機總線適配器 (HBA) 中,用於減小 CPU 和服務器 I/O 子系統上的 TCP/IP 處理工做量以提升整體性能。
分配IP地址:
這裏的 SCAN ip地址必須經過GNS或者DNS來解析的,這裏使用的是DNS解析.其餘地址都在hosts文件裏定義。
#Public Network - (eth0)
192.168.1.51 rac01.xzxj.edu.cn rac01
192.168.1.52 rac02.xzxj.edu.cn rac02
#Private Network - (eth1)
192.168.0.51 rac01-priv.xzxj.edu.cn rac01-priv
192.168.0.52 rac02-priv.xzxj.edu.cn rac02-priv
#Public Virtual IP - (eth0:1)
192.168.1.53 rac01-vip.xzxj.edu.cn rac01-vip
192.168.1.54 rac02-vip.xzxj.edu.cn rac02-vip
# Single Client Access Name (SCAN)
192.168.1.55 rac-scan.xzxj.edu.cn rac-scan
# Private Storage Network for Openfiler - (eth1)
192.168.0.50 openfiler-priv
#Public Storage Network for Openfiler - (eth0)
192.168.1.50 openfiler.xzxj.edu.cn openfiler
配置DNS,使之能解析rac-scan:
完了以後從新啓動或者從新載入配置文件:
在rac節點上測試,是否能解析:
OK,測試成功。
(3)、集羣時間同步服務:
配置集羣時間同步服務 — (CTSS):
若是您想使用集羣時間同步服務在集羣中提供同步服務,須要卸載網絡時間協議 (NTP) 及其配置。作以下操做:
要停用 NTP 服務,必須中止當前的 ntpd 服務,從初始化序列中禁用該服務,並刪除 ntp.conf 文件。
當安裝程序發現 NTP 協議處於非活動狀態時,安裝集羣時間同步服務將以活動模式自動進行安裝並經過全部節點的時間。若是發現配置了 NTP,則以觀察者模式啓動集羣時間同步服務,Oracle Clusterware 不會在集羣中進行活動的時間同步。
在安裝後,要確認 ctssd 處於活動狀態,請做爲網格安裝全部者 (grid) 輸入如下命令:
[grid@rac01 ~]$ crsctl check ctss
CRS-4701: The Cluster Time Synchronization Service is in Active mode.
CRS-4702: Offset (in msec): 0
配置網絡時間協議:
若是您正在使用 NTP,而且願意繼續使用它而不是集羣時間同步服務,那麼您須要修改 NTP 初始化文件,在其中設置 -x 標誌,這樣可避免向後調整時間。完成此任務後,重啓網絡時間協議後臺程序。
編輯/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 after successful ntpdate SYNC_HWCLOCK=no # Additional options for ntpdate NTPDATE_OPTIONS=""
而後,重啓 NTP 服務。
(4)、openfiler配置:
建立了三個 iSCSI 磁盤,如今能夠將它們呈現給網絡上的 iSCSI 客戶端(rac01 和 rac02)。
ISCSI目標:
網絡ACL:
(5)、在oracle RAC節點上配置iscsi卷:
確認節點上安裝了iscsi-initiator-utils*軟件包,沒有則安裝此軟件包:
配置 iSCSI(啓動器)服務,兩個節點都要操做:
這裏就不詳細介紹使用什麼命令了,我直接用我編寫的腳原本完成,過程相似:
如今已經成功發現並登陸到iSCSI目標了。
能夠經過查看 /dev/disk/by-path 目錄來肯定全部目標的當前映射:
在iscsi捲上建立分區:
只建立一個分區,在一個節點上執行便可,以下:
(6)、建立任務角色劃分操做系統權限組、用戶和目錄:
建立如下 O/S 組:
添加組:
添加grid用戶:
設置密碼:
爲 grid 用戶賬戶建立登陸腳本
以 grid 用戶賬戶分別登陸到兩個 Oracle RAC 節點並建立如下登陸腳本 (.bash_profile):
注:在爲每一個 Oracle RAC 節點設置 Oracle 環境變量時,確保爲每一個 RAC 節點指定惟一的 Oracle SID。對於此示例,我使用:
- rac01:ORACLE_SID=+ASM1
- rac02:ORACLE_SID=+ASM2
alias df='df -h'
alias du='du -sh'
alias la='ls -lha'
ORACLE_SID=+ASM1; export ORACLE_SID
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME
ORACLE_PATH=/u01/app/oracle/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
爲 Oracle 數據庫軟件建立組和用戶:
爲 oracle 用戶賬戶建立登陸腳本
以 oracle 用戶賬戶分別登陸到兩個 Oracle RAC 節點並建立如下登陸腳本 (.bash_profile):
注:在爲每一個 Oracle RAC 節點設置 Oracle 環境變量時,確保爲每一個 RAC 節點指定惟一的 Oracle SID。對於此示例,我使用:
- rac01:ORACLE_SID=racdb1
- rac02:ORACLE_SID=racdb2
加入.bash_profile
alias df='df -h'
alias du='du -sh'
alias la='ls -lha'
ORACLE_SID=racdb1; export ORACLE_SID
ORACLE_UNQNAME=racdb; export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
建立Oracle 基目錄路徑:
爲 Oracle 軟件安裝用戶設置資源限制:
A:修改/etc/security/limits.conf文件,加入如下內容:
B:編輯/etc/pam.d/login文件,加入如下內容:
session required pam_limits.so
C:根據您的 shell 環境,對默認的 shell 啓動文件進行如下更改,以便更改全部 Oracle 安裝全部者的 ulimit 設置(注意這裏的示例顯示 oracle 和 grid 用戶):
對於 Bourne、Bash 或 Korn shell,經過運行如下命令將如下行添加到 /etc/profile 文件:
對於 C shell(csh 或 tcsh),經過運行如下命令將如下行添加到 /etc/csh.login 文件:
(7)、爲 Oracle 配置 Linux 服務器:
配置內核參數:
向/etc/sysctl.conf文件里加入如下內容:
(8)、配置RAC 節點以即可以使用 SSH 進行遠程訪問,略………
3、安裝並配置ASMLib 2.0:
有關ASM的軟件能夠在如下網址找到:
根據本身的內核版本選擇相應的軟件包,這裏的內核是2.6.18-194,因此選擇如下三個軟件包:
oracleasm-2.6.18-194.el5-2.0.5-1.el5.i686.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
oracleasm-support-2.1.3-1.el5.i386.rpm
安裝這三個軟件包:
配置ASM:
如今,您已安裝了用於 Linux 的 ASMLib 程序包,接下來您須要配置並加載 ASM 內核模塊。須要在兩個 Oracle RAC 節點上做爲 root 用戶賬戶執行該任務。
注:oracleasm 命令的默認路徑爲 /usr/sbin。之前版本中使用的 /etc/init.d 路徑並未被棄用,但該路徑下的 oracleasm 二進制文件如今通常用於內部命令。若是輸入 oracleasm configure 命令時不帶 -i 標誌,則顯示當前配置。例如:
一、輸入如下命令,以使用 configure 選項運行 oracleasm 初始化腳本:
該腳本完成如下任務:
- 建立 /etc/sysconfig/oracleasm 配置文件
- 建立 /dev/oracleasm 掛載點
- 掛載 ASMLib 驅動程序文件系統
注:ASMLib 驅動程序文件系統並不是常規的文件系統。它只用於自動存儲管理庫與自動存儲管理驅動程序的通信。
二、輸入如下命令以加載 oracleasm 內核模塊:
爲oracle建立ASM磁盤:
建立 ASM 磁盤只需在 RAC 集羣中的一個節點上以 root 用戶賬戶執行。我將在 rac01 上運行這些命令。在另外一個 Oracle RAC 節點上,您將須要執行
scandisk 以識別新卷。該操做完成後,應在兩個 Oracle RAC 節點上運行 oracleasm listdisks 命令以驗證是否建立了全部 ASM 磁盤以及它們是否可用。
在rac02上掃描磁盤:
兩個節點上驗證一下,是否成功建立ASM磁盤:
4、集羣的 Oracle Grid Infrastructure 的安裝前任務:
所需的oracle軟件以下:
- 適用於 Linux 的 Oracle Database 11g 第 2 版 Grid Infrastructure (11.2.0.1.0)
- 適用於 Linux 的 Oracle Database 11g 第 2 版 (11.2.0.1.0)
- Oracle Database 11g 第 2 版 Examples(可選)
安裝用於 Linux 的 cvuqdisk 程序包
在兩個 Oracle RAC 節點上安裝操做系統程序包 cvuqdisk。若是沒有 cvuqdisk,集羣驗證明用程序就沒法發現共享磁盤,當運行(手動運行或在 Oracle Grid Infrastructure 安裝結束時自動運行)集羣驗證明用程序時,您會收到這樣的錯誤消息:「Package cvuqdisk not installed」。使用適用於您的硬件體系結構(例如,x86_64 或 i386)的 cvuqdisk RPM。
cvuqdisk RPM 包含在 Oracle Grid Infrastructure 安裝介質上的 rpm 目錄中。
設置環境變量 CVUQDISK_GRP,使其指向做爲 cvuqdisk 的全部者所在的組(本文爲 oinstall):
在保存 cvuqdisk RPM 的目錄中,使用如下命令在兩個 Oracle RAC 節點上安裝 cvuqdisk 程序包:
使用 CVU 驗證是否知足 Oracle 集羣件要求
記住要做爲 grid 用戶在將要執行 Oracle 安裝的節點 (racnode1) 上運行。此外,必須爲 grid 用戶配置經過
用戶等效性實現的
SSH 連通性。
在grid軟件目錄裏運行如下命令:
能夠忽略下面這個錯誤:
使用 CVU 驗證硬件和操做系統設置
查看
CVU 報告。CVU 執行的全部其餘檢查的結果報告應該爲「passed」,以後才能繼續進行 Oracle Grid Infrastructure 的安裝。
5、爲集羣安裝 Oracle Grid Infrastructure:
這裏點擊test時,測試ssh用戶等效性,以前我已創建過鏈接,因此點擊test提示已經創建鏈接,下一步。
這裏出現了一個小問題,由於我麼在dns中定義因此提示不能解析節點的VIP,在dns定義以後經過了。