314598340 发表于 2018-9-22 10:59:14

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关机后对硬件做配置,保证机器上有两块分另属于不同通道的网卡

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

  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) 创建相关组与用户并为用户设置密码

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

  g) 将oracle安装目录的所有者改为oracle用户和dba组
  # chown -R oracle:oinstall /u01/
  # 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) 依次为四块共享磁盘创建物理分区

  至此rac1的初期配置完成,后面开始rac2的配置
  3. 安装rac前对虚拟机rac2的配置过程如下:
  a) 在关机状态下为虚拟机rac2添加网卡(两块)与共享磁盘,因为之前rac1已经创建磁盘,所以在rac2上不用创建新磁盘,直接使用rac1上已经建好的四块共享磁盘即可,注意我打标记的地方


  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上执行以下命令开启时间服务
  # chkconfig ntpd on
  # service ntpd status
  ntpd is stopped
  # service ntpd start
  Starting ntpd: [ OK ]
  #
  b) 在rac2上输入system-config-date配置,输入rac1的ip后选择add,ok

  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上:

  在rac2上:

  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

  b) 在rac1与rac2上配置ASM磁盘(确保前面在两台机器上已经安装了asm的相关包)
  使用root用户登录:
  i. 执行以下命令:/etc/init.d/oracleasm configure

  ii. 使用/etc/init.d/oracleasm createdisk vol1 /dev/sdd1创建asm磁盘
在rac1与rac2分别进行如上配置后,磁盘配置完成:
  7. 执行如下命令,检查安装环境是否匹配安装要求:
  /u01/cluster/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2
  8. 在rac1上执行安装程序:
  . /u01/cluster/runInstall
  9. 指定crs的安装目录:

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

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

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


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

  rac1:

  rac2:

  15. 在两个节运行完脚本后,修改两个配置文件:
  修改vipca文件(需要在两个节点上操作)
  $ cp /home/oracle/app/crs/bin/vipca /home/oracle/app/crs/bin/vipca.bak
  $ 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文件 (需要在两个节点上操作)
  $ cp /home/oracle/app/crs/bin/srvctl /home/oracle/app/crs/bin/srvctl.bak
  $ 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
对vip与别名进行相应设置
如果在/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安装完成

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

  三.群集数据库安装
  1. 将oracle10g安装软件复制到rac1并进行解压
  2. 运行. /u01/database/runInstal选择安装企业版
选择安装目录

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

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

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

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


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

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

  9. 指定数据库的实例名

  10. 配置em

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

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

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

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

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



  16. 使用ASM管理磁盘

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

  18. 数据库参数配置

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

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


  21. 选择创建数据库


  22. 完成安装

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


页: [1]
查看完整版本: ORACLE 10G RAC 安装