ORACLE 10G RAC 安装

简介:

 

一.安装环境规划:

1. 实验环境:

a) 虚拟机:vmware server 2.0

b) 操作系统:RHEL4 2.6.9-55

c) ORACLE:10G R2

d) 主机名:rac1与rac2

2. IP规划:

a) publicIP(nat): 
rac1:1.1.1.111 
rac2:1.1.1.222

b) privIP(hostonly): 
rac1-priv:2.2.2.111 
rac2-priv:2.2.2.222

c) VIP: 
rac1-vip:1.1.1.11 
rac1-vip:1.1.1.22

3. 磁盘规划(添加四块磁盘):

a) /dev/sdb1用裸设备做为OCR磁盘

b) /dev/sdc1用裸设备做为表决磁盘

c) /dev/sdd1、/dev/sde1做为ASM共享磁盘

4. 很多安装文档上是使用先安装好一台机器再使用vmware克隆一个新的节点的方式,但是中心有一些细节比较容易出问题,为保证实验的效果和模拟真实环境下的配置操作,我直接采用安装两台全新虚拟机的方式来完成。

二.CRS安装步骤

1. 按平时的操作创建两台vmware的虚拟机,操作系统安装RHEL4,安装过程中最好把GCC能选上去,把防火墙和selinux关掉,这个很简单,不做过多介绍

2. 安装rac前对rac1虚拟机的配置如下:

a) 将rac1虚拟机init 0关机后对硬件做配置,保证机器上有两块分另属于不同通道的网卡 
clip_image002

b) 为虚拟机添加四块scsi磁盘,我直接加了四块1g的scsi磁盘,注意指定不同的scsi通道(scsi1:x)和我们本机使用的磁盘不要在同一通道上,依次添加四块磁盘,分别对应scsi1:0/scsi1:1/scsi1:2/scsi:3,我下面标红的三个地方请注意最好能调整过来 
clip_image004

c) 磁盘添加完成后,需要对vmware的.vmx配置文件做修改,取消对磁盘的锁定,使这四个磁盘成为共享磁盘,在虚拟机的vmx文件后添加如下语句: 
disk.locking = "false" 
diskLib.dataCacheMaxSize = "0" 
diskLib.dataCacheMaxReadAheadSize = "0" 
diskLib.DataCacheMinReadAheadSize = "0" 
diskLib.dataCachePageSize = "4096" 
diskLib.maxUnsyncedWrites = "0" 
scsi1:0.deviceType = "disk" 
scsi1:1.deviceType = "disk" 
scsi1:2.deviceType = "disk" 
scsi1:3.deviceType = "disk" 
配置完成后将rac1启动

d) 创建rac的安装目录 
mkdir –p /u01/oracle/product/10.2/crs/ 
mkdir –p /u01/oracle/product/10.2/db1/

e) 创建相关组与用户并为用户设置密码 
clip_image006

f) 检查用户与组ID,两个rac节点的用户与组id必须一致 
clip_image008

g) 将oracle安装目录的所有者改为oracle用户和dba组 
[root@rac1 ~]# chown -R oracle:oinstall /u01/

[root@rac1 ~]# chmod -R 775 /u01/

h) 检查并安装RAC、oracle程序需要使用的包:

binutils-2.15.92.0.2-18 
compat-libstdc++-33.2.3-47.3 
elfutils-libelf-0.97-5 
elfutils-libelf-devel-0.97-5 
glibc-2.3.9.4-2.19 
glibc-common-2.3.9.4-2.19 
glibc-devel-2.3.9.4-2.19 
gcc-3.4.5-2 
gcc-c++-3.4.5-2 
libaio-devel-0.3.105-2 
libaio-0.3.105-2 
libgcc-3.4.5 
libstdc++-3.4.5-2 
libstdc++-devel-3.4.5-2 
make-3.80-5 
sysstat-5.0.5 
unixODBC-2.2.11 
unixODBC-devel-2.2.11

openmotif-2.2.3

rsh-0.17-25.4

rsh-server-0.17-25.4

setarch-1.6-1

i) 检查并安装ASM需要使用的包(ASM所使用的包需要到oracle官方网站上根据自己CPU及linux内核的对应版本去选择下载): 
oracleasm-support-2.1.4-1.el4.i386.rpm 
oracleasm-2.6.9-55.EL-2.0.3-1.i686.rpm 
oracleasmlib-2.0.4-1.el4.i386.rpm

oracleasm-2.6.9-55.ELhugemem-2.0.3-1.i686.rpm

oracleasm-2.6.9-55.ELsmp-2.0.3-1.i686.rpm

oracleasm-2.6.9-55.ELxenU-2.0.3-1.i686.rpm

j) 修改主机名,hosts文件,网络配置 
改主机名vi /etc/sysconfig/network 
改ip与主机名对应关系vi /etc/hosts,按之前的规划将ip与主机名映射进行编辑 
(在hosts文件中注意127.0.0.1对应localhost,不要对应主机名~~~) 
1.1.1.111 rac1

2.2.2.111 rac1-priv

1.1.1.11 rac1-vip

1.1.1.222 rac2

2.2.2.222 rac2-priv

1.1.1.22 rac2-vip修改网卡配置 
vi /etc/sysconfig/network-scripts/ifcfg-eth0 
vi /etc/sysconfig/network-scripts/ifcfg-eth1 
修改rac1的内核参数文件vi /etc/sysctl.conf添加如下内容 
kernel.shmmax = 4294967295

kernel.shmall = 2097152

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 262144 
添加完后执行sysctl -p

k) 修改etc/security/limits.conf,添加如下内容: 
oracle soft nproc 2047 
oracle hard nproc 16384 
oracle soft nofile 1024 
oracle hard nofile 65536

l) Vi /etc/pam.d/login,添加如下内容(64位系统不需要): 
session required /lib/security/pam_limits.so 
session required pam_limits.so

m) 修改/etc/profile,加入以下内容: 
if [ $USER = "oracle" ]; then 
if [ $SHELL = "/bin/ksh" ]; then 
ulimit -p 16384 
ulimit -n 65536 
else 
ulimit -u 16384 -n 65536 
fi 
fi

n) 配置hangcheck:vi /etc/modprobe.conf 
添加options hangcheck-timer hangcheck-tick=30 hangcheck_margin=180 
再执行modprobe -v hangcheck-timer 
vi /etc/grub.conf 
clock=pit nosmp noapic nolapic

o) 开启sshd服务 
chkconfig sshd on 
service sshd start

p) 使用oracle用户登录后修改修改~/.bash_profile添加如下环境变量: 
export ORACLE_SID=racdb 
export ORACLE_BASE=/u01/oracle/product 
export ORACLE_HOME=/u01/oracle/product/10.2/db1 
export ORA_CRS_HOME=/u01/oracle/product/10.2/crs 
export ORACLE_ADMIN=$ORACLE_BASE/admin 
export ORACLE_HOME_LISTNER=$ORACLE_HOME 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jlib 
export JAVA_HOME=$ORACLE_HOME/jdk 
export ORA_NLS10=$ORACLE_HOME/nls/data 
export PATH=$PATH:$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/lib:$JAVA_HOME/bin:$ORA_CRS_HOME/bin

q) 依次为四块共享磁盘创建物理分区 
clip_image010

至此rac1的初期配置完成,后面开始rac2的配置

3. 安装rac前对虚拟机rac2的配置过程如下:

a) 在关机状态下为虚拟机rac2添加网卡(两块)与共享磁盘,因为之前rac1已经创建磁盘,所以在rac2上不用创建新磁盘,直接使用rac1上已经建好的四块共享磁盘即可,注意我打标记的地方 
clip_image012 
clip_image014

b) 四块磁盘加完后,在rac2虚拟机的vmx文件中添加以下内容后开机: 
disk.locking = "false" 
diskLib.dataCacheMaxSize = "0" 
diskLib.dataCacheMaxReadAheadSize = "0" 
diskLib.DataCacheMinReadAheadSize = "0" 
diskLib.dataCachePageSize = "4096" 
diskLib.maxUnsyncedWrites = "0" 
scsi1:0.deviceType = "disk" 
scsi1:1.deviceType = "disk" 
scsi1:2.deviceType = "disk" 
scsi1:3.deviceType = "disk"

c) Rac2的操作请重复rac1前面所做的操作,完全一样,最后一步创建分区可以不用做,在rac1上创建好分区后,rac2上可以用fdisk –l直接看到所有已经创建好的磁盘分区

4. 为rac1与rac2配置时间同步:

a) 在rac1上执行以下命令开启时间服务 
[root@rac1 ~]# chkconfig ntpd on

[root@rac1 ~]# service ntpd status

ntpd is stopped

[root@rac1 ~]# service ntpd start

Starting ntpd: [ OK ]

[root@rac1 ~]#

b) 在rac2上输入system-config-date配置,输入rac1的ip后选择add,ok 
clip_image016

c) 再vi /etc/rc.local 
输入以下内容: 
while [ 1 ];do ntpdate rac1 1>/dev/null 2>&1; sleep 2;done& 
时间同步配置完成

5. 配置SSH

a) 切换为oracle用户,在rac1与rac2上的用户根目录下分别创建.ssh目录并给与指定权限: 
mkdir ~/.ssh/ 
chmod 700 ~/.ssh

b) 在rac1上分别使用ssh-keygen命令生成rsa与dsa的非对称密钥。 
ssh-keygen –t rsa 
ssh-keygen –t dsa 
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

cat ~/.ssh/authorized_keys >> rac1.authorized_keys

c) 在rac2上分别使用ssh-keygen命令生成rsa与dsa的非对称密钥。 
ssh-keygen –t rsa 
ssh-keygen –t dsa 
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

cat ~/.ssh/authorized_keys >> rac2.authorized_keys

d) 将rac1与rac2的密钥文件进行交换 
在rac1上: 
clip_image018 
在rac2上: 
clip_image020

e) 将rac2的密钥文件合并到rac1的密钥文件中: 
在rac1上执行 
cat rac2.authorized_keys >>authorized_keys

f) 将rac1的密钥文件合并到rac2的密钥文件中: 
在rac2上执行: 
cat rac1.authorized_keys >>authorized_keys

g) Chmod 700 authorized_keys(必须要配置,否则会需要密码)

h) 检测ssh配置是否成功: 
ssh rac1 date 
ssh rac2 date 
ssh rac1-priv date 
ssh rac2-priv date 
如果执行以上命令不需要输入密码则ssh配置成功

6. 在rac1及rac2上配置裸设备与ASM磁盘:

a) 在rac1和rac2上配置裸设备(将/dev/sdb1与/dev/sdc1配置为ocr磁盘与表决磁盘)

Vi /etc/sysconfig/rawdevices

在其中增加两行代码:

/dev/raw/raw1 /dev/sdb1

/dev/raw/raw2 /dev/sdc1 
然后vi /etc/udev/permissions.d/50-udev.permissions,将与raw有关的权限选项进行修改 
# raw devices

ram*:root:disk:0660

#raw/*:root:disk:0660

raw/*:oracle:dba:0660 
再执行检查配置是否成功: 
chkconfig --list rawdevices 
service rawdevices restart 
clip_image022

b) 在rac1与rac2上配置ASM磁盘(确保前面在两台机器上已经安装了asm的相关包) 
使用root用户登录:

i. 执行以下命令:/etc/init.d/oracleasm configure 
clip_image024

ii. 使用/etc/init.d/oracleasm createdisk vol1 /dev/sdd1创建asm磁盘 
clip_image026在rac1与rac2分别进行如上配置后,磁盘配置完成:

7. 执行如下命令,检查安装环境是否匹配安装要求: 
/u01/cluster/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2

8. 在rac1上执行安装程序: 
. /u01/cluster/runInstall

9. 指定crs的安装目录: 
clip_image028

10. 在群集节点中添加rac2的相关信息 
clip_image030

11. 指定两个网卡的连接类型,将eth0设置为public,eth1设置为private 
clip_image032

12. 将事先配置好的裸设备/dev/raw/raw1与/dev/raw/raw2分别指定为ocr磁盘与表决磁盘后开始执行安装. 
clip_image034 
clip_image036

13. 使用集群软件在两个节点进行安装,安装完成后按要求分别在rac1与rac2上执行指定脚本: 
. /u01/oracle/product/oraInventory/orainstRoot.sh 
. /u01/oracle/product/10.2/crs/root.sh 
clip_image038 
 

rac1:

clip_image040

rac2:

clip_image042

 

15. 在两个节运行完脚本后,修改两个配置文件: 
修改vipca文件(需要在两个节点上操作) 
[oracle@rac2 bin]$ cp /home/oracle/app/crs/bin/vipca /home/oracle/app/crs/bin/vipca.bak 
[oracle@rac2 bin]$ gedit /home/oracle/app/crs/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文件 (需要在两个节点上操作) 
[oracle@rac2 bin]$ cp /home/oracle/app/crs/bin/srvctl /home/oracle/app/crs/bin/srvctl.bak 
[oracle@rac2 bin]$ gedit /home/oracle/app/crs/bin/srvctl 
找到如下内容: 
LD_ASSUME_KERNEL=2.4.19 
export LD_ASSUME_KERNEL 
同样在其后新增加一行: 
unset LD_ASSUME_KERNEL

16. 使用root用户登录在rac2上执行: 
/u01/oracle/product/10.2/crs/bin/vipca 
选择public网卡点next 
clip_image044对vip与别名进行相应设置 
clip_image046如果在/u01/oracle/product/oraInventory/logs/installActions2011-03-21_11-23-35文件中 
报WARNING: RAC2:6200 already configured.WARNING: RAC1:6200 already configured.的错误 
请执行 
$cd /home/oracle/app/crs/bin 
/u01/oracle/product/10.2/crs/bin/racgons remove_config rac1:6200 
/u01/oracle/product/10.2/crs/bin/racgons remove_config rac2:6200

17. 在rac2上执行完netca后,在rac1上点击ok,crs安装完成 
clip_image048

18. 检查群集资源是否正常启动 
clip_image050

三.群集数据库安装

1. 将oracle10g安装软件复制到rac1并进行解压

2. 运行. /u01/database/runInstal选择安装企业版 
clip_image052选择安装目录 
clip_image054

3. 选择两个节点进行数据库安装 
clip_image056

4. 选择只安装数据库软件 
clip_image058

5. 安装完成后执行指定脚本后退出,数据库软件安装完成 
clip_image060

6. 安装数据库并配置ASM: 
在rac1上执行dbca安装群集数据库: 
clip_image062

clip_image064

7. 选择在两个节点上安装数据库 
clip_image066

8. 选择安装自定义的数据库 
clip_image068

9. 指定数据库的实例名 
clip_image070

10. 配置em 
clip_image072

11. 选择使用ASM管理共享存储 
clip_image074

12. 输入asm的管理密码及创建参数文件 
clip_image076

13. 点击ok后会提示没有创建监听,直接yes让oracle自动配置监听程序,并开始配置Asm实例 
clip_image078

14. 进入ASM磁盘设置,选择create new 
clip_image080

15. 选择事先配置好的asm磁盘--ok 
clip_image082 
clip_image084 
clip_image086

16. 使用ASM管理磁盘 
clip_image088

17. 是否配置闪回与归档模式 
clip_image090

18. 数据库参数配置 
clip_image092

19. 配置数据库服务,这里不用设置,直接next 
clip_image094

20. 会报一个最小内存要求的信息,不管,直接ok,再next 
clip_image096 
clip_image098

21. 选择创建数据库 
clip_image100

clip_image102

22. 完成安装 
clip_image104

23. 检查所有资源的状态, 安装完成! 
clip_image106



     本文转自ttzztt 51CTO博客,原文链接:http://blog.51cto.com/tianzt/930063,如需转载请自行联系原作者






相关文章
|
2月前
|
存储 Oracle 关系型数据库
|
2月前
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
99 2
|
4月前
|
机器学习/深度学习 Oracle 关系型数据库
Oracle 19c单机一键安装脚本分享
Oracle 19c单机一键安装脚本分享
251 2
|
4月前
|
运维 Oracle 前端开发
Oracle 11g RAC集群日常运维命令总结
Oracle 11g RAC集群日常运维命令总结
114 2
|
5月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
397 3
|
4月前
|
Oracle 关系型数据库
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
|
5月前
|
存储 负载均衡 Oracle
|
5月前
|
存储 Oracle 关系型数据库
|
5月前
|
SQL Oracle 关系型数据库
Oracle数据库基础教程:从安装到基本操作的全面介绍
Oracle数据库基础教程:从安装到基本操作的全面介绍