RAC配置、安装

RAC  配置及安装

2012年12月30日 星期日

21:49

 

*******************************************************************************

一、RAC  (real  application  cluster  真正的可应用的集群工具)    安装规划

1)前期规划

确认集群节点数量,每个节点的主机名;

区分Public、Private NIC;确认第个主机的3个IP地址;

数据库存储技术选型(ASM/OCFS/RAW/Other);redo 1+0 data raid5

存储空间规划,包括软件安装位置、数据库文件位置规划;

 

2)配置节点主机

 

配置主机名和3个IP地址;

RPM包检查;

磁盘分区:配置裸设备;

系统需求(OS Kernel参数、空间需求);

创建Oracle用户,要求每个节点UID、GID相同;

定义Oracle用户的环境变量,包括$ORACLE_HOME、$CRS_HOME、资源数量限制。

用户等价;节点时间同步;

Hangcheck-timer模块配置

 

3)安装部署

 

安装Oracle Clusterware,安装后进行检查;

安装Oracle Database;创建ASM磁盘;

配置Listener;创建ASM;创建RAC数据库;

安装后测试,Failover和Loadbalance

 

4)实施阶段

 

主机配置

安装Clusterware

安装Oracle Database

配置Listener

创建ASM

创建Database

 

*******************************************************************************

二、实施安装

 

1)操作系统安装

 

*****************************************        

添加共享磁盘

 

  1.1)RAC1 添加磁盘

   

       添加虚拟磁盘 20G 。

   

  1.2)修改磁盘为共享模式

   

       -> 虚拟介质设置 ->  modify  ->  选择 shareable

 

  1.3) RAC2 添加磁盘

       

         选择 existing .

 

*****************************************

配置hosts(所有节点)

 

# vi /etc/hosts

192.168.8.3    rac1                      公有地址         eth0

192.168.8.4    rac1-vip              vip地址

10.10.10.3     rac1-priv           私有地址          eth1

 

192.168.8.5    rac2                      公有地址         eth0

192.168.8.6    rac2-vip              vip地址

10.10.10.5     rac2-priv           私有地址          eth1

 

关闭邮件服务开机自动启动

#chkconfig sendmail off 

*****************************************

启动RAC1   RAC2 修改主机名和IP  (删除网关)

 

#vi /etc/sysconfig/network  修改主机名

NETWORKING=yes

HOSTNAME=XXXXX

 

 

#vi /etc/sysconfig/network-scripts/ifcfg-eth0    公有地址

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.8.3       

GATEWAY=192.168.8.1

     NETMASK=255.255.255.0

     ONBOOT=yes

TYPE=Ethernet

 

#vi /etc/sysconfig/network-scripts/ifcfg-eth1   (从eth0复制而来 不需要网关)

DEVICE=eth1

BOOTPROTO=static

IPADDR=10.10.10.3        

     NETMASK=255.255.255.0

     ONBOOT=yes

TYPE=Ethernet

 

重启网络服务  

 

   service network restart

*****************************************

主机配置  (RAC1 RAC2)

 

创建用户和组(所有节点,oracle用户和组具有相同uid和gid)

 

# groupadd -g 500 oinstall

# groupadd -g 501 dba

# useradd  -u 500 -g oinstall -G dba oracle

# passwd   oracle

 

*****************************************        

创建目录

 

# mkdir -p /u01/app/oracle  ORACLE主目录

# mkdir -p /u01/crs_1   CRS主目录

# chown -R oracle:oinstall /u01

# chmod -R 775 /u01

 

*****************************************

修改用户oracle的  .bash_profile(rac1,rac2)  

 

     注意 RAC1  prod1    RAC2  prod2 

 

#su - oracle

#vi  .profile

 

export EDITOR=vi

export ORACLE_SID=prod1

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export ORA_CRS_HOME=/u01/crs_1

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATH

umask 022

 

 

 

*****************************************

配置主机间的信任关系(ssh)

 

RAC1:

 

# su - oracle

  $   mkdir ~/.ssh

  $   ssh-keygen -t rsa

  $   ssh-keygen -t dsa

 

 

RAC2:

# su - oracle

  $   mkdir ~/.ssh

  $   ssh-keygen -t rsa

  $   ssh-keygen -t dsa

 

 

RAC1:

 

$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

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

$ ssh rac2 cat .ssh/id_rsa.pub >> .ssh/authorized_keys

$ ssh rac2 cat .ssh/id_dsa.pub >>.ssh/authorized_keys

$ scp .ssh/authorized_keys  rac2:~/.ssh

 

测试信任关系(在所有节点上)

 

$ ssh rac1 date  连接RAC1  测试时间准确性

 

$ ssh rac1-priv date

 

$ ssh rac2 date

    

$ ssh rac2-priv date

 

*****************************************

配置内核参数

 

# vi /etc/sysctl.conf

 

kernel.shmall                = 2097171

kernel.shmmax                = 2147483648

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        = 1048576

net.core.rmem_max            = 1048576

net.core.wmem_default        = 262144

net.core.wmem_max            = 262144

 

#sysctl -p

 

*****************************************

oracle 用户设置 Shell 限制     限制每个用户访问内存时,打开内存的页面数,一个软限制一个硬限制

 

# vi /etc/security/limits.conf

oracle               soft    nproc   2047

oracle               hard    nproc   16384

oracle               soft    nofile  1024

oracle               hard    nofile  65536

*****************************************        

 

#vi /etc/pam.d/login

 

        session required /lib/security/pam_limits.so

 

# vi /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

*****************************************        

配置 Hangcheck 计时器

hangcheck_tick=30 为每隔30秒检测一次心跳  hangcheck_margin=180 为180秒没有回应就确认对方挂了

 

# vi /etc/rc.local   心跳测试

 

     modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

 

配置ntp时间同步服务(rac1 server,rac2 client)

 

RAC1:

 

[root@rac1 ~]# chkconfig --list | grep time

      

# chkconfig time-udp on

# chkconfig time on

# chkconfig ntpd on

# chkconfig xinetd on

# service ntpd start

Starting ntpd: [  OK  ]

# service xinetd start

Starting xinetd:

 

RAC2:

 

# crontab -e    创建文件

 

0-59/1  * * * * /usr/bin/rdate -s 192.168.8.3 >/dev/null 2>&1  服务器IP

0-59/1 * * * * /usr/sbin/ntpdate 192.168.8.3 >/dev/null 2>&1   服务器IP

 

# rpm -q make gcc compat-db

*****************************************        

配置共享磁盘

 

# fdisk -l

 

Disk /dev/hdc: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks   Id  System

/dev/hdc1   *           1        1305    10482381   83  Linux

/dev/hdc2            1306        1573     2152710   82  Linux swap

/dev/hdc3            1574        2610     8329702+  83  Linux

 

Disk /dev/hdb: 42.9 GB, 42949672960 bytes                  新加盘为hdb

16 heads, 63 sectors/track, 83220 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes

 

Disk /dev/hdb doesn't contain a valid partition table 

 

# fdisk /dev/hdb

 

 

Command (m for help):         m  查看帮助信息

 

          

Command (m for help):            p  输出当前信息

 

Disk /dev/hdd: 42.9 GB, 42949672960 bytes

16 heads, 63 sectors/track, 83220 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes

 

   Device Boot      Start         End      Blocks   Id  System

 

Command (m for help):                    n  添加新的分区

 

   Command action

             e   extended

            p   primary partition (1-4)

             

                                         p 主分区

 

Partition number (1-4): 1

First cylinder (1-83220, default 1):     默认

  Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-83220, default 83220):   默认

  Using default value 83220

 

Command (m for help):                       p    输出当前信息

 

Command (m for help): t    change a partition's system id

 

Selected partition 1

  Hex code (type L to list codes):        L

 

  Hex code (type L to list codes):       8e

 

 Changed system type of partition 1 to 8e (Linux LVM)

 

Command (m for help):                        p  输出当前信息

 

Command (m for help):                        w    保存修改

 

[root@rac1 ~]# fdisk -l

 

*****************************************        

建立pv (物理卷)

 

# pv              两次 TAB TAB  可以查看所有子菜单

# pvcreate /dev/hdb1

# pvdisplay

 

建立vg(卷组)   RAC1

 

# vgcreate racvg /dev/hdb1     vgcreate 卷组名  设备

 

# vgdisplay

 

 

建立lv (逻辑卷)

# lvcreate -L 200m -n ocr1 racvg    -L  大小  -n  节点   卷组名

 

依次建立 裸设备

 

# ls -l /dev/mapper

total 0

crw-------  1 root root  10, 63 Sep  8 02:29 control

brw-rw----  1 root disk 253,  7 Sep  8 05:55 racvg-archive

 

# reboot

# pvscan

# vgchange -a y racvg   强制同步数据

 

*****************************************

建立raw 设备(裸设备,在所有节点)    (RAC1  RAC2 )

 

# vi /etc/sysconfig/rawdevices

 

/dev/raw/raw1    /dev/mapper/racvg-data

 

 

重启裸设备(所有节点)

 

# service rawdevices restart

 

# ls -l /dev/raw

 

改变裸设备的所有者(所有节点)  (RAC1  RAC2)

 

# vi /etc/udev/permissions.d/50-udev.permissions

 

修改裸设备raw 所属用户

 

# service rawdevices restart(所有节点)

 

# ls -l /dev/raw

 

*****************************************        

安装配置asm    ( rac1  rac2 )

 

查看系统内核

[root@rac1 ~]# uname -a

 

启动smb服务

 

[root@rac1 ~]# service smb start

 

[root@rac1 ~]# smbpasswd -a oracle

 

安装和配置asm (注意要和内核匹配,在所有节点)(rac1  rac2  )

 

[root@rac1 ASM]# ls -l

 

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

 2012 oracleasmlib-2.0.4-1.el4.i386.rpm

 2012 oracleasm-support-2.1.4-1.el4.i386.rpm

 

[root@rac1 ASM]# uname -a

 

Linux rac1 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux

 

[root@rac1 ASM]# rpm -ivh *

 

[root@rac1 ASM]# service oracleasm configure   ( rac1  rac2 )

 

Configuring the Oracle ASM library driver.

 

This will configure the on-boot properties of the Oracle ASM library

driver.  The following questions will determine whether the driver is

loaded on boot and what permissions it will have.  The current values

will be shown in brackets ('[]').  Hitting <ENTER> without typing an

answer will keep that current value.  Ctrl-C will abort.

 

Default user to own the driver interface []: oracle

Default group to own the driver interface []: dba

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]:

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver: [  OK  ]

Scanning the system for Oracle ASMLib disks: [  OK  ]

 

 

*****************************************        

安装Clusterware

 

 

 

          直接  next

 

 

 

 

specify  inventory directory and credentials    指定清单目录 详细目录 默认

 

 

        specify  home  details           修改主目录

 

     修改路径 /u01/crs_1

 

 

 

   specify   cluster configuration      修改集群信息

   

    添加  RAC2 配置同RAC1

 

 

 

specify  network  interface  usage   修改网络信息

 

    修改etho 地址  public

 

 

 

 

 

 

 

specify Oracle cluster registry location

  

  external  redundancy                选择 external  只需 1 块盘

           OCR   location  :            /dev/raw/raw3          ocr地址

           voting  disk  location:      /dev/raw/raw6          vot地址

   

 

          

开始安装咯

      

 

          安装进度

 

 

            

执行配置脚本

 

RAC1   RAC2    (ROOT用户运行脚本 注意顺序不可颠倒)

 

       /u01/app/oracle/orainventory/orainstRoot.sh  

       /u01/crs_1/root.sh

 

最后报错: eth0 is not  public .  

 

 

   

     解决方法:RAC2    root身份执行脚本     /u01/crs_1/bin/下的 vipca 图形化界面:选择 eth0

 

[root@rac2 ~]$  ./u01/crs_1/bin/vipca

 

 

              选择 eth0

 

 

   

IP Alias Name 里面输入 rac1   rac2后面的地址自动显示出来

 

             rac1  rac1_vip   192.168.8.3  ...

             rac2  rac2_vip  192.168.8.5  …

 

                     

vipca  安装进度  就等安装完成咯

 

 

 

                  最后返回刚才位置点击 ok

 

 

           这里最后的检测不能出问题

 

         到此CRS就安装完了。

*****************************************

          

安装完成之后  crs_stat -t  查看 crs 状态

 

[oracle@rac1 ~]$ vi  /etc/profile 添加path 方便root用户使用crs  (RAC1   RAC2  )

 

     export PATH=$PATH:/u01/crs_1/bin 

    

[oracle@rac1 ~]$  source  /etc/profile   刷新 

 

*****************************************        

4)安装Oracle Database

 

 

                直接 next

 

 

 

                  选择企业版   

 

 

             specify  home  details       修改主目录

 

     修改路径 /u01/app/oracle/product/10.2.0/db_1

   

 

 

        

这里默认选择了一项,因为可以做为单机的,也可以做为集群的,这里做集群,所以

       选择 rac1  rac2    

 

 

                检测应该没问题

 

 

 

                     仅仅安装软件

 

 

                  这里就可以开始安装咯

 

 

 

rac1  rac2    root 用户执行脚本 

    /u01/app/oracle/product/10.2.0/db_1/root.sh

 

                        数据库也 ok

 

5)配置Listener

 

[oracle@rac1 ~]$   netca   配置  监听

  

 

                选择 cluster  configuration    集群环境下

 

 

                     全选  两个节点  

 

 

 

 

 

 

 

 

 

 

 

                 一路 next  下来 

 

6)创建Database        

 

 

 

 

 

 

               node  selection    全选 rac1  rac2

 

 

                general  purpose  一般用途

 

 

 

               设置数据库名  sid

 

 

                         management option    默认即可

 

 

                     设置密码  

 

 

               这里选择ASM 

 

 

    创建asm 实例

 

     11设置密码 

     12  create  initalization praameter file  下面选择PFILE(这个PFILE文件是ASM实例的PFILE

           

ASM实例用来管理磁盘,要启动数据库的实例首先启动ASM的实例

 

 

                asm 实例  创建中

 

 

 

asm  disk  groups(磁盘组)  

               create  new    :

                                     DG1      normal 至少选择两块磁盘 (用作镜像)

                                     RECOVER  normal 至少选择两块磁盘 (用作镜像)

 

 

建立第一个磁盘组,名为DG1,用来存放数据库的数据

 

Redundancy 冗余有三种冗余方式

 

High 需要三块磁盘;

Normal需要两块磁盘;

External需要一块磁盘;

 

这里选择Normal,两块磁盘做镜像

 

 

 

 

 

 

            这里指定数据文件存放在哪个磁盘组,这里默认为DG1

 

 

           这里指定Flash Recovery的存放位置,这里指定  +RECOVERY

           这面也可以启动归档,这里不启动

 

 

         选择系统模板

 

 

 

 

 

 

 

 

                  解除SCOTT用户的锁,密码输入tiger

 

 

到此RAC安装结束!!!!!

 

 

********************************************************************************************

posted @ 2015-09-20 21:09  Oracle-fans  阅读(318)  评论(0编辑  收藏  举报