成本的相对廉价,技术的成熟,功能的强大此方案将越来越受中小企业的青睐。
????一.实验前准备
虚拟机版本:Vwareserver1.0.6
Linux版本:redhat5.5enterprise服务器版
Oralce版本:oracle10g10.2.1
Oracle集群软件:clusterware
VwareWorkstation版本在共享磁盘上没有很好的解决办法。Vwareserver在windows7安装可能存在一定的驱动问题。本实验是在xp系统上完成,下图给出虚拟机的ip及主机名配置
Node1:主机名rac1
网卡2ip192.168.200.100
虚拟ip192.168.2.100
Node2主机名rac2
网卡1ip192.168.100.101
网卡2ip192.168.200.101
虚拟ip192.168.2.101
?
二.虚拟机配置及linux安装
实验利用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
在虚拟机中安装linux,在磁盘分区时将除0:0外的其他磁盘不参与分区,即如下图,只勾选sda选项。在挂盘上随个人喜好。为方便这里只挂了/一个盘
????????关于ip的配置,eth0:ip192.168.100.100
????????????????Eth1:ip192.168.200.100
Eth2:选择自动获取
服务的话,建议都选择安装,目前还没有完全了解其中包的关联关系。
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"
?
三.Linux配置????????????????????????
文件配置
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
?
裸设备及rac2的配置
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
克隆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安装环境及安装
通信配置
在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秒就需要同步时间了)。
配置asm
注意:必须以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集群软件安装完成。。
五.oracle软件安装及实例安装
软件安装
Host+
Su oracle
建议在执行前先加载一下.bash_profile文件,加载oracle用户的环境变量
./runInstaller–ignoreSysPreReqs
此处需要将两个两个节点都选上
且只安装软件不安装数据库
创建实例数据库
./dbca
?
选择安装数据库的类型
将两个节点都勾选
选择安装的数据库类型
?
这里有两项需要你指定,一个是globalname,同时还有一个sid的前缀,注意是前缀哟。然后oracle会自动为各节点分配sid,比如这里的sid前缀是racdb,则node1的sid就会是racdb1,node2的将会是racdb2
选择是否启用EM
选择存储
- . 设置asm实例sys用户的密码,并选择初始化文件的方式????
选择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还远着呢,大可以等到创建完数据库,待到需要管理时再修改该文件。