Oracle RAC Virtual Box+Oracle Linux 5.5搭建

以下测试并未完成RAC搭建,由于硬件条件有限,只进行到GRID搭建。
 
1. 软件准备:
a. Oracle Linux 5.5
b. Virtual Box (> 3.2.8)
c. Oracle 11g Release 2(11.2) 64bit
d. Linux.x64_11gr2_grid
f. IP 地址分配:
   rac1            12.11.0.113
   rac2            12.11.0.114
   rac1-priv    12.11.0.115
   rac2-priv    12.11.0.116
   rac1-vip      12.11.0.117
   rac2-vip      12.11.0.118
   rac-scan      12.11.0.119
   rac-scan      12.11.0.120
   rac-scan       12.11.0.121
 
2. 搭建虚拟机:
硬盘:20GB (/boot 100m; swap 3GB; / 剩余 )
内存:2GB(至少要求1.5GB, 由于硬件条件有限测试用了1.5GB)
网络:测试均使用host-only模式;每台虚拟机配置两块网卡,对应rac1及rac1-priv地址
          关闭防火墙和selinux
安装附件包:Install Gust Additions
安装包组:
  • GNOME Desktop Environment
  • Editors
  • Graphical Internet
  • Text-based Internet
  • Development Libraries
  • Development Tools
  • Server Configuration Tools
  • Administration Tools
  • Base
  • System Tools
  • X Window System
安装包:
ORACLE Linux:
yum install oracle-validated
yum install oracleasm*
rpm -Uvh oracleasmlib-2.0.4-1.el5.x86_64.rpm
rpm -Uvh .../grid/rpm/cvuqdisk*
 
非ORACLE Linux:
rpm -Uvh binutils-2.*
rpm -Uvh compat-libstdc++-33*
rpm -Uvh elfutils-libelf-0.*
rpm -Uvh elfutils-libelf-devel-*
rpm -Uvh gcc-4.*
rpm -Uvh gcc-c++-4.*
rpm -Uvh glibc-2.*
rpm -Uvh glibc-common-2.*
rpm -Uvh glibc-devel-2.*
rpm -Uvh glibc-headers-2.*
rpm -Uvh ksh-2*
rpm -Uvh libaio-0.*
rpm -Uvh libaio-devel-0.*
rpm -Uvh libgcc-4.*
rpm -Uvh libstdc++-4.*
rpm -Uvh libstdc++-devel-4.*
rpm -Uvh make-3.*
rpm -Uvh sysstat-7.*
rpm -Uvh unixODBC-2.*
rpm -Uvh unixODBC-devel-2.*
yum install oracleasm*
rpm -Uvh oracleasmlib-2.0.4-1.el5.x86_64.rpm
rpm -Uvh .../grid/rpm/cvuqdisk*
 
修改配置文件:(注意如果使用yum install oracle-validated, 可能已经有相关内容)
1. /etc/sysctl.conf
添加:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1054504960
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
 
执行:/sbin/sysctl -p
 
2. /etc/security/limits.conf
添加:
oracle               soft    nproc   2047
oracle               hard    nproc   16384
oracle               soft    nofile  1024
oracle               hard    nofile  65536
 
3. /etc/pam.d/login
添加:
session    required     pam_limits.so
 
创建用户组:
groupadd -g 1000 oinstall
groupadd -g 1200 dba
useradd -u 1100 -g oinstall -G dba oracle
passwd oracle
 
创建并授权文件夹:
mkdir -p  /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01/
 
修改tmpfs大小:
umount tmpfs
mount -t tmpfs shmfs -o size=1500m /dev/shm
 
修改/etc/fstab
tmpfs        /dev/shm        tmpfs        size=1500m        0    0
 
修改/etc/hosts
127.0.0.1        localhost
12.11.0.113    rac1
12.11.0.114    rac2
12.11.0.115    rac1-priv
12.11.0.116    rac2-priv
12.11.0.117    rac1-vip
12.11.0.118    rac2-vip
12.11.0.119    rac-scan
12.11.0.120    rac-scan
12.11.0.121    rac-scan
 
关闭ntp服务
service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.orig
rm /var/run/ntpd.pid
 
切换成ORACLE用户
修改配置文件
1. /home/oracle/.bash_profile
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
 
ORACLE_HOSTNAME=rac1.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=RAC; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
GRID_HOME=/u01/app/11.2.0/grid; export GRID_HOME
DB_HOME=$ORACLE_BASE/product/11.2.0/db_1; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=RAC1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
 
if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi
 
alias grid_env='. /home/oracle/grid_env'
alias db_env='. /home/oracle/db_env'
 
2. /home/oracle/grid_env
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_HOME=$GRID_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
 
3. /home/oracle/db_env
ORACLE_SID=RAC1; export ORACLE_SID
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
 
验证:
$ grid_env
$ echo $ORACLE_HOME
/u01/app/11.2.0/grid
$ db_env
$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0/db_1
$
 
创建共享硬盘:
1. 关闭rac1
2. 创建共享硬盘:
cd <共享硬盘所在路径>
c:\Program Files\Oracle\VirtualBox\VBoxManager createhd --filename asm1.vdi --size 5120 --format VDI --variant Fixed --type shareable --remember
c:\Program Files\Oracle\VirtualBox\VBoxManager createhd --filename asm2.vdi --size 5120 --format VDI --variant Fixed --type shareable --remember
c:\Program Files\Oracle\VirtualBox\VBoxManager createhd --filename asm3.vdi --size 5120 --format VDI --variant Fixed --type shareable --remember
 
3. 关联虚拟系统
图形界面-->设置-->存储-->Controller SATA添加虚拟硬盘-->选择创建的共享硬盘
 
4. 开启rac1
 
5. 创建硬盘:
查看:cd /dev
ls sd*
sda sda1 sda2 sdb sdc sdd
 
fdisk /dev/sdb
n-->p-->1-->Return-->Return-->p-->w
 
查看:
cd /dev
ls sd*
sda sda1 sda2 sdb sdb1 sdc sdc1 sdd sdd1
 
6. 创建ASM硬盘
确定一下rpm已经安装:
rpm -qa|grep oracleasm
配置:
# oracleasm configure -i
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
#
 
# /usr/sbin/oracleasm init
Loading module "oracleasm": oracleasm
Mounting ASMlib driver filesystem: /dev/oracleasm
#
 
创建硬盘:
# /usr/sbin/oracleasm createdisk DISK1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
# /usr/sbin/oracleasm createdisk DISK2 /dev/sdc1
Writing disk header: done
Instantiating disk: done
# /usr/sbin/oracleasm createdisk DISK3 /dev/sdd1
Writing disk header: done
Instantiating disk: done
 
查看:
# /usr/sbin/oracleasm listdisks
DISK1
DISK2
DISK3
 
搭建rac2
1. 克隆虚拟系统 rac1 --> rac2
2. 在rac2上添加共享硬盘
3. 修改rac2网络地址:rac2 / rac2-priv
4. 切换oracle,修改配置文件/home/oracle/.bash_profile; /home/oracle/db_env; /home/oracle/grid_env
将其中rac1改成rac2
 
配置ssh. 达到oracle用户从rac1到rac2,无需输入密码;反之亦然。
1. rac1服务器上切换成oracle用户
2. ssh-keygen -t dsa
提示全部默认回车
3. cd /home/oracle/.ssh
cat id_dsa.pub >> authorized_keys
4. scp authorized_keys oracle@rac2:/home/oracle/.ssh
5. 验证:是否ssh rac2无需输入密码
 
同样在rac2上做相关操作
 
分别在rac1,rac2上做grid全面验证:
../grid/runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
 
安装grid
1. 确保rac1,rac2都已开启;
2. 在rac1上root用户运行:xhost +
3. 切换成oracle用户;
3. cd ../grid
4. ./runInstaller
5. 选择"Install and Configure Grid Infrastructure for a Cluster",点击Next
6. 选择"Typical Installation",点击Next
7. 添加节点"rac2", "rac2-vip"
8. 修改scan name"rac-scan"
9. 点击"SSH Connectivity",输入oracle密码,点击Next(报错,说明oracle用户无法ssh无密码切换)
10. 修改Software Location成"/u01/app/11.2.0/grid"
11. 修改Cluster Registry Storage Type成"Automatic Storage Management"
12. 设置SYSASM密码,规则"八位,有大写字母,数字和小写字母组成"
13. 修改OSASM group成dba, 点击Next
14. 修改Redundancy成External;
15. 选择3个共享硬盘,点击Next(如硬盘列表空,说明未安装oracleasmlib*.rpm包; 如果硬盘显示member,需要使用清空硬盘oracleasm deletedisk DISK1)
16. 点击Next;
17. 通过验证,或者直接ignore all,点击Next
18. 点击Finish,开始安装
19. 根据弹出窗口中的脚本,在rac1, rac2两台机器上逐个运行。
 

Comments

Popular posts from this blog

Nginx Proxy & Load Balance & LNMP

Snort+barnyard2+Snorby CentOS 6.5_64 Installation

ORACLE Error