Installing Oracle 10g RAC on Solaris 10 + ASM + IPMP.docx
《Installing Oracle 10g RAC on Solaris 10 + ASM + IPMP.docx》由会员分享,可在线阅读,更多相关《Installing Oracle 10g RAC on Solaris 10 + ASM + IPMP.docx(38页珍藏版)》请在冰点文库上搜索。
InstallingOracle10gRAConSolaris10+ASM+IPMP
InstallingOracle10gRAC
onSolaris10+ASM+IPMP
目录
环境说明:
3
安装oraclerac对环境的要求:
3
网络及存储的要求:
3
对ip的要求:
4
对存储的要求5
创建用户6
对网络环境的检查7
基本软件环境检查9
1.RAM:
9
2.SWAP9
3./tmp9
4.查看系统架构9
5.操作系统版本9
6.系统补丁包9
7.系统内核9
8.oracle用户参数11
9目录创建12
10.存储准备13
开始安装14
安装oracleclusterware15
安装oracledb17
升级到10.2.0.318
网络配置18
创建ASM实例19
建库22
连接测试24
附录25
卸载ASM实例25
卸载CRS27
IPMP与RAC的结合30
环境说明:
机器型号:
SUN6900
节点个数:
2
操作系统版本:
SunSolaris10
数据库运行环境:
RAC
数据库版本:
10.2.0.3
存储方式:
ASM
集群软件:
使用oracle的clusterware,没有使用其它集群软件,如Suncluster
说明:
本文档的截图是从几次安装中截取的,因此各图片的主机名可能会出现不一致的现象
安装oraclerac对环境的要求:
网络及存储的要求:
下图为双节点的网络架构:
RAC至少需要有两个节点,连接到一个能够并发访问的存储,每个节点有两个网卡,一个网卡节点间的心跳连接,一个网卡用于和外网进行连接
对ip的要求:
1.每个节点至少要有两个网卡,一个用于公网,一个用于私网
1)用于心跳的网卡最好使用交换机来进行连接,如果没有交换机,则可以使用光纤线来进行直接连接,如果没有光纤线,才使用普通网线。
选择顺序为:
交换机->光纤线->普通网线
2)如果心跳的网卡和用于外网的网卡都用交换机来进行连接,则建议使用不同的交换机,如果使用同一交换机,则要求在逻辑上进行分离。
2.每个节点都有一个privateip,用于内部连接,
1)需要与外网隔开
2)每个节点都能够互相ping通
3)privateip需要绑定到用于私网的网卡上,并且privateip对应的网卡名称在每个节点要一样的。
如上图:
在Node1上,privateip绑定在eth1上,在node2,privateip也是绑定在eth1上。
4)需要把privateip的信息记录在/etc/hosts文件上
3.每个节点都有一个publicip:
1)Publicip要在同一网段
2)publicip也要手动绑定在网卡上,并且在每个节点对应的网卡名是一样的
3)建议用于公网的网卡在用于心跳的网卡前面,如公网的网卡使用en0,用于私网的网卡使用en1
4.每个节点都有一个virtualip,实际上也是一个publicip
1)但是这个ip是不需要我们手动在网卡上绑定的,oracle的clusterware会自动管理这个ip,在我们运行vipca(后面会介绍)会自动把这个virtualip绑定在跟pubicip相同的那个网卡上。
2)如果有DNS(domainnameserver),需要把publicip和publicvirtualip在DNS里注册,如果没有DNS,则要把publicip和publicvirtualip记录在/etc/hosts,并且记录在需要连接到数据库的客户端的hosts文件里
对存储的要求
当使用lv时,需要至少有一个可供两个节点并发访问的vg,每个节点都能够对它进行并发访问,用来存放数据文件,
由于本次安装没有使用操作系统的集群软件,因此没办法创建并发的lv,因此ocr和votingdisk采用裸盘,而数据文件的存储则采用ASM的方式,也是使用裸盘。
在sunsolaris上裸盘是在/dev/rdsk目录下,命名为cxtydzsa,其中x,y,z,a为数字,a为0-7的数字。
使用format命令查看时,要求该名称在两边是一致的。
如果存储的工程师没有把大小指定到那个片,则默认情况下,是把所有的大小都分配给s6,如上图,当我们指定voting1使用的裸盘时,是指定/dev/rdsk/c2t50d0s6
经验
当使用裸盘时,创建一个裸盘后,还需要对它进行lable,上次安装碰到存储工程师没有对裸盘进行lable,在指定votingdisk后,报没有相应的权限的错误,当时确定是更改过权限的。
原来是没有lable,确认有没有lable可以使用以下方法:
在输入format后,提示specifydisk(enteritsnumber):
输入相应的disk号,如上图的rac-voting1指定号码2,如果没有lable,回车后会提示让你进行label.,这时只需要输入y就可以了(当然这一步让他们做啦,我们只是确认就可以了),如果想查看大小是分配到那个片上,可以按以下的顺序:
#format
Specifydisk(enteritsnumber):
输入相应的number,如2
Format>p
Partition>p
在size那一栏可以看到那个大小是接近你想要的。
就可以使用那一个片,如6,则使用s6
另外,据存储的工程师说,当裸盘的大小小于2g时,进行label是会报错的,不过还是有解决办法的(没有拿到相关的文档)
如无特殊说明,以下操作均在两个节点进行
创建用户
创建oracle用户,dba组
1.先在每个节点查询一个两个节点均没有使用的uid,gid
#more/etc/group查看已经使用过的gid
#more/etc/passwd查看已经使用的uid和gid
本例以uid500,gid500为没有使用过的
2.创建用户,组
#groupadd–g500dba//创建组dba
#useradd–u500–gdba–d/export/home/oracleoracle//创建oracle用户
#passwdoracle//修改oracle用户的密码
其中:
在groupadd命令中-g代表对应的gid
在useradd命令中,-g代表oracle用户的主组
-u代表uid,-d代表oracle的HOME目录
3.检查用户是否成功创建
#su–oracle
$pwd
/export/home/oracle//这个结果应该与useradd命令中-d的后的参数相同
4.在另一个节点也执行同样的操作
注意:
在每个节点的用户所对应的uid必须是一样的,组gid也必须是一样的
检查两个节点中oracle用户的uid,对应组的gid是否都一致
#id–aoracle
Uid=500(oracle)gid=500(dba)
注:
如果想修改用户,组的属性,比如修改gid,uid,HOME目录
修改组的属性,可以用#groupmod命令修改
修改用户的属性,可以用#usermod命令修改
对网络环境的检查
1.检查hosts文件是否有记录相关ip的信息
Eg:
root@e6900-2#more/etc/hosts
127.1.1.1Localhost
10.200.60.1e6900-2
10.200.60.4e6900-4
10.200.60.8e6900-2-vip
10.200.60.9e6900-4-vip
192.168.1.3e6900-2-priv
192.168.1.4e6900-4-priv
2.检查网卡相关信息
#ifconfig–a查询,对比两个节点的情况
(建议ce0用于公网,ce2用于私网,也就是用于公网的网卡在前面)
注意:
因为publicvirtualip是有oracle自动管理的,我们不需要手工把virtualip绑定到网卡上,在运行vipca后,oracle会自动把虚拟ip绑定到public网卡上,在本例中就是ce2
可以查看相应的文件
root@e6900-2#more/etc/hostname.ce0//显示的是ce0对应的ip对应的名称
E6900-2-priv
root@e6900-2#more/etc/hostname.ce2//显示的是ce2对应的ip对应的名称
E6900-2
检查各个节点是否能相互ping通
root@e6900-2#su–oracle
$ping192.168.0.3
$ping192.168.0.4
$ping10.200.60.1
$ping10.200.60.4
$pinge6900-2
$pinge6900-4
$pinge6900-2-priv
$pinge6900-4-priv
在节点e6900-4执行同样的操作
3.配置节点间的对等性:
root@e6900-2#su–oracle
$vi.rhosts
e6900-2oracle
e6900-4oracle
e6900-2-privoracle
e6900-4-privoracle
在另一个节点e6900-4也执行同样的操作
4.检查对等性是否成功
root@e6900-2#su–oracle
$rlogine6900-2
$rlogine6900-4
root@e6900-4#su–oracle
$rlogine6900-2
$rlogine6900-4
如果每次输入rlogin命令,都没有提示输入密码就登陆到另一个节点,那么说明对等性配置是成功的
*****************************************************************
注:
如果配置.rhosts文件后,对等性还是没有配置成功,则在.rhosts文件里加上+,不过这样会带来一定的安全隐患,不建议这么做
******************************************************************
基本软件环境检查
1.RAM:
至少为1Gb#/usr/sbin/prtconf|grep"Memorysize"
2.SWAP :
#/usr/sbin/swap–s
RAM<2GSWAP=1.5*RAM
2RAM>8GSWAP=0.75*RAM
3./tmp
#df-k/tmp>400M
4.查看系统架构
#/bin/isainfo-kv
结果应为:
64-bitsparcv9kernelmodules
根据相应的结果选择软件,如果结果64-bitsparcv9kernelmodules,则选择的软件为:
forsolarissystem(sparc)(64-bit)
5.操作系统版本
#uname-r
solaris8update7orlater
solaris9update6orlater
solaris10
6.系统补丁包
(如果系统打上最新的补丁包,一般都能够满足要求)
#pkginfo–iSUNWarcSUNWbtoolSUNWheaSUNWlibmSUNWlibmsSUNWtoo
#pkginfo–ISUNWmfrunSUNWsprotSUNWxwfntSUNWi1csSUNWi15cs
#pkginfo–iSUNWi1ofSUNWxcu4SUNWuiu8SUNWu1cf
7.系统内核
在oracle9之前,系统内核参数的修改是通过/etc/system文件来进行修改的,但是从oracle10开始,对sem,shm的配置无法通过/etc/system文件来进行修改
配置参数max-shm-memory
#projadd-Uoracle–K"project.max-shm-memory=(priv,4096MB,deny)"user.oracle
设置max-shm-memory的值为4GB
#cat/etc/project
在project文件的末尾能够看到新增加的一行
user.oracle:
100:
:
oracle:
:
project.max-shm-memory
=(priv,4294967296,deny)
修改参数max-sem-ids
#projmod-s-K"project.max-sem-ids=(priv,256,deny)" user.oracle
检查修改是是否生效
//projadd是新增加的命令,projmod是更改的命令,如果max-shm-memory设置错误,可以使用projmod命令进行修改,格式同修改max-sem-ids是一样的,名称更改即可
#su-oracle
$prctl–Iprojectuser.oracle
project:
100:
user.oracle
NAME PRIVILEGE VALUE FLAG ACTIONRECIPIENT
。
。
。
。
。
。
project.max-shm-memory
privileged 6.00GB - deny -
system 16.0EB max deny -
project.max-shm-ids
privileged 128 - deny -
system 16.8M max deny -
project.max-msg-ids
privileged 128 - deny -
system 16.8M max deny -
project.max-sem-ids
privileged 256 - deny -
system 16.8M max deny -
。
。
。
。
。
。
除了设置sem,shm参数外,还需要在/etc/system中增加noexec_user_stack参数
#cp/etc/system/etc/system.orig
Vi/etc/system
setnoexec_user_stack=1
经验:
在solaris10上安装10grac时,曾经碰到当SGA设置过大时,导致重其后,有一些资源需要手工启动,因此,oracle官方建议把shmmax的参数也加到/etc/system文件下(可见Docid:
399895.1frommetalink)
setnoexec_user_stack=1
setshmsys:
shminfo_shmmax=4294967295
8.检查UDP参数设置
#ndd/dev/udpudp_xmit_hiwat//两个值均应该为大于65536
#ndd/dev/udpudp_recv_hiwat
65536
由于在solaris10中,这两个参数的值接近65536,因此,可以不用修改
8.oracle用户参数
vi.profile
-------------------------
umask022
ORACLE_TERM=xterm
ORACLE_BASE=/oracle/app/oracle(根据实际目录修改)
ORACLE_HOME=$ORACLE_BASE/product/10.2.0
ORA_CRS_HOME=$ORACLE_BASE/crs
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
ORACLE_SID=ora10g(根据实际实例名修改,两个节点的oracle_sid应该配置不同的,节点1为ora10g1,节点2为ora10g2)
PATH=$ORACLE_HOME/bin:
$ORA_CRS_HOME/bin:
$PATH
exportORACLE_TERM
exportORACLE_BASE
exportORACLE_HOME
exportNLS_LANG
exportORA_NLS33
exportORACLE_SID
exportPATH
---------------------------------------------------------
在.profile中增加环境变量后,退出oracle用户
$exit
#su–oracle
$env|more
$echo$ORACLE_SID
$echo$ORACLE_HOME//查看变量是否生效
经验:
虽然在本次安装中设置了PATH=$PATH:
$ORACLE_HOME/bin,但是在本次安装中,在oracle用户下的PATH变量并没有包括系统的PATH路径,只是包含$ORACLE_HOME/bin,导致在安装clusterware时,在检查了操作系统环境,到配置集群这两个步骤之间到83%的时候停止了很久,并且在进入配置集群这一界面时,在运行runInstaller的窗口报错:
CauthtclusterExceptionPRKC-1044:
Failedtocheckremotecommandexecutionsetupfornodee6900-2usingshells/usr/local/bin/sshand/usr/bin/rshFile“/usr/local/bin/ssh”doesnotexistonnode“e6900-2
后来发现在root用户下查询echo$PATH,并把返回的内容加到oralce用户下PATH参数里,就没有出现这个错误提示
9目录创建
#mkdir/oracle/app/oracle//用于oracle软件安装目录
#mkdir/oracle/app/oracle/crs//用于oracleclusterware软件安装目录
#chown–Roracle:
dba/oracle
#chmod–R775/oracle
10.存储准备
如果没有安装第三方集群软件,或者没有第三方软件来实现两个节点对存储的并发访问,就不能使用lv,需要使用裸盘,有两种实现方法:
1.Ocr,votingdisk用裸盘,每个数据文件对应一个裸盘
2.Orc,votingdisk用裸盘,数据文件的存储方式为ASM,磁盘组是通过指定几个大裸盘来实现的
由于对于裸盘来说,越大性能越好,如果采取每个数据文件对应一个裸盘的方式,因为每个数据文件为几GB,或者几百MB,除了划分起来比较麻烦之外,对性能可能也会有影响,并且在如果要增加表空间的大小,还需要再划分裸盘。
而如果采取ASM,因为一次划分一个到几个裸盘,用来存放数据文件,并且由ASM自动管理,省了很多麻烦,因此本次采取ASM的存储方式。
每个节点加载的裸设备名称必须相同
裸盘是放在/dev/rdsk目录下,明确了哪些裸盘是给oracle使用之后设置相应的属性.由于存储工程师在对裸盘进行lable时,太小的裸盘lable时报错,
在本次安装中,用做votingdisk的裸盘为128M,分别为c2t50d0s6,cet51d0s6,c2t52d0s6
用做ocr的裸盘为320M,分别为c2t53d0s6,c2t54d0s6
#cd/dev/rdsk
#bash
#Chown–Roracle:
dbac2t50d0s*
Chown–Roracle:
dbac2t51d0s*
Chown–Roracle:
dbac2t52d0s*
Chown–Roracle:
dbac2t53d0s*
Chown–Roracle:
dbac2t54d0s*
Chown–Roracle:
dbac2t55d0s*
//这个裸盘是用于存放asm的spfile的
Chown–Roracle:
dbac2t56d0s*
//t56,57是用于存放数据文件的大裸盘
Chown–Roracle:
dbac2t57d0s*
Chmod–R660c2t50d0s*
//votingdisk的权限为660
Chmod–R660c2t51d0s*
Chmod–R660c2t52d0s*
Chmod–R660c2t53d0s*
Chmod–R660c2t54d0s*
Chmod–R660c2t55d0s*
Chmod–R660c2t56d0s*
Chmod–R660c2t57d0s*
在/dev/dsk目录下执行同样的chown,chmod操作
另外,因为/dev/rdsk下的裸盘有一个链接执行另一个目录,如下图所示的/devices/iscsi目录下,我们可以使用
#cd/devices/iscsi
#ls*rac*查看是否显示的都是我们需要的那几个,如果是,则用通配符*来进行设置
#chown–Roracle :
dba*rac*
#chmod–R660*rac*
注:
实际上,我们在执行chown,chmod后,/dev/rdsk,/dev/dsk下对应的裸盘的属性还是root,root,但是我们改了/devices/iscsi目录下的文件后,权限是有改成oracle:
dba
开始安装
在安装clusterware,db,打补丁建库等操作,都是只在一个节点上运行(为同一个节点),然后oracle会自动把相关的东西拷贝到另一个节点,本例子在e6900-6上运行
1.解压软件
#gunzip10gr2_cluster_sol.cpio.gz
#cpio–idcmv<10gr2_cluster_sol.cpio
2.
#su–oracle
$DISPLAY= :
0.0
//如果是通过xmanager连到服务器,则ip为运行xmanager的那台机器的Ip
安装oracleclusterware
$cd相应的目录
$.runIn