歡迎您光臨本站 註冊首頁

Oracle RAC安裝實錄

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

原文作者:永遠的阿木
文章出處: AIX快活如意齋

上迴文章中說道2005年第一個工作日熬了個通宵,具體講來是到廈門和Beta一起實施oracle rac安裝。雖然已經拿到證書,但因為工作性質關係,資料庫維護還是做得不多,這次讓我好好重溫oracle知識。

Beta比較熱誠,已經在客戶那裡奮戰兩天兩夜,幾近油枯燈盡(年輕人要注意保重身體啊),我到廈門也就是參加掃尾。

總的說來,全過程碰到的問題不少,但任務比較緊急,一些細節來不及考證,回來后在辦公室環境中搭一個環境繼續研究,另外試驗環境還可供其它同事參考。

本系列文章全程記錄安裝過程中碰到的所有問題和解決手段。



1.準備環境
2.準備環境(續)
3.HACMP安裝配置
4.OracleRac安裝前準備
5.安裝oracle軟體
6.Oracle建庫
7.RAC使用和測試


<下一篇>

一、準備環境。

搭設的硬體環境如下:

44p270主機一台:375MHz PowerPC_POWER3 CPU一顆、512 MB內存、18.2GB內置硬碟、主板內置網卡+2968乙太網卡、6230 SSA卡;
f80主機一台:450MHz PowerPC RS64III CPU四顆、2048MB內存、36.4GB內置硬碟、主板內置網卡+2968乙太網卡、6230 SSA卡;
7133-D40磁碟陣列:2塊36.4B 1萬轉硬碟構成RAID1陣列。

最後的軟體環境如下:
AIX 5L V5.2、ML04+IY64978+IY63366
HACMP V5.1+U498114

1.操作系統安裝問題

f80主機剛剛在廈門光榮退租,要重新安裝操作系統。安裝過程中發現一個奇怪的問題,很多執行文件的存取屬性被清空(變成----------)而導致無許可權執行,這首先嚴重影響了打ML04補丁,bos.rte補丁中的一個script總是運行不成功,報/usr/lib/methods/cfgsf命令執行失敗(bos.rte.config_u[42]: /usr/lib/methods/cfgsf: 0403-006 Execute permission denied.
update: Failed while executing the bos.rte.config_u script.),結果bos.rte及依賴其的幾個文件集補丁無法實施。因為cfgsf文件本身就屬於bos.rte,installp在安裝bos.rte的時候先把它的存取屬性清除了(覆蓋原文件),然後再執行它,所以在installp之前修改cfgsf的屬性沒有意義。

解決方法比較笨拙,寫一個死循環shell程序,不斷地執行chmod 500 /usr/lib/methods/cfgsf命令(見下)。
while true
do
chmod 500 /usr/lib/methods/cfgsf
done
方過此關。

存取屬性被清空的執行文件還有很多,引發了相當多的類似問題,其中一個就是影響了包括ssa卡和硬碟在內的很多設備的識別配置,/usr/lib/methods/下的文件都要檢查一下。還有/usr/ssa下的幾個bin目錄也要重新設置一下執行屬性。

因為在網上找不到類似的解決案例,我懷疑是手上的安裝光碟有問題。

 

繼續軟硬體環境的準備。

1.2.網卡問題

270主機上的一塊網卡,訪問網路總是有問題,ping不通。換過網線、插槽都不行,但把卡插到另一台b50主機上,網路訪問又正常,懷疑是270主機主板問題,執行diag診斷(要先ifconfig en1 detach,否則報設備忙,無法進一步診斷),報下面錯誤:
SRN: 777-104

Description: Internal Loopback Test Failed.

Probable FRUs:
ent1 FRU: 091H0397 P2-I4/E1
IBM 10/100 Mbps Ethernet PCI Adapter (23100020)

看來還是網卡有問題,回到b50主機再做diag診斷,也報類似錯誤,正式宣告該卡死刑。換了一塊2968乙太網卡,沒再報網路問題了。

1.3.創建增強併發訪問卷組

進行hacmp和資料庫配置之前,要先準備資源,網路(ip和tty)、appserver和以前沒什麼區別,有特性的是共享卷組的準備。

因為要併發處理,所以卷組要建成concurrent capable的,AIX 5.2下只支持Enhanced Concurrent卷組:
# mkvg -C -n -y datavg hdisk1
0516-1335 mkvg: This system does not support enhanced
concurrent capable volume groups.

以前在網上碰到同樣的報錯求助,當時是胡亂猜疑,不達要點。這回找到了真正的原因——沒有安裝bos.clvm.enh:
# lslpp -L bos.clvm.enh
Fileset Level State Type Description (Uninstaller)
----------------------------------------------------------------------------
bos.clvm.enh 5.2.0.40 A F Enhanced Concurrent Logical Volume Manager

安裝后,重新執行mkvg就正常了。

 

硬體環境和軟體準備好后,接下來配置HACMP。

二、HACMP安裝配置

因為是實驗環境,HACMP配置不是一開始就制定好的,修正過幾次,甚至到後面安裝oracle碰了釘子,又再回過頭來修改配置。

2.1. HACMP安裝

在RAC下,必須安裝cluster.es.clvm.rte文件集,否則concurrent資源組無法增加并行卷組資源,安裝后需重新啟動主機,才可生效。

最後系統里所有的hacmp文件集列表如下:
Fileset Level State Type Description (Uninstaller)
----------------------------------------------------------------------------
cluster.adt.* 5.1.0.0 C F ES Client Demos
cluster.es.client.* 5.1.0.6 A F ES Client Libraries
cluster.es.clvm.rte 5.1.0.0 C F ES for AIX Concurrent Access
cluster.es.cspoc.* 5.1.0.6 A F ES CSPOC Commands
cluster.es.server.* 5.1.0.6 A F ES Server Diags
cluster.es.worksheets 5.1.0.6 A F Online Planning Worksheets
cluster.license 5.1.0.0 C F HACMP Electronic License
cluster.msg.* 5.1.0.0 C F HACMP CSPOC Messages - U.S. English

2.2. HACMP配置

rac下,一般使用oracle自己的failover功能在客戶端實現服務主機的切換。但還希望藉助hacmp實現單機上的網卡熱備,所以拓撲配置上有些講究。

想到cascading資源組中ipat會讓service-ip地址從主機飄到備機上(所不願見到的),所以先使用persistent-ip。經測試,persistent-ip可以在網卡失敗時切換到備份網卡(但比service-ip花的時間要長不少,客戶端中斷感覺明顯),功能基本滿足要求。但實際使用中,這種配置方法給後面的rac安裝造了不少麻煩,最後只能放棄。

在rac配置上掙扎很長一段時間,被周平一句話點醒,可以用配置僅包含單個節點的cascading資源組,來避免service-ip地址在主機間的漂移。最終的配置下,各種莫名其妙的問題迎刃而解(看來rac與hacmp的拓撲關係密切)。

最後的拓撲、資源配置如下:
# /usr/es/sbin/cluster/utilities/cltopinfo -i
IP Label Network Type Node Address If Netmask
========= ======= ==== ==== ======= ==== =======
f80 net_ether_01 ether f80 10.0.0.208 255.255.255.0
p270 net_ether_01 ether f80 10.0.0.207 255.255.255.0
f80_boot2 net_ether_01 ether f80 192.168.1.208 en0 255.255.255.0
f80_boot1 net_ether_01 ether f80 192.168.0.208 en1 255.255.255.0
f80_tty1_01 net_rs232_01 rs232 f80 /dev/tty1 tty1
f80 net_ether_01 ether p270 10.0.0.208 255.255.255.0
p270 net_ether_01 ether p270 10.0.0.207 255.255.255.0
p270_boot1 net_ether_01 ether p270 192.168.0.207 en0 255.255.255.0
p270_boot2 net_ether_01 ether p270 192.168.1.207 en1 255.255.255.0
p270_tty1_01 net_rs232_01 rs232 p270 /dev/tty1 tty1

# /usr/es/sbin/cluster/utilities/clshowres

Resource Group Name oravg
Node Relationship concurrent
Site Relationship ignore
Participating Node Name(s) p270 f80
Dynamic Node Priority
Service IP Label
Filesystems ALL
Filesystems Consistency Check fsck
Filesystems Recovery Method sequential
Filesystems/Directories to be exported
Filesystems to be NFS mounted
Network For NFS Mount
Volume Groups
Concurrent Volume Groups datavg
Use forced varyon for volume groups, if necessaryfalse
Disks
GMD Replicated Resources
PPRC Replicated Resources
Connections Services
Fast Connect Services
Shared Tape Resources
Application Servers oracle
Highly Available Communication Links
Primary Workload Manager Class
Secondary Workload Manager Class
Delayed Fallback Timer
Miscellaneous Data
Automatically Import Volume Groups false
Inactive Takeover false
Cascading Without Fallback false
SSA Disk Fencing false
Filesystems mounted before IP configured false
Run Time Parameters:

Node Name p270
Debug Level high
Format for hacmp.out Standard

Node Name f80
Debug Level high
Format for hacmp.out Standard

Resource Group Name p270ip
Node Relationship cascading
Site Relationship ignore
Participating Node Name(s) p270
Dynamic Node Priority
Service IP Label p270
Filesystems
Filesystems Consistency Check fsck
Filesystems Recovery Method sequential
Filesystems/Directories to be exported
Filesystems to be NFS mounted
Network For NFS Mount
Volume Groups
Concurrent Volume Groups
Use forced varyon for volume groups, if necessaryfalse
Disks
GMD Replicated Resources
PPRC Replicated Resources
Connections Services
Fast Connect Services
Shared Tape Resources
Application Servers
Highly Available Communication Links
Primary Workload Manager Class
Secondary Workload Manager Class
Delayed Fallback Timer
Miscellaneous Data
Automatically Import Volume Groups false
Inactive Takeover false
Cascading Without Fallback false
SSA Disk Fencing false
Filesystems mounted before IP configured false
Run Time Parameters:

Node Name p270
Debug Level high
Format for hacmp.out Standard

Resource Group Name f80ip
Node Relationship cascading
Site Relationship ignore
Participating Node Name(s) f80
Dynamic Node Priority
Service IP Label f80
Filesystems
Filesystems Consistency Check fsck
Filesystems Recovery Method sequential
Filesystems/Directories to be exported
Filesystems to be NFS mounted
Network For NFS Mount
Volume Groups
Concurrent Volume Groups
Use forced varyon for volume groups, if necessaryfalse
Disks
GMD Replicated Resources
PPRC Replicated Resources
Connections Services
Fast Connect Services
Shared Tape Resources
Application Servers
Highly Available Communication Links
Primary Workload Manager Class
Secondary Workload Manager Class
Delayed Fallback Timer
Miscellaneous Data
Automatically Import Volume Groups false
Inactive Takeover false
Cascading Without Fallback false
SSA Disk Fencing false
Filesystems mounted before IP configured false
Run Time Parameters:

Node Name f80
Debug Level high
Format for hacmp.out Standard

# /usr/es/sbin/cluster/utilities/cllsserv
oracle /hacmp/startapp.sh /hacmp/stopapp.sh
# cat /hacmp/startapp.sh
#!/usr/bin/ksh
banner app start

# cat /hacmp/stopapp.sh
#!/usr/bin/ksh
banner app stop

鑒於資料庫啟動的複雜性,沒有在appserver中啟動oracle資料庫。

# lsvg datavg
VOLUME GROUP: datavg VG IDENTIFIER: 000234ff00004c00000001015b74227a
VG STATE: active PP SIZE: 64 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 543 (34752 megabytes)
MAX LVs: 256 FREE PPs: 311 (19904 megabytes)
LVs: 22 USED PPs: 232 (14848 megabytes)
OPEN LVs: 15 QUORUM: 2
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: no
Concurrent: Enhanced-Capable Auto-Concurrent: Disabled
VG Mode: Concurrent
Node ID: 2 Active Nodes: 1
MAX PPs per PV: 1016 MAX PVs: 32
LTG size: 128 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable

# cat /etc/hosts
127.0.0.1 loopback localhost # loopback (lo0) name/address
192.168.0.207 p270_boot1
192.168.1.207 p270_boot2
10.0.0.207 p270
192.168.0.208 f80_boot1
192.168.1.208 f80_boot2
10.0.0.208 f80

2.3. 啟動HACMP

啟動HACMP碰到一些問題:
f80: 0513-015 The snmpd Subsystem could not be started.
f80: Please check subsystem resources and try again later.
f80:
f80: *******
f80: Jan 10 2005 00:40:47 !!!!!!!!!! ERROR !!!!!!!!!!
f80: *******
f80: Jan 10 2005 00:40:47 clstart: Unable to start Cluster SMUX Peer Daemon (clsmuxpd) without snmpd.
dsh: 5025-509 f80 rsh had exit code 1
檢查/usr/sbin/snmp*文件的存取屬性,全部為空,看來還是安裝操作系統時的老問題。更改成正確屬性,啟動恢復正常。
# ls -l /usr/sbin/snmp*
lrwxrwxrwx 1 root system 9 Jan 07 01:16 /usr/sbin/snmpd -> snmpdv3ne
-rwxr-x--- 1 root system 310990 Jul 22 17:09 /usr/sbin/snmpd64v1
-rwxr-x--- 1 root system 273646 Jul 22 17:09 /usr/sbin/snmpdv1
-rwxr-x--- 1 root system 271622 Jun 05 2004 /usr/sbin/snmpdv3ne
-rwxr-x--- 1 root system 15848 Jan 07 01:24 /usr/sbin/snmpinfo
-rwxr-x--- 1 root system 612075 Jun 24 2004 /usr/sbin/snmpmibd
-rwxr-x--- 1 root system 696002 Jun 24 2004 /usr/sbin/snmpmibd64
-r-xr-xr-x 1 bin bin 16756 Jun 05 2004 /usr/sbin/snmptrap
-r-xr-xr-- 1 root system 11876 Jan 07 01:24 /usr/sbin/snmpv3_ssw

 

戲台搭好,終於到安裝ORACLE這步了,正式安裝前還是有些功課要做。

安裝RAC這部分,我主要是參照Beta的總結文檔,而這篇文檔又來自ITPUB的fatstone(原鏈接就懶得找了,著者見諒),據說原始的祖宗是Metalink上的Step-By-Step Installation of RAC on IBM AIX,不過我是拜讀過oracle這篇文章的,與最近的改過又改過的文章相比,已經是面目全非,看不出一點親緣的關係了。

三、Oracle RAC安裝配置

3.1.安裝準備

主要是創建oracle用戶和所屬用戶組,以及用戶環境:

  • 添加oinstall、dba、hagsuser用戶組,gid分別為300/301/302(注意兩台主機保持一致)。
  • 添加oracle用戶,uid=300,primary group = oinstall,group set = dba,oinstall,hagsuser,放開ulimit限制(都設成-1)
  • 編輯/etc/hosts.equiv或/home/oracle目錄下的.rhosts,包含兩台主機所有的ip-label,執行rsh確認兩台機oracle用戶都可以遠程執行對方主機上程序
  • 建立並裝載/u01文件系統,安裝oracle Enterprise Edition Server 9.2大概需要5GB的空間,打9.2.0.4 PatchSet的時候,詐稱要1.7GB的空間,由於都是覆蓋原有的文件,實際沒增加空間佔用。執行chown -R oracle:oinstall /u01修改存取許可權。
  • 建立/var/opt/oracle目錄,執行chown -R oracle:oinstall /var/opt/oracle修改存取許可權,該目錄放srvConfig.loc配置
  • 設置oracle目錄下的.profile:

ORACLE_BASE=/u01/app/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/9.2.0;export ORACLE_HOME
ORACLE_SID=CRDT1;export ORACLE_SID
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS33
ORACLE_TERM=vt100;export ORACLE_TERM
TMPDIR=/tmp;export TMPDIR
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib;export LD_LIBRARY_PATH
PATH=/usr/ccs/bin:$ORACLE_HOME/bin:/usr/bin:/usr/opt/networker/bin:$PATH;export PATH
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
TERM=vt100;export TERM
EDITOR=vi; export EDITOR
TMP=/tmp;export TMP
CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/plsql/jlib:$ORACLE_HOME/assistants/jlib:$ORACLE_HOME/assistants/dbca/jlib;export CLASSPATH
DBCA_RAW_CONFIG=/home/oracle/dbca_raw_config.txt;export DBCA_RAW_CONFIG
# 注1:原文中有DISPLAY=127.0.0.1:0.0,會影響遠程登錄CDE的使用,周平說從筆記本電腦登陸上來,操作CDE有問題,原因在此。
# 注2:兩台主機上的ORACLE_SID分別是CRDT1和CRDT2

  • 建立資料庫用裸設備,用作資料庫數據文件,註:其中有些lv是否能用上要根據後面oracle的安裝選項。

mklv -y'o9_system_1g' -w'n' -s'n' -r'n' datavg 16
mklv -y'o9_users_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_tools_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_temp_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_undotbs1_1g' -w'n' -s'n' -r'n' datavg 16
mklv -y'o9_undotbs2_1g' -w'n' -s'n' -r'n' datavg 16
mklv -y'o9_log11_1g' -w'n' -s'n' -r'n' datavg 16
mklv -y'o9_log12_1g' -w'n' -s'n' -r'n' datavg 16
mklv -y'o9_log21_1g' -w'n' -s'n' -r'n' datavg 16
mklv -y'o9_log22_1g' -w'n' -s'n' -r'n' datavg 16
mklv -y'o9_indx_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_cwmlite_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_example_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_oemrepo_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_spfile_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_cntrl1_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_cntrl2_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_cntrl3_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_drsys_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_odm_512m' -w'n' -s'n' -r'n' datavg 8
mklv -y'o9_xdb_512m' -w'n' -s'n' -r'n' datavg 8

  • 設置裸設備許可權:在兩台機上分別執行chown oracle:dba /dev/ro9*
  • 建立dbca dbca_raw_config.txt,設置oracle datafile和裸設備的對應關係

$ cat dbca_raw_config.txt
system=/dev/ro9_system_1g
users=/dev/ro9_users_512m
tools=/dev/ro9_tools_512m
temp=/dev/ro9_temp_512m
undotbs1=/dev/ro9_undotbs1_1g
undotbs2=/dev/ro9_undotbs2_1g
redo1_1=/dev/ro9_log11_1g
redo1_2=/dev/ro9_log12_1g
redo2_1=/dev/ro9_log21_1g
redo2_2=/dev/ro9_log22_1g
indx=/dev/ro9_indx_512m
example=/dev/ro9_example_512m
spfile=/dev/ro9_spfile_512m
control1=/dev/ro9_cntrl1_512m
control2=/dev/ro9_cntrl2_512m
control3=/dev/ro9_cntrl3_512m
drsys=/dev/ro9_drsys_512m
xdb=/dev/ro9_xdb_512m

 

3.2. 安裝oracle軟體

  • 使用oracle用戶登陸CDE界面,打開一個dtterm,執行. ./.profile應用先前設置的環境變數。
  • Oracle提供一個installPrep.sh程序,可用於檢查oracle安裝的條件是否準備就緒,因為hacmp 5.1軟體發布在後,腳本對cluster檢查會產生誤報,還有一個typo錯誤,我更正後,適用於hacmp 5.1的installPrep.sh版本供大家下載(oracle安裝準備情況檢查腳本
  • 開始安裝。為了加快安裝速度和便於再次安裝(呵呵),可以將oracle安裝光碟全部拷貝到磁碟上。注意每張光碟要分目錄拷貝,否則到時侯就得改stage下的disk.label文件了。
  • 先su到root用戶,執行rootpre.sh。注意兩台機器都需要執行。
  • 在一台機上,進入到第一張安裝盤的路徑,執行./runInstaller。
  • 首先詢問是否已經運行rootpre.sh,如果已經運行,則回答Y,過一會出現安裝界面窗口。
  • 選擇NEXT,選擇需要安裝ORACLE的節點如果沒有出現節點選擇,說明HA配置有問題,確保兩個節點都處於UP狀態。
  • 指定軟體的安裝路徑:
  • 選擇安裝產品:
  • 選擇企業版安裝方式:
  • 只安裝軟體:
  • 指定SRVCONFIG路徑。如果是首次安裝,會出現一個窗口指定SRVCONFIG的位置,這是一個RAW設備,前面已經建立過了。在/var/opt/oracle下會出現一個srvConfig.loc文件,在$ORACLE_HOME/srvm/config下會出現同名文件。
  • 指定JDK的路徑:/usr/java131,如果沒有,先安裝java。
  • 選擇INSTALL開始安裝:(先確認summary裡面信息是否都正確,有沒有紅色錯誤)
  • 安裝進度到100%時,還要等很長時間,這時候安裝程序自動把應用拷貝到另一個節點上,全部完成後提示在兩個節點都執行root.sh(以root身份)。

3.3. 安裝9.2.0.4 Patch

到METALINK上下載9204的補丁級,PATCH號3095277,下載完是一個.zip格式的文件,本地解壓縮后得到9204_aix5l64_release.cpio,把這個文件FTP到小型機上,執行:cpio -icvd < 9204_aix5l64_release.cpio解壓縮。

  • 用oracle用戶登陸,進入到9204補丁的路徑,運行runInstaller。注意:path 可能有錯,一定要選擇補丁所在的products.jar。
  • 先升級OUI到2.2.0.18。
  • 裝完OUI后再選擇PATCH9204,一路NEXT安裝就可以了。安裝完后在兩個節點都執行root.sh(以root身份)

3.4. 建庫前準備

  • 首次安裝,要初始化SRV配置,先檢查/var/opt/oracle/srvConfig.loc是否已經指向正確的設備,然後執行srvconfig -init初始化。如果報/u01/app/oracle/product/9.2.0/JRE/bin/jre[63]: /usr/java131/bin/aix/native_threads/jre: not found.錯誤,可能與你的JAVA_HOME環境變數設置問題有關,建議不要顯示設置JAVA_HOME環境變數。
  • 在兩個節點都以oracle用戶身份登陸,執行gsdctl start,如果出現Successfully started GSD on local node提示,說明啟動成功,最常見的問題就是掛在那裡。到metalink上查過,還沒有解決方法,預期的patch也被設成無期的9.2.0.99。能做的就是kill殺掉,反覆多試幾次。
  • 執行netca,設置Listener。這個地方會出現錯誤:無法啟動netca,手工改名$ORACLE_HOME/lib/libnjni9.so 文件,估計系統要用$ORACLE_HOME/lib32下的同名文件。
  • netca也支持cluster configuration,按照預設值一路配置下去即可,完成後,會同時修改兩台機器上的listener.ora配置。
  • 兩個節點上都執行lsnrctl start啟動listener。

3.5. Oracle建庫

  • 鍵入dbca創建RAC實例,選擇cluster database。
  • 選擇創建資料庫后,選擇全部節點。
  • 建庫模板選擇新資料庫。
  • 鍵入GLOBAL DATABASE NAME,不能超過5個字元。
  • 選擇要安裝的資料庫組件。如果沒有特別的需要,把所有的勾都去掉。
  • 一般選擇專有伺服器工作模式,選擇第一項並NEXT。
  • 資料庫參數設置,其中注意字符集選擇中文;還有,如果之前dbca_raw_config.txt和DBCA_RAW_CONFIG環境變數設置正確,所有的datafile應該指向事先創建的裸設備(rac只能使用基於裸設備的datafile)。
  • 點擊FINISH開始建庫,之前可以選擇保存建庫的腳本以便用於未來可能的手工建庫。建庫過程中可能碰到的問題有:
    • Listener錯誤:如果listener已經配置啟動,並且狀態正確,就不應該有此錯誤
    • ORA-29807錯誤:與xml有關,也不是總會碰上。忽略錯誤后,等資料庫安裝完,以sys身份執行$ORACLE_HOME/rdbms/prvtxml.plb,如果執行select * from dba_objects where owner = 'SYS' and status = 'INVALID' ; 發現無效對象,可執行utlrp.sql校驗這些對象。
    • 如果建庫完成後,資料庫沒有起來,在HACMP5.1下裝了幾次還沒有碰到順利起來的,這個問題應該與RAC找不到正確的內部網路通訊路徑有關,可以通過顯式設置cluster_interconnects參數來解決(可在剛才的「設置資料庫參數」時預先設好。):CRDT1.cluster_interconnects='192.168.0.207:192.168.1.207'(p270上)、CRDT2.cluster_interconnects='192.168.0.208:192.168.1.208'(f80上)。
    • 也是建庫結束時,碰到ORA-27504: IPC error creating OSD context,這也是因為cluster_interconnects參數沒有設置的問題,更嚴重的是這種情況下連spfile都還沒有建好。解決方法是,進入$ORACLE_BASE/admin/scripts目錄,手工編輯init.ora文件,加入cluster_interconnects參數設置,然後執行postDBCreation.sql完成建庫后的其他操作。

 

3.6. 使用和測試

  • rac下啟動資料庫可以用傳統的sqlplus方式,也可以用srvctl命令:
    • 啟動資料庫:srvctl start database -d CRDT;
    • 檢查數據啟動狀態:srvctl status database -d CRDT;
    • 關閉資料庫:srvctl stop database -d CRDT;
  • 使用srvctl命令時,可能會碰到PRKP-1040 Failed to get status of the listeners associated with instance 錯誤,這實際不影響資料庫的啟動,如果想要解決,手工編輯兩台主機上的$ORACLE_HOME/bin/gsd.sh(先停gsd)和$ORACLE_HOME/bin/gsd.sh文件,在'# Run ops...'之前case $PLATFORM in "AIX")下,3個"LIBPATH"都改成"LD_LIBRARY_PATH"即可。
  • dbca在安裝過程中,自動完成tnsnames.ora文件的設置,客戶端的配置可以參考伺服器上的設置:

CRDT2 =
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.208)(PORT = 1521))
  (CONNECT_DATA =
   (SERVICE_NAME = CRDT)
   (INSTANCE_NAME = CRDT2)
   )
  )

CRDT1 =
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.207)(PORT = 1521))
  (CONNECT_DATA =
   (SERVICE_NAME = CRDT)
   (INSTANCE_NAME = CRDT1)
   )
  )

CRDT =
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.207)(PORT = 1521))
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.208)(PORT = 1521))
   (LOAD_BALANCE = yes) # failover是預設打開的。
   )
  (CONNECT_DATA =
   (SERVER = DEDICATED)
   (SERVICE_NAME = CRDT)
   )
  )

  • 實際測試中,單網卡失敗情況下,hacmp自動完成swap_adapter,對客戶端幾乎沒有影響。
  • 但模擬節點失敗時,客戶端sqlplus需要重新連接,而且要連兩次才能接入。查了資料,對配置進行修改:

...
  (CONNECT_DATA =
   (SERVER = DEDICATED)
   (SERVICE_NAME = CRDT)
   (FAILOVER_MODE =
     (TYPE = session)
     (METHOD = basic)
     (DELAY = 10)
    )
   )
這樣,在節點失敗時,客戶端自動連接另一個可用節點,對用戶來說沒有影響。可以執行:
SELECT MACHINE, FAILOVER_TYPE, FAILOVER_METHOD, FAILED_OVER, COUNT(*)
FROM V$SESSION
GROUP BY MACHINE, FAILOVER_TYPE, FAILOVER_METHOD, FAILED_OVER;
SQL檢查session的TAF屬性。



[火星人 ] Oracle RAC安裝實錄已經有808次圍觀

http://coctec.com/docs/linux/show-post-74133.html