本人初入ORACLE,在这方面还是小菜,虽然以前在公司安装过单机的生产机器,公司也有好多的机器是安装的RAC集群数据库,本着学习的态度在自己机器上面尝试安装11g RAC,记录的东西包括虚拟机安装、linux安装和oracle RAC安装,记录的方式也笔记蠢,但也很直观。
PS:请各位大虾手下留情,不喜勿喷!
----------------------------------------------------
本次安装过程我总的分为3个小节
(一):vmware+linux的安装
(二):数据库环境配置和磁盘组的创建
(三):安装grid和安装oracle数据库
-----------------------------------------------------
软件介绍:
虚拟机:VMware_Workstation_wmb 8.4
linux :rhel-server-5.8-x86_64-dvd.iso
oracle版本:Oracle 11gr2 server
这些软件相信大家都可去官网下载,这里就不提供下载链接。
-----------------------------------------------------
今天我们进行数据库环境配置和磁盘组的创建
首先是数据库环境配置
1.配置HOSTS,修改主机名和网络配置
# public
192.168.0.212 rac1
192.168.0.213 rac2
# priv
192.168.226.212 rac1-priv
192.168.226.213 rac2-priv
# vip
192.168.0.214 rac1-vip
192.168.0.215 rac2-vip
# scan
192.168.0.222 rac-scan
2.检查rpm包
rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat
检查信息:
![]()
注: 一般都缺(compat-libstdc,libaio-devel,sysstat),找到相应的包并安装。compat-libstdc包安装后检查时候 可能还是检查不出来,可以跳过。
3.创建用户和组及安装目录
groupadd -g 601 oinstall
groupadd -g 602 dba
groupadd -g 603 oper
groupadd -g 604 asmadmin
groupadd -g 605 asmoper
groupadd -g 606 asmdba
useradd -g oinstall -G dba,asmdba,oper oracle
useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
--userdel -r oracle
passwd oracle
passwd grid
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
mkdir -p /u01/app/grid
mkdir -p /u01/app/gridbase/product/11.2.0/grid
chown -R oracle:oinstall /u01/app/
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/gridbase
chmod -R 775 /u01/
4.修改系统参数
# vi /etc/security/limits.conf
#ORACLE SETTING
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
# vi /etc/pam.d/login
#ORACLE SETTING
session required pam_limits.so
# vi /etc/sysctl.conf
#ORACLE SETTING
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
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
生效: sysctl -p
在Linux中,共享内存是以segment为单位分配的,segment的最大尺寸由SHMMAX参数控制,segment的尺寸可以小于SHMMAX;一个进程可以分配多个segment,最大个数由SHMSEG来控制;系统中可分配的segment的个数由SHMMNI控制,默认为4096;系统中共享内存page的数量取决于SHMALL参数,page的尺寸一般为4K,也就是说,系统中可用的最大共享内存为SHMALL*4K,这个值一般至少设置为系统物理内存的90%。
5.修改gird、oracle用户的.bash_profile文件
#grid 用户配置文件 ORACLE_HOSTNAME请自行设置
ORACLE_SID=+ASM; export ORACLE_SID
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH; export PATH
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
#oracle用户配置文件 ORACLE_HOSTNAME请自行设置
# Oracle Settings oracle
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH; export PATH
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
6.设置tmpfs参数
umount tmpfs
mount -t tmpfs shmfs -o size=3000m /dev/shm
vi /etc/fstab
7.停止时间同步
service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.20140630
rm -f /var/run/ntpd.pid
------------------------------------------------------------------------------------------------------------------------
下面我们创建共享磁盘
1.首先我们关掉linux,进入到配置界面,选择add 2.选择hard disk
![](//images0.cnblogs.com/i/418514/201408/151510534676780.png)
3.选择创建磁盘 4.选择Independent,然后NEXT
![](//images0.cnblogs.com/i/418514/201408/151511416086087.png)
5.分配大小为8G,并且立即分配 6.选择存放位置
![](//images0.cnblogs.com/i/418514/201408/151512055619204.png)
7.开始创建 8.同样的方式 我们创建好了5块磁盘
![](//images0.cnblogs.com/i/418514/201408/151512374674686.png)
9.磁盘添加好了后,我们需要需改一下磁盘的属性,让他成为共享磁盘,找到虚拟机rac1的安装位置E:\VM\rac1,然后用文本打开rac1.vmx
在rac1.vmx添加
disk.locking= "FALSE"
disklib.dataCacheMaxSize="0"
disklib.dataCacheMaxReaDAheadSize="0"
disklib.dataCacheMinReaDAheadSize="0"
disklib.dataCachePageSize="4096"
disklib.maxUnsyncedWrites="0"
scsi0.sharedBus = "VIRTUAL"
--每个磁盘都添加
scsi0:1.deviceType="plainDisk"
scsi0:1.redo=""
![](//images0.cnblogs.com/i/418514/201408/151513161866614.png)
10.启动rac1 ,进入/dev :ls -l sd*
![](//images0.cnblogs.com/i/418514/201408/151514475928340.png)
11.用fdisk sdc 为sdc分区
![](//images0.cnblogs.com/i/418514/201408/151515026555707.png)
报错:资源繁忙导致,需要删除后重新去分区。
![](//images0.cnblogs.com/i/418514/201408/151515158272232.png)
12.分别给5快盘分区:
![](//images0.cnblogs.com/i/418514/201408/151515264367540.png)
到目前位置我们共享磁盘创建完成,并且分区也添加好了,下面我们来帮顶裸设备,也可以用asm工具去创建,这里我们选择用裸设备:
13.添加raw设备
vi /etc/sysconfig/rawdevices
# raw device bindings
# format: <rawdev> <major> <minor>
# <rawdev> <blockdev>
# example: /dev/raw/raw1 /dev/sda1
# /dev/raw/raw2 8 5
#data
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdc1
/dev/raw/raw3 /dev/sdd1
/dev/raw/raw4 /dev/sde1
/dev/raw/raw5 /dev/sdf1
vi /etc/rc.local --设置权限
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
chown grid:oinstall /dev/raw/raw1
chown grid:oinstall /dev/raw/raw2
chown grid:oinstall /dev/raw/raw3
chown grid:oinstall /dev/raw/raw4
chown grid:oinstall /dev/raw/raw5
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
chmod 660 /dev/raw/raw4
chmod 660 /dev/raw/raw5
touch /var/lock/subsys/local
使裸设备重启
/etc/init.d/rawdevices restart
--查看裸设备
raw -qa
删除裸设备 方法
raw /dev/raw/raw1 0 0
------------------------------------------------------------------------------------------------------
到目前位置我们算是吧RAC1所有配置工作基本配置完成,对于RAC2我们处理起来就简单多了,当然如果你还想练习一下也可以自己去重新一步步的安装一次。
这里我们就用拷贝的方式去取创建一个RAC2:
首先在RAC1安装文件同级位置创建一个rac2的文件夹,并吧rac1文件夹下的所有文件全部拷贝到rac2文件夹下。
然后打开vmmare,选择file,选择open,找到RAC2中的rac1.vmx,添加进来后选择新添加的虚拟机rac1右键rename重命名为rac2,虚拟机会自动去修改相应的配置
最后点击启动rac2,系统会提示你该系统是怎么来的,选择拷贝选项,后面就等linux自动去处理,进入rac2系统后去改一下对应的网卡地址。
接下来打通节点间的通信通道(每个节点都要执行)grid 和oracle 用户下都要执行
mkdir ~/.ssh
ls -la
chmod 700 .ssh
cd .ssh
touch authorized_keys
--生成钥匙命令
/usr/bin/ssh-keygen -t dsa
--下面的在一个节点上执行
ls
cat id_dsa.pub >> authorized_keys
ssh rac1 cat .ssh/id_dsa.pub >> authorized_keys
--上面两个就是把两个节点的公钥都放在authorized_keys里面
scp authorized_keys rac1:~/.ssh
测试 ssh rac1 date
ssh rac2 date
通过后就不需要输入密码,第一次可能需要输入密码。
--------------------------------------------------------------------------------------------------------------
好的两台机器的配置工作基本是告于段落,接下来就是grid和数据库的安装咯。