1。 預先準備和檢查工作
集群中所有計算機上禁用 SELinux(只適用于 RHEL4 U2 以及更高版本),disable follow service:
chkconfig --level 2345 pcmcia off
chkconfig --level 2345 kudzu off
chkconfig --level 2345 isdn off
chkconfig --level 2345 sendmail off
chkconfig --level 2345 rhnsd off
chkconfig --level 2345 cups off
chkconfig --level 2345 cups-config-daemon off
chkconfig --level 2345 cpuspeed off
chkconfig --level 2345 gpm off
chkconfig --level 2345 apmd off
chkconfig --level 2345 lm_sensors off
chkconfig --level 2345 mdmonitor off
集群中所有計算機上configure ntp server and clinet on two server
vi /etc/ntp.conf
service ntpd start
chkconfig --level 35 ntpd on
2.集群中所有計算機上修改vi /etc/hosts文件,如下所示
127.0.0.1 localhost(這里必須這樣修改,否則RAC節點名出現在回送地址中,安裝RAC期間可能會報錯)
10.1.250.17 racl
10.1.250.18 rac2
192.168.100.100 rac1-priv
192.168.100.200 rac2-priv
10.1.250.19 rac1-vip
10.1.250.20 rac2-vip
3.集群中所有計算機上檢查必需的 RPM
必須安裝以下程序包(或更高版本):
make-3.80-5
glibc-2.3.4-2.9
glibc-devel-2.3.4-2.9
glibc-headers-2.3.4-2.9
glibc-kernheaders-2.4-9.1.87
cpp-3.4.3-22.1
compat-db-4.1.25-9
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
compat-libstdc++-33-3.2.3-47.3
compat-libstdc++-296-2.96-132.7.2
openmotif-2.2.3-9.RHEL4.1
setarch-1.6-1
iscsi-initiator-utils-4.0.3.0-2.i386.rpm (use IP SAN)
4.集群中所有計算機上調整網絡設置,設置共享內存和信號參數
vi /etc/sysconfig/network-script/ifcfg-ethX
service network restart
編輯 vi /etc/sysctl.conf文件,添加如下信息,這些信息可以根據自己的機器實際情況來調整
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
/etc/sysctl.conf -p 使配置生效
設置oracle對文件的要求:
編輯文件:vi /etc/security/limits.conf 加入以下語句:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
編輯文件:vi /etc/pam.d/login 加入以下語句(可能應該加在最后一條規則之前):
session required /lib/security/pam_limits.so
配置并加載 hangcheck-timer 模塊
hangcheck-timer 模塊有兩個關鍵的參數:
hangcheck-tick:此參數定義了系統運行狀況檢查的間隔時間。默認值為 60 秒;Oracle 建議將它設置為 30 秒。
hangcheck-margin:此參數定義了 hangcheck-timer 在重置 RAC 節點前所容許的最大掛起延遲。它定義了以秒為單位的誤差幅度。默認值為 180 秒;Oracle 建議將它設置為 180 秒。
注意:這兩個 hangcheck-timer 模塊參數表示在該模塊重置系統前 RAC 節點必須掛起的時長。當以下條件為真時將會重置節點:
系統掛起時間 > (hangcheck_tick + hangcheck_margin)
配置 Hangcheck 內核模塊參數
每次加載 hangcheck-timer 內核模塊(手動加載或由 Oracle 加載)時,它都需要知道對我們剛剛討論的兩個參數(hangcheck-tick 和 hangcheck-margin) 所使用的值。這些值需要在每次重新啟動 Linux 服務器后可用。為此,在 /etc/modprobe.conf 文件中創建一個具有正確值的條目,如下所示:
# su -
# echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modprobe.conf
每次加載 hangcheck-timer 內核模塊時,它將使用在 /etc/modprobe.conf 文件中創建的條目定義的值
要手動加載 hangcheck-timer 內核模塊并驗證它是否使用在 /etc/modprobe.conf 文件中定義的正確值,運行以下命令:
modprobe hangcheck-timer
grep Hangcheck /var/log/messages | tail -2
Sep 27 23:11:51 linux2 kernel:Hangcheck:starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds)
5. 在集群的一個節點的共享存儲設備上創建分區
創建四個分區:一個1G分區用于 Oracle 的集群件共享文件,
余下的三個分區用于 ASM(存儲所有 Oracle 數據庫文件和閃回恢復區)。
在創建了所有必要分區后,現在應以 root 用戶帳戶在集群中所有計算機上使用以下語法將分區的更改情況通知給內核:
partprobe
6. 在集群中所有計算機上創建oracle用戶和目錄 /opt/oracle/app 用于安裝oracle 數據庫程序文件
/opt/oracle/ocfs2 用于Oracle 集群文件系統 (OCFS2) 的掛載點;/opt/oracle/crs用于安裝oracle crs軟件.
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
mkdir -p /opt/oracle/app
mkdir -p /opt/oracle/ocfs2
mkdir -p /opt/oracle/crs
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle
passwd oracle
集群中所有計算機上修改oracle用戶的.bash_profile文件如下所示
注意:當為每個 RAC 節點設置 Oracle 環境變量時,請確保為每個 RAC 節點分配唯一的 Oracle SID!
su - oracle
vi ~/.bash_profile
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/app
export ORA_CRS_HOME=/opt/oracle/crs
export ORACLE_SID=orcl1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:ORA_CRS_HOME/bin:$ORACLE_BASE/common/oracle/bin
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
為每個 RAC 節點設置 root 環境變量
su - root
vi ~/.bash_profile
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:
注意,在第二個節點上,修改SID=orcl2
source ~/.bash_profile 使配置生效
7.集群中所有計算機上建立節點之間的互信
sudo vi /etc/ssh/sshd_config
PermitRootLogin yes
PubkeyAuthentication yes
sudo service sshd restart
采用ssh建立oracle用戶的互信.
su - oracle
ssh-keygen -t dsa 一路回車結束
vi authorized_keys 加入集群中所有計算機(包括自己)~/.ssh/id_dsa.pub文件中的內容
exec ssh-agent $SHELL
ssh-add
ssh rac1(rac2...,rac1-priv...) date
應該在所有節點上跨集群的所有接口執行這些測試,注意:首次執行這些測試時,*作系統將顯示一個密鑰并請求用戶接受或拒絕。
輸入“Yes”將接受并注冊此密鑰。
8.安裝配置ocfs2
使用與自己*作系統版本相符合的ocfs,ocfs console
rpm -Uvh ocfs2-2.6.9-42.EL-1.2.3-1.i686.rpm ocfs2console-1.2.1-1.i386.rpm ocfs2-tools-1.2.1-1.i386.rpm
在集群中所有計算機配置ocfs2
su root
作為根用戶,執行以下命令
# ocfs2console &
Cluster
選擇“Configure Nodes” 在客戶端 1 上添加 2 個節點
rac1 10.1.250.17
rac2 10.1.250.18
單擊 apply
Cluster
選擇“Propogate Configuration”(發送至客戶端 2)
退出 ocfs2console 后,將獲得一個類似如下所示的 /etc/ocfs2/cluster.conf。需要在集群中的所有節點上完成該過程,
并且所有節點的 OCFS2 配置文件必須完全相同:
node:
ip_port = 7777
ip_address = 10.1.250.17
number = 0
name = linux1
cluster = ocfs2
node:
ip_port = 7777
ip_address = 10.1.250.18
number = 1
name = linux2
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
在使用 OCFS2 執行任何*作(如格式化或掛載文件系統)之前,我們需要先運行 OCFS2 的集群堆棧 O2CB
NM:用于跟蹤 cluster.conf 中的所有節點的節點管理器
HB:當節點加入或離開集群時向上/向下發出通知的心跳服務
TCP:處理節點之間的通信
DLM:用于跟蹤所有鎖、這些鎖的所有者和狀態的分布式鎖管理器
CONFIGFS:在 /config 中掛載的用戶空間驅動的配置文件系統
DLMFS:用戶空間與內核空間 DLM 的接口
已將以上所有集群服務打包到 o2cb 系統服務 (/etc/init.d/o2cb) 中。
調整 O2CB 心跳閾值 (驅動器越慢,心跳閥值設置越大。)
在集群的所有節點上執行以下*作。
/etc/init.d/o2cb unload
/etc/init.d/o2cb configure
Load O2CB driver on boot (y/n) [n]:y
Cluster to start on boot (Enter "none" to clear) [ocfs2]:ocfs2
O2CB_HEARTBEAT_THRESHOLD 設置為 301
確認 O2CB 心跳閾值的設置是否正確
cat /proc/fs/ocfs2_nodemanager/hb_dead_threshold
格式化 OCFS2 文件系統
注意:只能在 RAC 集群中的一個節點上創建 OCFS2 文件系統。為創建文件系統,我們使用 Oracle 可執行文件 mkfs.ocfs2
,以 root 用戶帳戶僅從 rac1 運行以下命令:
mkfs.ocfs2 -b 4K -C 32K -N 2 -L ocfs2 /dev/sda1
在所有節點上掛載 OCFS2 文件系統:
mount -t ocfs2 -o datavolume,nointr -L "ocfs2" /opt/oracle/ocfs2
將以下行添加到集群中兩個 Oracle RAC 節點上的 /etc/fstab 文件中:
LABEL=ocfs2 /opt/oracle/ocfs2 ocfs2 _netdev,datavolume,nointr 0 0
注意用于掛載此文件系統的“_netdev”選項。OCFS2 卷必須使用 _netdev 掛載選項。
該掛載選項指示將在網絡啟動后掛載該卷,在關閉網絡前卸載該卷。
使用 ls 命令檢查/opt/oracle/ocfs2的所有權。應把權限設置為 0775,并將所有者設置為“oracle”、將組設置為“oinstall”。
reboot
再次檢查以確保這些設置
mount
LABEL=ocfs2 /opt/oracle/ocfs2 ocfs2 type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local)
cat /proc/fs/ocfs2_nodemanager/hb_dead_threshold
301
OCFS2 包含一個錯誤,即不會在每次引導時加載驅動程序,如果在每次引導時收到以下錯誤:
...
Mounting other filesystems:
mount.ocfs2:Unable to access cluster service
Cannot initialize cluster mount.ocfs2:
Unable to access cluster service Cannot initialize cluster [FAILED]
...
Red Hat 更改了在 chkconfig-1.3.11.2-1 與 chkconfig-1.3.13.2-1 之間注冊服務的方式。O2CB 腳本習慣使用前者。
在嘗試配置引導屬性之前:
刪除 /etc/init.d/o2cb 中的以下幾行
### BEGIN INIT INFO
# Provides:o2cb
# Required-Start:
# Should-Start:
# Required-Stop:
# Default-Start: 2 3 5
# Default-Stop:
# Description:Load O2CB cluster services at system boot.
### END INIT INFO
重新注冊 o2cb 服務。
chkconfig --del o2cb
chkconfig --add o2cb
chkconfig --list o2cb
o2cb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# ll /etc/rc3.d/*o2cb*
lrwxrwxrwx 1 root root 14 Sep 29 11:56 /etc/rc3.d/S24o2cb -> ../init.d/o2cb
該服務應為默認運行級別中的 S24o2cb。
繼續設置引導屬性,如下所示:
/etc/init.d/o2cb offline ocfs2
/etc/init.d/o2cb unload
/etc/init.d/o2cb configure
9. 安裝,配置自動存儲管理ASM2.0
在集群的全部節點上安裝ASM2.0 rpm
rpm -Uvh oracleasm-2.6.9-42.EL-2.0.3-1.i686.rpm \
oracleasmlib-2.0.2-1.i386.rpm \
oracleasm-support-2.0.3-1.i386.rpm
執行/etc/init.d/oracleasm configure
默認用戶輸入oracle,默認組輸入dba,其他都y,y就可以了
9.1創建ASM磁盤
在一個節點上執行
/etc/init.d/oracleasm createdisk VOL1 /dev/sda2
/etc/init.d/oracleasm createdisk VOL2 /dev/sda3
/etc/init.d/oracleasm createdisk VOL3 /dev/sda4
創建好后,執行/etc/init.d/oracleasm listdisks可以看到
VOL1
VOL2
VOL3
使用oracleasm-discover來探測ASM硬盤:
然后在另外節點上執行 應該可以看到相同的內容
/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks
oracleasm-discover
10. 集群的一個節點安裝Oracle 10G cluster軟件
如果運行的是 Red Hat Linux,則必須安裝到集群中的每個 Oracle RAC 節點上。安裝 cvuqdisk RPM(僅適用于 RHEL 用戶)
如果沒有 cvuqdisk,CVU 將無法發現共享磁盤,您在運行 CVU 時會收到錯誤消息“Package cvuqdisk not installed(程序包 cvuqdisk 未安裝)”。
cvuqdisk RPM 可在 rpm 目錄中的 Oracle 集群件安裝介質中找到.
在 rac1 中找到 cvuqdisk RPM 并將其復制到 rac2,然后在兩個 Oracle RAC 節點上執行以下步驟進行安裝:
cd /opt/oracle/clusterware/rpm
rpm -iv cvuqdisk-1.0.1-1.rpm
利用 CVU 檢查 CRS 的安裝前任務
驗證遠程訪問/用戶等效性
應該從 rac1(將在該節點運行所有的 Oracle 安裝)運行 CVU。運行 CVU 之前,
以 oracle 用戶帳戶登錄并驗證已針對集群中的所有節點配置了遠程訪問.
利用 CVU 檢查 CRS 的安裝前任務:
/opt/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
查看 CVU 報告。注意,報告中幾個可以忽略的錯誤。
第一個錯誤有關“oinstall”組 [作為基本組] 中的用戶“oracle”的成員資格。考慮到本文的目的,“oracle”用戶帳戶只能分配給“dba”組,
因此可以忽略該錯誤,沒什么問題。
第二個錯誤與為 VIP 查找一組適合的接口有關。
最后一組可忽略的錯誤與處理 RHEL4 Update 4 中不存在的特定 RPM 程序包版本有關。例如:
compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.128
這些特定的程序包在 CVU 報告中列為缺少,請確保在集群中的兩個 Oracle RAC 節點上安裝了正確版本的 compat-* 程序包。
例如,在 RHEL4 Update 4 中,這些程序包應為:
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
compat-libstdc++-33-3.2.3-47.3
利用 CVU 檢查硬件和*作系統設置
/opt/oracle/clusterware/cluvfy/runcluvfy.sh stage -post hwos -n rac1,rac2 -verbose
查看 CVU 報告。注意,報告中幾個可以忽略的錯誤。
第一個錯誤有關“oinstall”組 [作為基本組] 中的用戶“oracle”的成員資格。考慮到本文的目的,“oracle”用戶帳戶只能分配給“dba”組,因此可以忽略該錯誤,沒什么問題。
第二個錯誤與為 VIP 查找一組適合的接口有關。這是 Metalink 說明 338924.1 中的一個錯誤文件:
Suitable interfaces for the private interconnect on subnet "192.168.2.0":
linux2 eth1:192.168.2.101
linux1 eth1:192.168.2.100
ERROR:
Could not find a suitable set of interfaces for VIPs.
Result: Node connectivity check failed.
如說明中所述,可以忽略該錯誤,沒什么問題。
另請注意,如果檢查共享存儲可訪問性將失敗。
Checking shared storage accessibility...
WARNING:
Unable to determine the sharedness of /dev/sde on nodes:
linux2,linux2,linux2,linux2,linux2,linux1,linux1,linux1,linux1,linux1
Shared storage check failed on nodes "linux2,linux1".
該警告也可忽略,沒什么問題。雖然我們知道這些磁盤可見并在集群中的兩個 Oracle RAC 節點中共享,
但本身將失敗。導致該錯誤的若干原因已得到證明。第一個原因來自 Metalink,
指出 cluvfy 當前沒有使用 SCSI 設備之外的其他設備。這將包括設備(如 EMC PowerPath)和卷組(如 Openfiler 中的卷組)。
截至本文撰寫之日,除了使用手動方法檢測共享設備外沒有其他解決方法。
該錯誤的另一個原因由 Oracle Corporation 的 Bane Radulovic 提出。他的研究表明,
CVU 在 Linux 上調用 smartclt 時,smartclt 不會從 iSCSI 設備返回序列號。
例如,針對 /dev/sde 進行的檢查顯示:
# /usr/sbin/smartctl -i /dev/sde
smartctl version 5.33 [i686-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen
Home page ishttp://smartmontools.sourceforge.net/
Device: Openfile Virtual disk Version: 0
Serial number:
Device type: disk
Local Time is: Wed Oct 25 23:41:20 2006 EDT
Device supports SMART and is Disabled
Temperature Warning Disabled or Not Supported
安裝 Oracle 10g 集群件軟件
Oracle 集群件共享文件
系統將把由 Oracle 集群件使用的兩個共享文件(實際上是文件組)存儲到我們在前面創建的 Oracle 集群文件系統第 2 版 (OFCS2) 中。
這兩個共享 Oracle 集群件文件組是:
Oracle 集群注冊表 (OCR)
文件 1:/opt/oracle/ocfs2/OCRFile
文件 2:/opt/oracle/ocfs2/OCRFile_mirror
大小:(2 * 100MB) = 200M
CRS 表決磁盤
文件 1:/opt/oracle/ocfs2/CSSFile
文件 2:/opt/oracle/ocfs2/CSSFile_mirror1
文件 3:/opt/oracle/ocfs2/CSSFile_mirror2
大小:(3 * 20MB) = 60MB
注意:不能對這兩個共享 Oracle 集群件文件使用自動存儲管理 (ASM):Oracle 集群注冊表 (OCR) 或 CRS 表決磁盤 文件。
問題是只有這兩個文件就緒并可以訪問后才可以啟動 Oracle 實例。要使 ASM 可用,應首先運行 ASM 實例。
另請注意,可以將這兩個共享文件存儲到 OCFS2、共享的原始設備或其他供應商的集群化文件系統中。
以oracle用戶登錄X終端,建立集群中所有計算機上節點之間的互信!
exec ssh-agent $SHELL
ssh-add
開始安裝cluster軟件
clusterware unzip 目錄./runInstaller
*確認安裝目錄是/opt/oracle/crs
*如果愿意可以將clustername由crs修改成其他的名稱
*添加兩個節點,如下所示
____________________________________________________________________
Public Node Name Private Node Name Virtual Node Name
rac1 rac1-priv rac1-vip
rac2 rac2-priv rac2-vip
____________________________________________________________________
*要修改一下eth0的類型,他默認的是private,修改為public
*指定OCR和mirror的路徑
Specify OCR Location: /opt/oracle/crs/OCRFile
Specify OCR Mirror Location:/opt/oracle/crs/OCRFile_mirror
*指定Voting磁盤路徑
Voting Disk Location: /opt/oracle/crs/CSSFile
Additional Voting Disk 1 Location:/opt/oracle/crs/CSSFile_mirror1
Additional Voting Disk 2 Location:/opt/oracle/crs/CSSFile_mirror2
*安裝快結束時.會要求以root執行orainsRoot.sh和root.sh腳本,以root用戶打開一個新的終端,一個一個節點順序執行,
千萬不要搶時間一起執行
*執行最后一個root.sh的時候,可能會報""eth0" is not public.Public interfaces should be used to configure virtual IPs."
這樣的錯誤.最簡單的變通方法是從出現錯誤的上一個節點中以 root 用戶的身份手動重新運行 vipca (GUI)。
請記住,vipca 是一個 GUI.
$ORA_CRS_HOME/bin/vipca
出現“VIP Configuration Assistant”時,我按如下所示回應屏幕提示:
Network interfaces: 選擇兩個接口 — eth0 和 eth1
選擇兩個節點,配置一下虛擬ip的信息:rac1-vip,rac2-vip.
* 選擇"ok","exit".退出vipca.
這時,才能返回CRS安裝界面選擇"ok",運行三個腳本后,選擇"exit" 至此,clusterware安裝就ok了.
檢查一下集群節點
$ORA_CRS_HOME/bin/olsnodes -n
rac1 1
rac2 2
驗證crs安裝
/opt/oracle/crs/bin/crs_stat
NAME=ora.rac1.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE on rac1
NAME=ora.rac1.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE on rac1
NAME=ora.rac1.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on rac1
NAME=ora.rac2.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE on rac2
NAME=ora.rac2.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE on rac2
NAME=ora.rac2.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on rac2
檢查 Oracle 集群件自動啟動腳本
ls -l /etc/init.d/init.*
如果發現因 CSS 后臺程序超時引起的問題。
錯誤在日志文件 $ORA_CRS_HOME/css/log/ocssd1.log 中記錄為:
clssnmDiskPingMonitorThread:voting device access hanging (45010 miliseconds)
驅動器越慢,這種情況就越經常出現。需要將misscount修改為 360
只啟動集群中的一個節點!
從一個節點中,以 root 用戶帳戶的身份登錄并鍵入:
/opt/oracle/crs/bin/crsctl set css misscount 360
重新引導此單個節點 ,啟動集群中的所有其他節點。
安裝失敗刪除CRS的方法(先建立集群中所有計算機上節點之間的互信和X WINDWOS 環境!)
su - root
chown oracle.oinstall /opt/oracle/crs
su - oracle(建立集群中所有計算機上節點之間的互信和X WINDWOS 環境!)
./runInstall-->deinstall-->所有Oracle 10g軟件-->remove
rm -rf /etc/ora* /opt/oracle/oraInventory/ /opt/oracle/crs /tmp/* /etc/init.d/init* /opt/oracle/ocfs2/*
reboot
11. 安裝Oracle 10g軟件 (先建立集群中所有計算機上節點之間的互信和X WINDWOS 環境!)
安裝 Oracle 數據庫軟件之前,我們應該使用集群驗證實用程序 (CVU) 運行以下數據庫安裝前檢查。
/opt/oracle/clusterware/cluvfy/runcluvfy.sh stage -pre dbinst -n rac1,rac2 -r 10gR2 -verbose
查看 CVU 報表。注意,該報表將包含我們在檢查 CRS 安裝前任務時收到的錯誤:找不到一組合適的 VIP 接口,
以及找不到 RHEL4 Update 中不存在的特定 RPM 程序包。可以忽略這兩個錯誤,沒什么問題。
Oracle的安裝需要注意
Name: OraDb10g_home1 Location:/opt/oracle/app
*節點的選擇上,一定要選上所有的節點.
*保留其他默認值
*選擇 "Install database software only",先不要建instance,等數據庫安裝完畢后時候dbca創建
*安裝完成后,需要執行root.sh腳本,(從運行數據庫安裝的節點開始)不要著急,一個節點一個節點執行
安裝結束時,退出 OUI
12. 建立TNS偵聽 (先建立集群中所有計算機上節點之間的互信和X WINDWOS 環境!)
集群的一個節點以oracle用戶執行
$ netca &
*選擇所有節點
*選擇Listener configuration
*其他的都選擇默認即可
結束后可以驗證一下偵聽是否已經在所有節點上運行
ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' | awk '{print $9}'
應該可以看到
LISTENER_RAC1
另外一個節點應該是
LISTENER_RAC2
13. 創建數據庫實例 (先建立集群中所有計算機上節點之間的互信和X WINDWOS 環境!)
在執行 DBCA 前,確保為 ORACLE環境正確設置了 $ORACLE_HOME 和 $PATH
以oracle用戶在任一節點執行
dbca &
*選擇 Create a Database
*選擇所有節點
*選擇Custom Database
*全局數據庫名輸入orcl,SID也是orcl
*擇 Use the Same Password for All Accounts。輸入口令(兩次)并確保此口令不是以數字開頭。
*存儲選項選擇 use ASM
*提供要用于新 ASM 實例的 SYS 口令。
此外,從第 2 版開始,ASM 實例服務器參數文件 (SPFILE) 可以位于共享磁盤上。
您將需要修改“Create server parameter file (SPFILE)”的默認條目以駐留在 OCFS2 分區上,
如下所示:/opt/oracle/ocfs2/dbs/spfile+ASM.ora。所有其他選項可以保留其默認值。
然后將有一個對話框詢問您是否要創建并啟動 ASM 實例。選擇 OK 按鈕確認此對話框。
OUI 將立即在 RAC 集群的所有節點上創建并啟動 ASM 實例。
*在ASM Disk Groups配置界面,選擇Create New,會顯示之前通過ASMlib創建的3個卷VOL1到VOL3
如果在本文前面部分創建的卷沒有顯示在“Select Member Disks”窗口中:(ORCL:VOL1、ORCL:VOL2 和 ORCL:VOL3),
則單擊“Change Disk Discovery Path”按鈕并輸入“ORCL:VOL*”。對于第一個“Disk Group Name”,我使用了字符串“DATA”。
在“Select Member Disks”窗口中選擇前兩個 ASM 卷(ORCL:VOL1 和 ORCL:VOL2)。將“Redundancy”設置為“Normal”。
這兩列現在的狀態應為“PROVISIONED”。確認此窗口中的所有值均正確后,單擊 [OK] 按鈕。
這將顯示“ASM Disk Group Creation”對話框。完成 ASM 磁盤組創建過程時,將返回到“ASM Disk Groups”窗口。
再次單擊 Create New 按鈕。對于第二個“Disk Group Name”,使用字符串 FLASH。
在“Select Member Disks”窗口中選擇最后一個 ASM 卷 (ORCL:VOL3)。將“Redundancy”選項設置為“External”。
最后一個卷的狀態也將更改為“PROVISIONED”。確認此窗口中的所有值均正確后,單擊 [OK] 按鈕。
這將顯示“ASM Disk Group Creation”對話框。完成 ASM 磁盤組創建過程后,您將返回到“ASM Disk Groups”窗口,
其中創建并選擇了兩個磁盤組。使用新創建的 Disk Group Name ORCL_DATA1 旁邊的復選框選擇一個磁盤組
(確保未選擇 FLASH_RECOVERY_AREA 的磁盤組),然后單擊 [Next] 繼續。
*Database File Locations 選擇DATA
*Recovery Configuration 選擇FLASH_RECOVERY_AREA ,DATA Redundancy,選擇externel,使用磁盤組名稱 +FLASH
如果使用的磁盤組的大小約為 100GB。可以使用 90GB 的 Flash Recovery Area Size
*Database Content所有數據庫組件(和目標表空間)設置為它們的默認值
數據庫字符集選Simplified Chinese ZHS16GBK
*Service name 可以輸入taf,TAF Policy選擇Basic
*Database Storage 可以保留其默認值。
完成dbca,Oracle RAC就已經完全安裝成功了!
安裝失敗刪除Oracle 10g軟件的方法
./runInstall-->deinstall-->所有Oracle 10g軟件-->remove
rm -rf /opt/oracle/app/* /opt/oracle/ocfs2/* /usr/local/bin/dbhome /usr/local/bin/oraenv
rm -rf /etc/ora* /opt/oracle/oraInventory/ /opt/oracle/admin /opt/oracle/crs /tmp/* /etc/init.d/init*
delete ASM磁盤
在一個節點上執行
/etc/init.d/oracleasm deletedisk VOL1
/etc/init.d/oracleasm deletedisk VOL2
/etc/init.d/oracleasm deletedisk VOL3
重新創建ASM磁盤
在一個節點上執行
/etc/init.d/oracleasm createdisk VOL1 /dev/sda2
/etc/init.d/oracleasm createdisk VOL2 /dev/sda3
/etc/init.d/oracleasm createdisk VOL3 /dev/sda4
/etc/init.d/oracleasm listdisks
然后在另外節點上執行
/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks
重新格式化OCFS2 分區
mkfs.ocfs2 -b 4k -C 32k -N 2 -L ocfs2 /dev/sda1
reboot
14. 驗證 RAC 集群和數據庫配置
有五個為 SRVCTL 定義的節點級任務:
添加和刪除節點級應用程序
設置和取消設置節點級應用程序的環境
管理節點應用程序
管理 ASM 實例
啟動和停止一組包含虛擬 IP 地址、監聽器、Oracle 通知服務和 Oracle 企業管理器代理的程序(出于維護目的)。
所有實例和服務的狀態
$ srvctl status database -d orcl
Instance orcl1 is running on node rac1
Instance orcl2 is running on node rac2
單個實例的狀態
$ srvctl status instance -d orcl -i orcl2
Instance orcl2 is running on node rac2
在數據庫全局命名服務的狀態
$ srvctl status service -d orcl -s taf
Service orcltest is running on instance(s) orcl2, orcl1
特定節點上節點應用程序的狀態
$ srvctl status nodeapps -n rac1
VIP is running on node:rac1
GSD is running on node:rac1
Listener is running on node:rac1
ONS daemon is running on node:rac1
ASM 實例的狀態
$ srvctl status asm -n rac1
ASM instance +ASM1 is running on node rac1.
列出配置的所有數據庫
$ srvctl config database
orcl
顯示 RAC 數據庫的配置
$ srvctl config database -d orcl
顯示指定集群數據庫的所有服務
$ srvctl config service -d orcl
orcltest PREF:orcl2 orcl1 AVAIL:
顯示節點應用程序的配置 -(VIP、GSD、ONS、監聽器)
$ srvctl config nodeapps -n rac1 -a -g -s -l
VIP exists.:/vip-linux1/192.168.1.200/255.255.255.0/eth0:eth1
GSD exists.
ONS daemon exists.
Listener exists.
顯示 ASM 實例的配置
$ srvctl config asm -n linux1
+ASM1 /u01/app/oracle/product/10.2.0/db_1
RAC的啟動和關閉
如果都遵循了上面的安裝步驟,那么每次節點重新啟動的時候,所有服務都會自動啟動,如果需要關閉或者啟動某個節點,如下所示
*停止RAC
emctl stop dbconsole
srvctl stop instance -d orcl -i orcl1
srvctl stop instance -d orcl -i orcl2
srvctl stop asm -n rac1
srvctl stop asm -n rac2
srvctl stop nodeapps -n rac1
srvctl stop nodeapps -n rac2
*啟動RAC
和上面的步驟正好相反即
srvctl start nodeapps -n rac1
srvctl start nodeapps -n rac2
srvctl start asm -n rac1
srvctl start asm -n rac2
srvctl start instance -d orcl -i orcl2
srvctl start instance -d orcl -i orcl1
emctl start dbconsole
啟動/停止所有實例及其啟用的服務。
srvctl start database -d orcl
srvctl stop database -d orcl
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
