Linux6安装Oracle 11g R2 RAC(virtualbox)
硬件:virturlbox
软件:oracle 11.2.0.1 ---安装grid过程中有bug,已在11.2.0.3中修复
虚拟机配置如下即可:

创建oracle相关用户:
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
groupadd asmoper
groupadd asmdba
useradd -g oinstall -G dba,asmdba,oper,asmadmin oracle
useradd -g oinstall -G asmadmin,asmdba,asmoper,dba grid
passwd oracle
passwd grid
创建安装目录:
mkdir -p /u01/app/oracle
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid/chown -R oracle.oinstall /u01
chown -R grid.oinstall /u01/app/gridchown -R grid.oinstall /u01/app/11.2.0/
chown -R oracle.oinstall /u01/app/oracle
chmod -R 775 /u01
创建用户profile(分别在两个节点上):
su -grid
vi .bash_profile
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
umask 022export ORACLE_SID=+ASM2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
umask 022su- oracle
vi .bash_profile
export ORACLE_SID=dzswl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export TMP=/tmp
export TMPDIR=$TMP
export PATH=$PATH:$ORACLE_HOME/bin
umask 022export ORACLE_SID=dzsw2
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export TMP=/tmp
export TMPDIR=$TMP
export PATH=$PATH:$ORACLE_HOME/bin
umask 022
通过yum安装相关工具:
将cd挂载到/mnt目录下,mount /dev/sr0 /mnt
配置yum源
[dzsw1]
name=dzsw1
baseurl=file:///mnt/Server
gpgcheck=0yum -y install binutils* compat-libcap* compat-libstdc++* compat-libstdc++* gcc* glibc* glibc* ksh* libgcc* libstdc* libaio* make* sysstat* lrzsz*
配置hosts文件(配置host需要注意检查/etc/sysconfig/network中的username是否和hosts中的一致,否则可能出现PRVF-0002:Could not retrieve local nodename,另外hosts中127.0.0.1 避免出现主机名):
# Public
192.168.1.101 dzsw1
192.168.1.102 dzsw2
# Private
18.86.2.11 dzsw1-priv
18.86.2.12 dzsw2-priv
# Virtual
192.168.1.201 dzsw1-vip
192.168.1.202 dzsw2-vip
# SCAN
192.168.1.103 dzsw-scan
192.168.1.104 dzsw-scan
192.168.1.105 dzsw-scan
修改系统参数profile:
cat >> /etc/profile <<EOF
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
fiexport PATH=/u01/app/11.2.0/grid/bin:$PATH:.
EOF
limit 参数:
cat >> /etc/security/limits.conf<< EOF
grid soft nofile 1024
grid hard nofile 65536
grid soft nproc 2047
grid hard nproc 16384
grid soft stack 10240
grid hard stack 32768
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
EOF
sysctl参数:
cat >> /etc/sysctl.conf<<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
# kernel.shmmax = kernel.shmall * 1024
kernel.shmmax = 2147483648
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
EOF
执行sysctl -p生效。
修改login:
cat >>/etc/pam.d/login<<EOF
session required pam_limit.so
EOF
其他的,关闭selinux,iptables,ntpd等。
service iptables stop chkconfig iptables off
采用ntpd同步时间(确保已安装ntp):
vi /etc/sysconfig/ntpd
# Drop root to id ‘ntp:ntp’ by default.
#OPTIONS=”-u ntp:ntp -p /var/run/ntpd.pid -g”
OPTIONS=”-x -u ntp:ntp -p /var/run/ntpd.pid”service ntpd restart
配置裸设备,方法有udev和安装ASMlib
1、配置udev需要编辑:
/etc/udev/rules.d/99-oracle-asmdevices.rules
ACTION==”add”, KERNEL==”sdb1", RUN+=”/bin/raw /dev/raw/raw1 %N”
ACTION==”add”, KERNEL==”sdd1", RUN+=”/bin/raw /dev/raw/raw2 %N”
ACTION==”add”, KERNEL==”sdc1", RUN+=”/bin/raw /dev/raw/raw3 %N”
KERNEL==”raw[1–3]*”, OWNER=”grid”, GROUP=”asmdba”, MODE=”775"
/sbin/start_udev
2、安装ASMlib(各个节点):
oracleasmlib-2.0.12–1.el6.x86_64.rpm
oracleasm-2.0.6.rh1–2.el6.src.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 []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
[root@dzsw1 tmp]# /usr/sbin/oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module “oracleasm”: oracleasm
Configuring “oracleasm” to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm
fdisk添加的共享磁盘后,执行:
[root@dzsw1 ~]# /usr/sbin/oracleasm createdisk DISK1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@dzsw1 ~]# /usr/sbin/oracleasm createdisk DISK1 /dev/sdc1
Disk “DISK1” already exists
[root@dzsw1 ~]# /usr/sbin/oracleasm createdisk DISK2 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@dzsw1 ~]# /usr/sbin/oracleasm createdisk DISK3 /dev/sdd1
Writing disk header: done
Instantiating disk: done
[root@dzsw1 ~]# /usr/sbin/oracleasm createdisk DISK4 /dev/sde1
Writing disk header: done
Instantiating disk: done
[root@dzsw1 ~]#
[root@dzsw1 ~]# /usr/sbin/oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks…
Scanning system for ASM disks…
[root@dzsw1 ~]#
[root@dzsw1 ~]# /usr/sbin/oracleasm listdisks
DISK1
DISK2
DISK3
DISK4
对每个盘进行创建,然后sandisks,发现第二个节点可以看到共享磁盘了。
[root@dzsw2 ~]# /usr/sbin/oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks…
Scanning system for ASM disks…
Instantiating disk “DISK1”
Instantiating disk “DISK2”
Instantiating disk “DISK3”
Instantiating disk “DISK4”
[root@dzsw2 ~]# /usr/sbin/oracleasm listdisks
DISK1
DISK2
DISK3
DISK4
安装grid
su-grid






遇到2坑,参见日志可以解决:/u01/app/11.2.0/grid/cfgtoollogs/crsconfig/rootcrs_dzsw1.log。此日志是在执行root.sh时候的安装日志
1、Adding Clusterware entries to upstart
Failed to stop service oracle-ohasd, error: Inappropriate ioctl for device
当遇到以上报错的时候,注意查看ohasd是否启动,否则日志一直在报:2017–12–03 18:39:50: Checking the status of ohasd
2017–12–03 18:39:55: Executing cmd: /u01/app/11.2.0/grid/bin/crsctl check has
执行/etc/init.d/init.ohasd run
2、节点2执行root.sh 遇到
OLR initialization — successful
CRS-2728: A resource type with the name ‘ora.daemon.type’ is already registered
CRS-4000: Command Add failed, or completed with errors.
CRS-2728: A resource type with the name ‘ora.mdns.type’ is already registered
CRS-4000: Command Add failed, or completed with errors.
Failed to register Grid Infrastructure type ora.mdns.type at /u01/app/11.2.0/grid/crs/install/crsconfig_lib.pm line 7777.
/u01/app/11.2.0/grid/perl/bin/perl -I/u01/app/11.2.0/grid/perl/lib -I/u01/app/11.2.0/grid/crs/install /u01/app/11.2.0/grid/crs/install/rootcrs.pl execution failed
需要回退./roothas.pl -deconfig -force -verbose,重新执行且执行/etc/init.d/init.ohasd run。
--------------------------
在执行/u01/app/11.2.0/grid/root.sh的时候,在“Adding daemon to inittab”打印到屏幕之后,需要开启另一个窗口执行/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
两个节点都要执行。
接下来就是安装oracle软件和数据库了,在dbca之前需要在grid用户里通过asmca创建数据磁盘组。

--待续
