Oracle10g RAC安装文档.docx
《Oracle10g RAC安装文档.docx》由会员分享,可在线阅读,更多相关《Oracle10g RAC安装文档.docx(77页珍藏版)》请在冰豆网上搜索。
Oracle10gRAC安装文档
Oracle10gRAC数据库简介
2008-10-15
oracle10gRAC结构
下图显示了OracleRAC10g配置的主要组件。
集群中的节点通常是单独的服务器(主机)。
硬件
在硬件级别上,RAC集群中的各节点共享三种功能:
1.对共享磁盘存储的访问
2.与专用网络的连接
3.对公共网络的访问。
共享磁盘存储
OracleRAC依赖于一个共享磁盘体系结构。
数据库文件、联机重做日志和数据库的控制文件必须都能为集群中的每个节点所访问。
共享磁盘还存储OracleClusterRegistry和VotingDisk(稍后讨论)。
配置共享存储有多种方法,包括直接连接磁盘(通常是使用铜缆或光纤的SCSI)、存储区域网(SAN)和网络连接存储(NAS)。
专用网络
每个集群节点通过专用高速网络连接到所有其他节点,这种专用高速网络也称为集群互联或高速互联(HSI)。
Oracle的CacheFusion技术使用这种网络将每个主机的物理内存(RAM)有效地组合成一个高速缓存。
OracleCacheFusion通过在专用网络上传输某个Oracle实例高速缓存中存储的数据允许其他任何实例访问这些数据。
它还通过在集群节点中传输锁定和其他同步信息保持数据完整性和高速缓存一致性。
专用网络通常是用千兆以太网构建的,但是对于高容量的环境,很多厂商提供了专门为OracleRAC设计的低延迟、高带宽的专有解决方案。
Linux还提供一种将多个物理NIC绑定为一个虚拟NIC的方法(此处不涉及)来增加带宽和提高可用性。
公共网络
为维持高可用性,为每个集群节点分配了一个虚拟IP地址(VIP)。
如果主机发生故障,则可以将故障节点的IP地址重新分配给一个可用节点,从而允许应用程序通过相同的IP地址继续访问数据库。
Oracle集群就绪服务
OracleRAC10g引进了Oracle集群就绪服务(CRS)—一组用于集群环境的与平台无关的系统服务。
在RAC和Oracle并行服务器先前版本中,Oracle依靠厂商提供的集群管理软件来提供这些服务。
虽然CRS与厂商供应的集群件协同工作,但OracleRAC10g所需组件只是CRS。
实际上,必须在安装RAC之前安装CRS。
CRS维护着两个文件:
OracleClusterRegistry(OCR)和VotingDisk。
OCR和VotingDisk必须以原始分区或集群文件系统文件的形式存在于共享磁盘上。
OracleRAC软件
OracleRAC10g软件是RAC数据库的核心,每个集群节点上都必须安装。
幸运的是,OracleUniversalInstaller(OUI)可以完成在每个节点上安装RAC软件的大部分工作。
您只需在一个节点上安装RAC—OUI会完成其余的工作。
Oracle自动存储管理(ASM)
ASM是Oracle数据库10g中的一个新特性,它以一种与平台无关的方式提供文件系统服务、逻辑容量管理器和软件RAID。
OracleASM可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡I/O以删除“热点”。
它还支持直接和异步的I/O,并使用Oracle9i中引入的Oracle数据管理器API(简化的I/O系统调用接口)。
OracleASM不是通用的文件系统,只能用于Oracle数据文件、重做日志、控制文件和RMAN快速恢复区。
ASM中的文件既可以由数据库自动创建和命名(使用Oracle管理文件特性),也可以由DBA手动创建和命名。
由于操作系统无法访问ASM中存储的文件,因此对使用ASM文件的数据库执行备份和恢复操作的唯一途径就是使用恢复管理器(RMAN)。
ASM作为单独的Oracle实例实施,只有它在运行时其他数据库才能访问它。
ASM需要的内存不多:
对大部分系统来说只需64MB。
在OracleRAC环境中,ASM实例必须运行在每个集群节点上。
安装oracle10gRAC
安装需要的软件
操作系统:
RedHatAS4.0U6(内核2.6.9-42ELlargesmp)
Oracle10gRAC(10.2.0.1):
CRS包括:
10201_clusterware_linux_x86_64.cpio.gz
RAC软件包括:
10201_database_linux_x86_64.cpio.gz
补丁包:
从10201升到10202的补丁:
p4547817_10202_Linux-x86-64.zip
系统设置
注意,以下所说步骤如果没有特别强调,则要求在每个节点上执行。
Linux软件
su-root
rpm-qbinutilscompat-dbcompat-libstdc++-296compat-libstdc++-33control-centergccgcc-c++glibcglibc-commongnome-libslibstdc++libstdc++-develmakepdkshsysstatxscreensaveropenmotiflibaio
rpm-qmake-3.80-184.1
rpm-qgcc-3.3.3-43.24
rpm-qgcc-c++-3.3.3-43.24
rpm-qlibaio-0.3.98-18.3
rpm-qlibaio-devel-0.3.98-18.3
后面5个可以减去小版本号,因为现在的系统装的包版本都要高一些:
rpm-qmake-
rpm-qgcc-
rpm-qgcc-
rpm-qlibaio-
rpm-qlibaio-devel-
系统参数
内核参数
su-root
vi/etc/sysctl.conf
加入
kernel.shmall=2097152
kernel.shmmax=4294967296
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=1048576
net.core.wmem_max=1048576
kernel.shmmax=4294967296可改大小,这里是4GB,然后用执行
/sbin/sysctl–p
oracle用户和组
su-root
/usr/sbin/groupaddoinstall
/usr/sbin/groupadddba
/usr/sbin/useradd-m-goinstall-Gdbaoracle
idoracle
uid=500(oracle)gid=500(oinstall)groups=500(oinstall),501(dba)
检查一下,其它节点的id号与这个节点的必须相同。
如果不一样可以用root用户改一下
su–root
改用户id
vi/etc/passwd
改组id
vi/etc/group
设置oracle帐户的口令:
#passwdoracle
设置oracle的shell限制:
vi/etc/security/limits.conf
oraclesoftnproc2047
oraclehardnproc16384
oraclesoftnofile1024
oraclehardnofile65536
网络设置
RAC要求机群内的每个节点至少有两块网卡,一个设置为公用(公网),对外提供服务;一个设置为私用(专用),提供节点内的高速传输。
此外还需要为公用网卡配置一个虚拟地址,oracle需要借此为用户提供透明的高可用服务。
两块网卡的2个ip必须是局域网中有效地IP地址。
具体介绍如下:
专用网络
每个集群节点通过专用高速网络连接到所有其他节点,这种专用高速网络也称为集群互联或高速互联(HSI)。
Oracle的CacheFusion技术使用这种网络将每个主机的物理内存(RAM)有效地组合成一个高速缓存。
OracleCacheFusion通过在专用网络上传输某个Oracle实例高速缓存中存储的数据允许其他任何实例访问这些数据。
它还通过在集群节点中传输锁定和其他同步信息保持数据完整性和高速缓存一致性。
专用网络通常是用千兆以太网构建的,但是对于高容量的环境,很多厂商提供了专门为OracleRAC设计的低延迟、高带宽的专有解决方案。
Linux还提供一种将多个物理NIC绑定为一个虚拟NIC的方法(此处不涉及)来增加带宽和提高可用性。
公共网络
为维持高可用性,为每个集群节点分配了一个虚拟IP地址(VIP)。
如果主机发生故障,则可以将故障节点的IP地址重新分配给一个可用节点,从而允许应用程序通过相同的IP地址继续访问数据库。
su-root
vi/etc/hosts
加入
127.0.0.1localhost
11.11.11.112rac79-priv
10.0.38.112rac79
10.0.39.112rac79-vip
11.11.11.113rac80-priv
10.0.38.113rac80
10.0.39.113rac80-vip
域名随便取就可以了,虚拟地址也随便,在安装RAC的时候,vipca会自动将虚拟地址绑定在公共网卡上的。
oracle用户等效性
配通oracle的rsh来进行远程操作
su-root
vi/root/.rhosts
加入
rac79
rac79-priv
rac79-vip
rac80
rac80-priv
rac80-vip
然后
cp/root/.rhosts/etc/hosts.equiv
chkconfigrshon
chkconfigrexecon
chkconfigrloginon
vi/etc/pam.d/rlogin
在authrequiredpam_securetty.so行首加#,注释掉,下面2个文件操作一样。
vi/etc/pam.d/rsh
vi/etc/pam.d/rexec
su-root
vi/etc/hosts.equiv
加入
rac79oracle
rac80oracle
scp/etc/hosts.equivrac80:
/etc/.
su-oracle
rshrac80date
这时,oracle的rsh已经配通。
对于缺少rshserver的linux,从下载rsh-server-0.17-15mdk.x86_64.rpm
su-root
rpm–ivhrsh-server-0.17-15mdk.x86_64.rpm
如果想去掉connectrefused的提示,在每个节点执行:
[root@node79~]#rpm-qf`whichrlogin`
krb5-workstation-1.6.1-25.el5
[root@node79~]#rpm-ekrb5-workstation-1.6.1-25.el5
[root@node79~]#rpm-qf`whichrlogin`
rsh-0.17-38.el5
这样,connectrefused的提示就不会出现了。
必须先配通oracle的rsh来进行远程操作,但oracle的ssh最好也能够配通,在安装OracleRAC10g期间,OUI需要把文件复制到集群中的其他主机上并在其上执行程序。
为了允许OUI完成此任务,必须配置SSH以启用oracle用户等效性。
用SSH建立oracle用户等效性就提供了一种在集群中其他主机上复制文件和执行程序时不需要口令提示的安全方式。
配置方法:
●第一步是生成SSH的公共密钥和专用密钥。
SSH协议有两个版本;版本1使用RSA,版本2使用DSA,因此我们将创建这两种类型的密钥,以确保SSH能够使用任一版本。
ssh-keygen程序将根据传递给它的参数生成任一类型的公共密钥和专用密钥。
当您运行ssh-keygen时,将提示您输入一个用于保存密钥的位置。
当提示时只需按Enter接受默认值。
随后将提示您输入一个口令短语。
输入您能记住的口令,然后再次输入该口令进行确认。
当您完成以下步骤后,在~/.ssh目录中将会有四个文件:
id_rsa、id_rsa.pub、id_dsa和id_dsa.pub。
id_rsa和id_dsa文件是您的专用密钥,千万不要告诉任何人。
id_rsa.pub和id_dsa.pub文件是您的公共密钥,必须将其复制到集群中其他每个主机上。
在每个主机上,以oracle用户身份登录:
su-oracle
mkdir~/.ssh
chmod755~/.ssh
/usr/bin/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:
4b:
df:
76:
77:
72:
ba:
31:
cd:
c4:
e2:
0c:
e6:
ef:
30:
fc:
37oracle@rac79.orademo.org
注意:
这里一路按回车选择默认就行
/usr/bin/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:
af:
37:
ca:
69:
3c:
a0:
08:
97:
cb:
9c:
0b:
b0:
20:
70:
e3:
4aoracle@rac79.orademo.org
注意:
这里一路按回车选择默认就行
●第二步,将公共密钥文件拷贝到其他节点
现在,必须将每个主机上的公共密钥文件id_rsa.pub和id_dsa.pub的内容复制到其他每个主机的~/.ssh/authorized_keys文件中。
使用ssh将每个文件的内容复制到~/.ssh/authorized_keys文件。
请注意,当您使用ssh第一次访问远程主机时,其RSA密钥将是未知的,从而将提示您确认是否希望连接该主机。
SSH将记录该远程主机的RSA密钥,并在以后连接该主机时不再做出相关提示。
只需在第一个主机上,以oracle用户身份登录(复制本地帐户的密钥,以便连接本地主机的ssh能够起作用):
(如果您要剪切和粘贴这些命令,则分别运行它们。
SSH每次会提示输入oracle的口令,如果同时粘贴这些命令,则第一个命令在提示输入口令之前刷新输入缓冲区,从而导致其他命令将会丢失。
)
cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys
sshoracle@rac80cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
Theauthenticityofhost'rac80(10.49.9.100)'can'tbeestablished.
RSAkeyfingerprintisd1:
23:
a7:
df:
c5:
fc:
4e:
10:
d2:
83:
60:
49:
25:
e8:
eb:
11.
Areyousureyouwanttocontinueconnecting(yes/no)?
yes
Warning:
Permanentlyadded'rac80,10.0.38.111'(RSA)tothelistofknownhosts.
oracle@rac80'spassword:
sshoracle@rac80cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys
oracle@rac80'spassword:
chmod644~/.ssh/authorized_keys
要对第二,第三,第四个主机做同样的处理。
请注意,这次有的SSH不会提示您输入oracle的口令。
这是因为第一个主机(rac79)现在知道了第二个主机的公共密钥,而SSH现在使用的是一种不同的认证协议。
建立用户等效性
如果一切均设置正确,则您现在就可以使用ssh在其他集群主机上不必输入口令而登录、执行程序和复制文件了。
通过在远程集群主机上运行诸如date等简单命令来验证用户等效性:
su-oracle
sshrac80date
SunJun2719:
07:
19CDT2004
sshrac79date
SunJun2719:
07:
21CDT2004
测试每个方向上所有服务器的连通性是非常重要的。
这样会确保当OUI在CRS和数据库软件安装期间试图复制文件时不会出现类似以下的消息。
该消息只有在远程节点上第一次执行操作时才会出现,因此通过测试连通性,您不仅确保了远程操作的正常运行,还完成了初始的安全密钥交换。
Theauthenticityofhost'rac80(10.0.38.113)'can'tbeestablished.
RSAkeyfingerprintis8f:
a3:
19:
76:
ca:
4f:
71:
85:
42:
c2:
7a:
da:
eb:
53:
76:
85.
Areyousureyouwanttocontinueconnecting(yes/no)?
yes
加网关
要求给每台机器加上网关,不然vip有可能起不来
su-root
vi/etc/sysconfig/network
加
GATEWAY=10.0.38.254
安装路径
基本路径:
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
ORA_CRS_HOME=/u01/crs/oracle/10gr2/crs
据oracle的安装文档要求,CRS的目录最好不是ORACLE_BASE的子目录,因为安装过程中会改变CRS的父目录的权限,这会影响ORACLE的安装。
在按以上要求生成对应目录之前,需检查所在磁盘的空间是否满足安装要求,确定之后生成目录,并将相关环境变量设置在oracle用户的profile中。
oracle用户的profile文件.bash_profile内容:
su-oracle
vi.bash_profile
加入
exportORACLE_BASE=/u01/app/oracle
exportORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
exportORA_CRS_HOME=/u01/crs/oracle/10gr2/crs
exportORACLE_SID=xtyb1
exportTNS_ADMIN=$ORACLE_HOME/network/admin
exportPATH=$ORACLE_HOME/bin:
$HOME/bin:
$ORA_CRS_HOME/bin:
/sbin:
$ORA_ASM_HOME:
$PATH
exportLD_ASSUME_KERNEL=2.4.19
注意:
ORACLE_SID每台机器不一样,如rac79的SID为xtyb1,rac80的SID为xtyb2,以此类推。
安装文件上传到rac79,在rac79启动图形界面,安装RAC会把rac79的sid设为xtyb1,如果在rac80启动图形界面,安装RAC会把rac80的sid设为xtyb1,与.bash_profile中相反。
创建CRS安装路径
1.CRS安装路径的创建及授权
如下所示:
su-root
mkdir-p/u01/crs/oracle
chown-Roracle:
oinstall/u01/crs/oracle
chmod-R775/u01/crs/oracle
2.OCR及votingdisk安装路径
先解释一下ocr(sdb1)和vote(sdb2)文件的用途,
OCR(OracleClusterRegistry):
它记录了机群配置和机群数据库的基本配置,默认大概需要100M的空间,这里我们给了它200M的空间,并且考虑到冗余性,ocr有2个;
Vote:
它是CSS(ClusterSynchronizationServices)需要的文件,用来判断机群内各个节点的状态,默认大概也需要100M的空间,这里我们也给了它200M的空间,并且考虑到冗余性,vote有3个。
划分裸设备的过程:
到第一个节点,su-root
fdisk/dev/sdb
n创建新分区
p主分区;e扩展分区第一次不输入大小,点回车,第二次开始输入大小。
1第一个分区
回车,直到输入分区大小,注意ocr和crs一共5个,都分同样大小200MB就够了。
DATA的分区可以多个,都分同样大小,根据数据库容量确定。
这里由于磁盘阵列作了RAID5,只给一个DATA分区。
最后输入
w
将