成本的相對廉價,技術的成熟,功能的強大此方案將越來越受中小企業的青睐。
虛擬機版本:Vwareserver1.0.6
Linux版本:redhat5.5enterprise服務器版
Oralce版本:oracle10g10.2.1
Oracle集群軟件:clusterware
VwareWorkstation版本在共享磁盤上沒有很好的解決辦法。Vwareserver在windows7安裝可能存在一定的驅動問題。本實驗是在xp系統上完成,下圖給出虛擬機的ip及主機名配置
Node1:主機名rac1
網卡1ip192.168.100.100
網卡2ip192.168.200.100
虛擬ip192.168.2.100
Node2主機名rac2
網卡1ip192.168.100.101
網卡2ip192.168.200.101
虛擬ip192.168.2.101
實驗利用vware配置虛擬機只需要配置一台即主節點,在虛擬機中的配置如:
該配置是一個重點配置,默認配置一個磁盤,大小為20G該磁盤為rac1的服務器磁盤,包括了linux系統的安裝及oracle軟件的安裝都在該磁盤上。
還需要分配其他四塊磁盤:2:ocr,3:vote4,5:asm
其大小分別為100M,100M,2G,2G
磁盤分部為:1,SCSI0:02,SCSI1:13,SCSI1:24,SCSI1:35,SCSI1:4且2-5都需要在高級中勾選independent-persisant選項
*硬盤分配的注意點:I/O適配器類型都選擇"LSILogin"方式
*所有磁盤類型都選在"SCSI",如果選擇IDE類型的磁盤的話,vware只能虛擬出4塊,而rac環境是需要5塊磁盤來實現。由於是在虛擬機中實現,建議將2-5磁盤配置到其他目錄中。
兩塊在安裝clusterware軟件的時候要用到,也就是ORACLERAC所必須的ocr以及vote磁盤,表現出來是裸設備方式,還有兩塊磁盤我們要用來作為共享磁盤存放數據文件,即asm磁盤
rac環境中需要兩塊網卡,當然可以創建地三塊網卡和pc交互。便於文件等內容的傳輸
網卡的類型選擇的都為Bridged類型。該類型的網卡在虛擬機就等同一個獨立的網卡。可以和主機通信也可以連通互聯網。下給出一張配置後的截圖:
在虛擬機中安裝linux,在磁盤分區時將除0:0外的其他磁盤不參與分區,即如下圖,只勾選sda選項。在掛盤上隨個人喜好。為方便這裡只掛了/一個盤
關於ip的配置,eth0:ip192.168.100.100
Eth1:ip192.168.200.100
Eth2:選擇自動獲取
服務的話,建議都選擇安裝,目前還沒有完全了解其中包的關聯關系。
disk.locking="false"
diskLib.dataCacheMaxSize="0"
diskLib.dataCacheMaxReadAheadSize="0"
diskLib.DataCacheMinReadAheadSize="0"
diskLib.dataCachePageSize="4096"
diskLib.maxUnsyncedWrites="0"
scsi1:1.deviceType="disk"
scsi1:2.deviceType="disk"
scsi1:3.deviceType="disk"
scsi1:4.deviceType="disk"
1,編輯/etc/hosts文件,添加如下內容:
192.168.100.100rac1
192.168.100.101rac2
192.168.100.200rac1-vip
192.168.100.201rac2-vip
192.168.2.100rac1-priv
192.168.2.101rac2-priv
2,創建組oinstall,dba,用戶oracle
groupaddoinstall
groupadddba
useradd-d/home/oracle-goinstall-Gdbaoracle
如果是非虛機安裝,要注意記錄下用戶和組ID,在其它機器上創建同名組時,務必確認組ID和用戶ID與此相同。
設置oracle用戶密碼(密碼也設為oracle)
passwdoracle
3,配置oralce用戶的bash_profile文件
exportTMP=/tmp
exportTMPDIR=$TMP
exportORACLE_BASE=/opt/ora10g
exportORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
exportORACLE_SID=RACDB1
exportORACLE_TERM=xterm
exportPATH=/usr/sbin:$PATH
exportPATH=$ORACLE_HOME/bin:$PATH
exportLD_LIBRARY_PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
ulimit-u16384-n65536
umask022
2,創建/opt/ora10g目錄,要注意該目錄所有者或oracle用戶的權限
[root@rac1~]#mkdir/opt/ora10g
由於該目錄主要由oracle用戶操作,因此我們將其所有者改為oracle
[root@rac1~]#chownoracle.oinstall/opt/ora10g
3,配置內核參數
[root@rac1~]#vi/etc/sysctl.conf
增加或修改下列內容
kernel.shmmni=4096
kernel.sem=25032000100128
fs.file-max=65536
net.ipv4.ip_local_port_range=102465000
net.core.rmem_default=1048576
net.core.rmem_max=1048576
net.core.wmem_default=262144
net.core.wmem_max=262144
[root@rac1~]#sysctl-p
讓設置生效
4,提高Oracle用戶的shell限制
設置oracle使用的文件數權限
vi/etc/security/limits.conf
增加下列內容
oraclesoftnproc2047
oraclehardnproc16384
oraclesoftnofile1024
oraclehardnofile65536
修改安全限制
vi/etc/pam.d/login
增加:
sessionrequired/lib/security/pam_limits.so
配置Hangcheck計時器
vi/etc/rc.local
增加:
modprobehangcheck-timerhangcheck-tick=30hangcheck_margin=180
通過fdisk-l可以看看所有磁盤的狀態,如果前期裸設備規劃正確的話,在諸如/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde下面是看不到任何分區信息的,這也表明這些磁盤都是干淨的磁盤,不像/dev/sda那樣不干淨(有了文件系統)。下面我們要對/dev/sdb到/dev/sde的四塊磁盤進行分區,分區過程如下圖所示(這裡以/dev/sdb為例,其他磁盤操作類似):
Fdisk/devv/sdb
n->p->1->->w
創建一個新的磁盤,設置為主分區。並且給予全部的空間
剩下的就是補丁包的安裝了
http://oss.oracle.com/projects/compat-oracle/files/Enterprise_Linux/
經整理需要的除上面地址給對的
給出一個截圖,一些是在oracle官網上下載的包,一些是系統文件中的包
網絡整理在打補丁這個環節,現將本實驗打一些補丁包順序羅列如下:
1,compat-binutils215-2.15.92.0.2-24.i386
2,compat-libcwait-2.1-1.i386
3,compat-libstdc++-egcs-1.1.2-1.i386
4,openmotif21-debuginfo-2.1.30-11.EL5.i386
5,xorg-x11-libs-compat-6.8.2-1.EL.33.0.1.i386
6,oracleasm-support-2.1.2-1.el5.i386
7,oracleasm-2.6.18-53.el5-2.0.4-1.el5.i686
8,oracleasm-2.6.18-53.el5xen-2.0.4-1.el5.i686
1,kernel-debug-2.6.18-53.el5.i686
2,oracleasm-2.6.18-53.el5debug-2.0.4-1.el5.i686
其中1、2相互關聯
3,kernel-PAE-2.6.18-53.el5.i686
4,oracleasm-2.6.18-53.el5PAE-2.0.4-1.el5.i686
其中3、4相互關聯
5,libXp-1.0.0-8.1.el5.i386
6,openmotif21-2.1.30-11.EL5.i386
7,compat-oracle-el5-1.0-5.i386
其中5、6、7相互關聯
8,oracleasmlib-2.0.3-1.el5.i386
1,配置裸設備:
由於RHEL5中取消了rawdevices,如果不想將映射命令放到rc.local中的話,我們就需要將其配置到/etc/udev/rules.d/文件夾中
修改文件
/etc/udev/rules.d/60-raw.rules,添加內容如下圖所示:
ACTION=="add",KERNEL=="/dev/sdb1",RUN+="/bin/raw/dev/raw/raw1%N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw/dev/raw/raw1%M%m"
ACTION=="add",KERNEL=="/dev/sdc1",RUN+="/bin/raw/dev/raw/raw2%N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw/dev/raw/raw2%M%m"
ACTION=="add",KERNEL=="/dev/sdd1",RUN+="/bin/raw/dev/raw/raw3%N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="49",RUN+="/bin/raw/dev/raw/raw3%M%m"
ACTION=="add",KERNEL=="/dev/sde1",RUN+="/bin/raw/dev/raw/raw4%N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="65",RUN+="/bin/raw/dev/raw/raw4%M%m"
KERNEL=="raw[1-4]",OWNER="oracle",GROUP="oinstall",MODE="640"
重啟服務以及驗證
start_udev
ls/dev/raw–l
克隆rac2。
關閉rac1
Shutdown–hy0
將rac1中的文件拷貝到rac2上,並修改vmx文件
改完之後我們退回到RAC2目錄下,將RAC1.VMDK這個文件改為RAC2.VMDK:
在vware中打開rac2,修改hostname
Hostnamerac2
Vi/etc/sysconfig/network
修改網絡配置器
cd/etc/sysconfig/network-scripts/
ifconfig–a查看所有網卡信息,記錄mac地址
cd/etc/sysconfig/network-scripts/
mvifcfg-eth0.bakifcfg-eth0–f
mvifcfg-eth1.bakifcfg-eth1–f
mvifcfg-eth2.bakifcfg-eth2–f
將記錄的mac信息對應的更新到ifcfg-eth*文件中。
重啟網絡服務
Servicenetworkrestart
除此之外,還要切換到oracle用戶下修改ORACLE_SID這個環境變量。
同時修改/etc/hosts文件
至此,副節點的設置完畢,我們需要做的,就是重啟系統,讓新的主機名、IP地址等生效。
下面開始配置clusterware
在clusterware(CRS)和RacDatabase安裝過程中,OracleUniversalInstaller(OUI)必須能夠以oracle的身份自動將軟件復制到所有RAC節點。這裡我們通過配置ssh讓oracle用戶擁有不輸入密碼即可訪問各節點的能力。
首先兩個節點間互ping,要確保都是通的
要建立用戶等效性,需要在兩個節點上以oracle用戶身份生成用戶的公鑰和私鑰,首先在rac1執行:
[root@rac1opt]#su-oracle
[oracle@rac1~]$mkdir~/.ssh
[oracle@rac1~]$chmod700~/.ssh
[oracle@rac1~]$ssh-keygen-trsa
Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/home/oracle/.ssh/id_rsa):
Enterpassphrase(emptyfornopassphrase):
Entersamepassphraseagain:
Youridentificationhasbeensavedin/home/oracle/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/home/oracle/.ssh/id_rsa.pub.
Thekeyfingerprintis:
d2:69:eb:ac:86:62:27:50:99:ff:e8:1e:a2:e6:5d:7foracle@node1
[oracle@rac1~]$ssh-keygen-tdsa
Generatingpublic/privatedsakeypair.
Enterfileinwhichtosavethekey(/home/oracle/.ssh/id_dsa):
Enterpassphrase(emptyfornopassphrase):
Entersamepassphraseagain:
Youridentificationhasbeensavedin/home/oracle/.ssh/id_dsa.
Yourpublickeyhasbeensavedin/home/oracle/.ssh/id_dsa.pub.
Thekeyfingerprintis:
0a:9a:20:46:a2:28:ec:72:23:82:f2:9d:f8:62:9b:d1oracle@node1
接著在rac2中作同樣的操作
切回rac1
[oracle@rac1~]$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
[oracle@rac1~]$cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys
提示:下列命令會提示你輸入rac2的oracle密碼,按照提示輸入即可,如果失敗可重新嘗試執行命令。
[oracle@rac1~]$sshrac2cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
Theauthenticityofhost¨node2(192.168.100.102)¨can¨tbeestablished.
RSAkeyfingerprintis92:d1:ce:5b:c8:a1:52:d5:ac:00:5f:48:5d:12:06:e4.
Areyousureyouwanttocontinueconnecting(yes/no)?yes
Warning:Permanentlyadded¨node2,192.168.100.102¨(RSA)tothelistofknownhosts.
oracle@rac2¨spassword:
[oracle@rac1~]$sshrac2cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys
oracle@rac2¨spassword:
[oracle@rac1~]$scp~/.ssh/authorized_keys
rac2:~/.ssh/authorized_keys
oracle@rac2¨spassword:
authorized_keys100%19922.0KB/s00:00
兩機相互執行,看看是否還需要輸入密碼
[oracle@rac1~]$sshrac1date
[oracle@rac1~]$sshrac2date
[oracle@rac1~]$sshrac1-privdate
[oracle@rac1~]$sshrac2-privdate
切換至rac2執行
[oracle@rac2~]$sshrac1date
[oracle@rac2~]$sshrac2date
[oracle@rac2~]$sshrac1-privdate
[oracle@rac2~]$sshrac2-privdate
提示:
注意命令的返回信息,由於rac對節點間時間較敏感,因此如果此處顯示節點單時間不一至,建議同步(一般相隔超過20秒就需要同步時間了)。
注意:必須以root身份進行
首先在node1執行:
[root@rac1~]#/etc/init.d/oracleasmconfigure
ConfiguringtheOracleASMlibrarydriver.
Thiswillconfiguretheon-bootpropertiesoftheOracleASMlibrary
driver.Thefollowingquestionswilldeterminewhetherthedriveris
loadedonbootandwhatpermissionsitwillhave.Thecurrentvalues
willbeshowninbrackets(¨[]¨).Hittingwithouttypingan
answerwillkeepthatcurrentvalue.Ctrl-Cwillabort.
Defaultusertoownthedriverinterface[]:oracle
Defaultgrouptoownthedriverinterface[]:dba
StartOracleASMlibrarydriveronboot(y/n)[n]:y
FixpermissionsofOracleASMdisksonboot(y/n)[y]:y
WritingOracleASMlibrarydriverconfiguration:[OK]
Loadingmodule"oracleasm":[OK]
MountingASMlibdriverfilesystem:[OK]
ScanningsystemforASMdisks:[OK]
提示:如果本步執行出錯(可能出錯機率最高的是在ScanningsystemforASM),不妨將轉換一下命令行的執行方式,改成:
[root@rac1~]#sh/etc/init.d/oracleasmconfigure
有可能解決你的問題!
然後切換至rac2執行
[root@rac2~]#/etc/init.d/oracleasmconfigure
ConfiguringtheOracleASMlibrarydriver.
Thiswillconfiguretheon-bootpropertiesoftheOracleASMlibrary
driver.Thefollowingquestionswilldeterminewhetherthedriveris
loadedonbootandwhatpermissionsitwillhave.Thecurrentvalues
willbeshowninbrackets(¨[]¨).Hittingwithouttypingan
answerwillkeepthatcurrentvalue.Ctrl-Cwillabort.
Defaultusertoownthedriverinterface[]:oracle
Defaultgrouptoownthedriverinterface[]:dba
StartOracleASMlibrarydriveronboot(y/n)[n]:y
FixpermissionsofOracleASMdisksonboot(y/n)[y]:y
WritingOracleASMlibrarydriverconfiguration:[OK]
Loadingmodule"oracleasm":[OK]
MountingASMlibdriverfilesystem:[OK]
ScanningsystemforASMdisks:[OK]
再切換回rac1執行
[root@rac1~]#/etc/init.d/oracleasmcreatediskVOL1/dev/sdd1
Markingdisk"/dev/sdd1"asanASMdisk:[OK]
[root@rac1~]#/etc/init.d/oracleasmcreatediskVOL2/dev/sde1
Markingdisk"/dev/sde1"asanASMdisk:[OK]
[root@rac1linux-patch]#/etc/init.d/oracleasmscandisks
ScanningsystemforASMdisks:[OK]
查看一下當前的磁盤組:
[root@rac1~]#/etc/init.d/oracleasmlistdisks
VOL1
VOL2
rac2上也查看一下當前磁盤組:
[root@rac2~]#/etc/init.d/oracleasmscandisks
ScanningsystemforASMdisks:[OK]
[root@rac2~]#/etc/init.d/oracleasmlistdisks
VOL1
VOL2
檢查
/data/rhel5/clusterware/cluvfy/runcluvfy.shstage-precrsinst-nrac1,rac2–verbose
存在部分報錯如:CouldnotfindasuitablesetofinterfacesforVIPs.compat-*等等報錯,但可以忽略掉
安裝時時間必須同步,兩台虛擬機時刻存在時間不同步問題
可用ntp協議同
*****/usr/sbin/ntpdate192.168.100.100
*****sleep5;/usr/sbin/ntpdate192.168.100.100
*****sleep10;/usr/sbin/ntpdate192.168.100.100
*****sleep15;/usr/sbin/ntpdate192.168.100.100
*****sleep20;/usr/sbin/ntpdate192.168.100.100
*****sleep25;/usr/sbin/ntpdate192.168.100.100
*****sleep30;/usr/sbin/ntpdate192.168.100.100
*****sleep35;/usr/sbin/ntpdate192.168.100.100
*****sleep40;/usr/sbin/ntpdate192.168.100.100
*****sleep45;/usr/sbin/ntpdate192.168.100.100
*****sleep50;/usr/sbin/ntpdate192.168.100.100
*****sleep55;/usr/sbin/ntpdate192.168.100.100
隔5秒執行一次同步
Host+
Su oracle
建議在執行前先加載一下.bash_profile文件,加載oracle用戶的環境變量
./runInstaller–ignoreSysPreReqs
上圖處需要手工增加rac2的節點。
上圖處需要將eth0設置為public其他不用的改為donotuseeth1為private
上圖分別選擇ocr及vote磁盤位置
在rac1上執行:/opt/ora10g/oraInventory/orainstRoot.sh;
在rac2上執行:/opt/ora10g/oraInventory/orainstRoot.sh;
在rac1上執行:/opt/ora10g/product/10.2.0/crs_1/root.sh;
在rac2上執行:/opt/ora10g/product/10.2.0/crs_1/root.sh;
/opt/ora10g/product/10.2.0/crs_1/jdk/jre//bin/java:errorwhileloadingsharedlibraries:libpthread.so.0:cannotopensharedobjectfile:Nosuchfileordirectory
可以按照如下方式解決:
===============================
修改vipca文件
[root@node2opt]#vi/opt/ora10g/product/10.2.0/crs_1/bin/vipca
找到如下內容:
Removethisworkaroundwhenthebug3937317isfixed
arch=`uname-m`
if["$arch"="i686"-o"$arch"="ia64"]
then
LD_ASSUME_KERNEL=2.4.19
exportLD_ASSUME_KERNEL
fi
#Endworkaround
在fi後新添加一行:
unsetLD_ASSUME_KERNEL
以及srvctl文件
[root@node2opt]#vi/opt/ora10g/product/10.2.0/crs_1/bin/srvctl
找到如下內容:
LD_ASSUME_KERNEL=2.4.19
exportLD_ASSUME_KERNEL
同樣在其後新增加一行:
unsetLD_ASSUME_KERNEL
保存退出,然後在node2重新執行root.sh
當然,既然我們已經知道了有這個問題,建議最好在node2執行root.sh之前,首先修改vipca。
其實同時需要你改的還有$ORACLE_HOME/bin/srvctl文件,不然等裝完數據庫之後,srvctl命令也是會報這個錯誤地。要知道srvctl這麼常用,如果它執行老報錯,那可是相當致命啊。不過呢你現在才安裝到crs,離createdb還遠著呢,大可以等到創建完數據庫,待到需要管理時再修改該文件。
B).如果你碰到了這個錯誤:
Thegiveninterface(s),"eth0"isnotpublic.PublicinterfacesshouldbeusedtoconfigurevirtualIPs.
解決方式如下:
==============================
圖形界面上運行$CRS_HOME/bin/vipca,手工重新配置rac1-vip和rac2-vip。
[root@node2opt]#xhost+
[root@node2opt]#/opt/ora10g/product/10.2.0/crs_1/bin/vipca
留意該圖ip配置
C).如果你碰到了這個錯誤:
Error0(Native:listNetInterfaces:[3])
[Error0(Native:listNetInterfaces:[3])]
解決方式如下:
===============================
[root@node2bin]#./oifcfgiflist
eth1 192.168.200.0
virbr0192.168.122.0
eth0192.168.100.0
[root@node2bin]#./oifcfgsetif-globaleth0/192.168.100.0:public
[root@node2bin]#./oifcfgsetif-globaleth1/192.168.200.0:cluster_interconnect
[root@node2bin]#./oifcfggetif
eth0 192.168.100.0 globalpublic
eth1 192.168.200.0 globalcluster_interconnect
然後在視窗界面重新執行vipca即可,如上b例中所示。
13、然後返回node1中,執行腳本的窗口,點擊ok結束該窗口。
14、執行最後的環境配置
如果前面配置環境檢查出錯
以root身份執行$ORA_CRS_HOME/cfgtoollogs/configToolFailedCommands.sh
然後執行:
[root@rac1~]#/opt/ora10g/product/10.2.0/crs_1/bin/./crs_stat -t
至此clusterware集群軟件安裝完成。。
Host+
Su oracle
建議在執行前先加載一下.bash_profile文件,加載oracle用戶的環境變量
./runInstaller–ignoreSysPreReqs
此處需要將兩個兩個節點都選上
且只安裝軟件不安裝數據庫
./dbca
選擇安裝數據庫的類型
將兩個節點都勾選
選擇安裝的數據庫類型
這裡有兩項需要你指定,一個是globalname,同時還有一個sid的前綴,注意是前綴喲。然後oracle會自動為各節點分配sid,比如這裡的sid前綴是racdb,則node1的sid就會是racdb1,node2的將會是racdb2
選擇是否啟用EM
選擇存儲
選擇asm可用的磁盤組
當前為空,因此我們需要點擊Create New來創建一個
D) . 為新建的磁盤組指定冗余度和可用的設備並起個名
這裡不啟用冗余,點擊ok之後,asm將自動開始創建該磁盤組
指定數據庫文件位置
屏蔽掉了所有可選擇的數據庫組件
這塊有兩個地方需要注意,一個是要選擇正確的數據庫字符集(對於中文字符推薦ZHS16GBK)和國家字符集(建議AL16UTF16),另外就是要點擊AllnitiallzationParameters,屏蔽掉remote_listener初始化參數的值,不然在dbca執行建庫第一步的過程中可能會引發下列錯誤
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENERS_RACDB'
這是由於模板數據庫中配置了該初始化參數造成的,解決方式有如下幾種:
A) . 手工修改模版文件,注視掉該參數
B) . 選擇自定義數據庫,在執行安裝之前修改該初始化參數為空
C) . 創建數據庫時選擇保存建庫腳本而不創建數據庫,然後手工修改建庫腳本,再通過腳本創建
D) . 提前配置好監聽和Net ServiceName
恭喜你,RAC已經成功安裝了!整體來看比單機安裝要復雜,但這還不算什麼,只是環境搭建好還不算完,RAC的管理和部署才是最要命的,比如各節點啟動和關閉,備份策略如何調整,添加修改節點如何處理,所謂路漫漫其修遠矣,哥們繼續努力吧:)
[root@r4o10n2 install]# ./rootdelete.sh
PRKH-1010 : Unable to communicate with CRS services.
[PRKH-1000 : Unable to load the SRVM HAS shared library
[PRKN-1008 : Unable to load the shared library "srvmhas10"
or a dependent library, from
LD_LIBRARY_PATH="/oracle/product/10.2.0/crs/jdk/jre/lib/i386/client:/oracle/product/10.2.0/crs/jdk/jre/lib/i386:/oracle/product/10.2.0/crs/jdk/jre/../
lib/i386:/oracle/product/10.2.0/crs/lib32:/oracle/product/10.2.0/crs/srvm/lib32:/oracle/product/10.2.0/crs/lib:/oracle/product/10.2.0/crs/srvm/lib:"
[java.lang.UnsatisfiedLinkError: /oracle/product/10.2.0/crs/lib32/libsrvmhas10.so: libclntsh.so.10.1: cannot open shared object file: No such file or directory]]]
解決辦法:
在兩2上節點安裝32位的glibc-devel-2.3.4-2.43.i386.rpm,然後再重新安裝CRS
注意:必要是2個節點上都要安裝這個包,而且需要重新安裝CRS
解決過程:
[root@r4o10n2 RPMS]# rpm -qa|grep glibc
glibc-kernheaders-2.4-9.1.103.EL
glibc-2.3.4-2.43
glibc-headers-2.3.4-2.43
glibc-common-2.3.4-2.43
glibc-devel-2.3.4-2.43
glibc-2.3.4-2.43
[root@r4o10n2 RPMS]# rpm -ivh glibc-devel-2.3.4-2.43.i386.rpm
warning: glibc-devel-2.3.4-2.43.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
error: failed to stat /media/cdrecorder: No such file or directory
Preparing... ########################################### [100%]
1:glibc-devel ########################################### [100%]
[root@r4o10n2 RPMS]# rpm -qa|grep glibc
glibc-kernheaders-2.4-9.1.103.EL
glibc-devel-2.3.4-2.43
glibc-2.3.4-2.43
glibc-headers-2.3.4-2.43
glibc-common-2.3.4-2.43
glibc-devel-2.3.4-2.43
glibc-2.3.4-2.43
刪除CRS
rm /etc/oracle/*
rm -f /etc/init.d/init.cssd
rm -f /etc/init.d/init.crs
rm -f /etc/init.d/init.crsd
rm -f /etc/init.d/init.evmd
rm -f /etc/rc2.d/K96init.crs
rm -f /etc/rc2.d/S96init.crs
rm -f /etc/rc3.d/K96init.crs
rm -f /etc/rc3.d/S96init.crs
rm -f /etc/rc5.d/K96init.crs
rm -f /etc/rc5.d/S96init.crs
rm -Rf /etc/oracle/scls_scr
rm -f /etc/inittab.crs
rm -rf /home/oracle/oraInventory/
rm -rf /oracle/product/10.2.0/crs/*
dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=2560
dd if=/dev/zero of=/dev/raw/raw2 bs=8192 count=2560
chown -R oracle:oinstall /oracle
重新安裝,出現以下提示,說明已經解決該問題
The given interface(s), "eth0" is not public. Public interfaces should be used to configure virtual IPs.
libpthread.so.0: cannot open shared object file: No such file or directory 2012-09-21 13:28:08
分類: Linux
如果你碰到了這個錯誤:
/opt/ora10g/product/10.2.0/crs_1/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
可以按照如下方式解決:
===============================
修改vipca文件
[root@node2 opt]# vi /opt/ora10g/product/10.2.0/crs_1/bin/vipca
找到如下內容:
Remove this workaround when the bug 3937317 is fixed
arch=`uname -m`
if [ "$arch" = "i686" -o "$arch" = "ia64" ]
then
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
fi
#End workaround
在fi後新添加一行:
unset LD_ASSUME_KERNEL
以及srvctl文件
[root@node2 opt]# vi /opt/ora10g/product/10.2.0/crs_1/bin/srvctl
找到如下內容:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
同樣在其後新增加一行:
unset LD_ASSUME_KERNEL
保存退出,然後在node2重新執行root.sh
當然,既然我們已經知道了有這個問題,建議最好在node2執行root.sh之前,首先修改vipca。
其實同時需要你改的還有$ORACLE_HOME/bin/srvctl文件,不然等裝完數據庫之後,srvctl命令也是會報這個錯誤地。要知道srvctl這麼常用,如果它執行老報錯,那可是相當致命啊。不過呢你現在才安裝到crs,離create db還遠著呢,大可以等到創建完數據庫,待到需要管理時再修改該文件。
給你個關鍵字吧,手把手教你用VMware在linux下安裝oracle10g RAC,比較詳細了
[視頻教學]Maclean教你用Vbox在Enterprise Linux 5安裝Oracle 10gR2 RAC t.askmaclean.com/thread-891-1-1.html
10g RAC按照這個裝不會有任何問題