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
e. oracleasmlib-2.0.4-1.el5.x86_64.rpm (http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel5-084877.html)
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
- oracleasmlib-2.0.4-1.el5.x86_64.rpm
- oracleasm-support-2.1.3-1.el5.x86_64.rpm
- oracleasm-2.6.18-164.el5-2.0.5-1.el5.x86_64.rpm
配置:
# 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
Post a Comment