这是我自己博客开通的第一篇,有点小激动哈╰( ̄▽ ̄)╮。下面进入正题,如何在CentOS6.4上安装Oracle11.2.0.4(单实例ASM)。下载介质请到Seachine下载。
虚拟机:VMware® Workstation,版本:10.0.2 build-1744117
OS:CentOS6.4
DB:Oracle11.2.0.4
IP:192.168.181.55
Netmask:255.255.255.0
Gateway:192.168.181.1
主机名:sg1
OS安装很简单,除了安装系统的硬盘,我还额外加了两块5G的硬盘,原因是后面我将使用ASM UDEV绑定的方式将这两块盘做成存放数据文件与闪回区的ASM盘。OS类型我选的是桌面版,另外加的两块5G盘不用分区,其他就按步就班地安装,需要的包后面再装。
[root@sg1 ~]# cd /tmp [root@sg1 tmp]# ll total 12 drwx------. 2 gdm gdm 4096 Oct 27 10:27 orbit-gdm drwx------. 2 root root 4096 Oct 27 10:26 orbit-root drwx------. 2 gdm gdm 4096 Oct 27 10:26 pulse-7rXfsGYPnYLc -rw-------. 1 root root 0 Oct 27 2014 yum.log [root@sg1 tmp]# rz [root@sg1 tmp]# ls -lh total 3.5G drwx------. 2 gdm gdm 4.0K Oct 27 10:27 orbit-gdm drwx------. 2 root root 4.0K Oct 27 10:26 orbit-root -rw-r--r--. 1 root root 1.3G Apr 15 2014 p13390677_112040_Linux-x86-64_1of7.zip -rw-r--r--. 1 root root 1.1G Apr 15 2014 p13390677_112040_Linux-x86-64_2of7.zip -rw-r--r--. 1 root root 1.2G Apr 17 2014 p13390677_112040_Linux-x86-64_3of7.zip drwx------. 2 gdm gdm 4.0K Oct 27 10:26 pulse-7rXfsGYPnYLc -rw-------. 1 root root 0 Oct 27 2014 yum.log
在绑定前先把用户和用户组加上,
[root@sg1 ~]# vi user.sh groupadd -g 501 dba groupadd -g 502 oper groupadd -g 503 asmadmin groupadd -g 504 asmoper groupadd -g 505 asmdba useradd -u 500 -g oinstall -G dba,asmdba,oper oracle useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid [root@sg1 ~]# sh user.sh [root@sg1 ~]# passwd oracle Changing password for user oracle. New password: BAD PASSWORD: it is based on a dictionary word BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully. [root@sg1 ~]# passwd grid Changing password for user grid. New password: BAD PASSWORD: it is based on a dictionary word BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully.
由于我用的VMware® Workstation ,在使用/sbin/scsi_id -g -u -d /dev/sdb命令后竟然没有显示任何信息,网上查询后了解到,原来要在虚拟机文件上加disk.EnableUUID="TRUE"这个配置信息。
[root@sg1 tmp]# shutdown -h now 打开sg1.vmx,添加: disk.EnableUUID="TRUE"
下面用命令找出上面添加的两块磁盘的UUID,并定义规则文件,重启UDEV
[root@sg1 ~]# /sbin/scsi_id -g -u -d /dev/sdb 36000c291cf77bc123323fe102f774b1f [root@sg1 ~]# /sbin/scsi_id -g -u -d /dev/sdc 36000c29882d246daac8110185b222b77 [root@sg1 ~]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id i --whitelisted --device=/dev/$name", RESULT=="36000c291cf77bc123323fe102f774b1f", NAME="ASM_DATA", ACTION=="add|change", OWNER="grid",GROUP="oinstall", MODE="0660" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id i --whitelisted --device=/dev/$name", RESULT=="36000c29882d246daac8110185b222b77", NAME="ASM_FLA", ACTION=="add|change", OWNER="grid",GROUP="oinstall", MODE="0660" [root@sg1 ~]# /sbin/udevadm control --reload-rules [root@sg1 ~]# /sbin/start_udev Starting udev: [ OK ]
关于UDEV的绑定问题,有很多因为OS版本不一,导致很多问题,下面两个链接是别人总结的,大家可以参考。在Linux 6上使用UDEV解决RAC ASM存储设备名问题,利用UDEV配置OCR VOTE(基于整个磁盘)
[root@sg1 ~]# vi mkdir.sh mkdir -p /u01/app/oraInventory chown -R grid:oinstall /u01/app/oraInventory/ chmod -R 775 /u01/app/oraInventory/ mkdir -p /u01/11.2.0/grid chown -R grid:oinstall /u01/11.2.0/grid/ chmod -R 775 /u01/11.2.0/grid/ mkdir -p /u01/app/oraInventory/ mkdir -p /u01/app/oracle mkdir -p /u01/app/oracle/cfgtoollogs mkdir -p /u01/app/oracle/product/11.2.0/db_1 chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01/app/oracle [root@sg1 ~]# sh mkdir.sh
[root@sg1 ~]# vi /etc/hosts 192.168.181.55 sg1 [root@sg1 ~]# vi /etc/sysctl.conf 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 [root@sg1 ~]# sysctl -p [root@sg1 ~]# vi /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 [root@sg1 ~]# vi /etc/pam.d/login session required /lib/security/pam_limits.so [root@sg1 ~]# vi /etc/profile if [ $USER = "oracle" ]||[ $USER = "grid" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
[root@sg1 ~]# chkconfig ntpd off [root@sg1 ~]# vi /etc/selinux/config SELINUX=disable
Oracle: vi .bash_profile export ORACLE_SID=sg1 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 PATH=$PATH:$ORACLE_HOME/bin umask 022 Grid: vi .bash_profile export ORACLE_SID=+ASM export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/11.2.0/grid export GRID_HOME=/u01/11.2.0/grid export LD_LIBRARY_PATH=$ORACLE_HOME/lib export THREADS_FLAG=native export PATH=$PATH:$ORACLE_HOME/bin umask 022
cd /etc/yum.repos.d/ mkdir old mv CentOS-* old/ vi pjc.repo [pjc] name=pjc baseurl=file:///media gpgcheck=0 enable=1 yum install compat-libstdc* -y; yum install libaio-devel* -y; yum install sysstat* -y; yum install unixODBC-2.2.11 -y; yum install unixODBC-devel* -y; yum install pdksh* -y; yum install lrzsz* -y; yum install vnc* -y;
[root@sg1 tmp]# unzip p13390677_112040_Linux-x86-64_3of7.zip [grid@sg1 ~]$ cd /tmp/grid [grid@sg1 grid]$ ./runInstaller
下面在grid用户下图形化界面安装grid:
grid最后安装检查,我们发现有两个地方没通过,现在来修正。
[root@sg1 ~]# vi /etc/sysctl.conf
kernel.shmmax = 980320256
[root@sg1 ~]# sysctl -p
还少了个RPM包,可以到Seachine下载,安装后再次检查,通过!下面安装后跑脚本出错:
Creating trace directory
/u01/11.2.0/grid/bin/clscfg.bin: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory
Failed to create keys in the OLR, rc = 127, Message:
Failed to create keys in the OLR at /u01/11.2.0/grid/crs/install/crsconfig_lib.pm line 7660.
/u01/11.2.0/grid/perl/bin/perl -I/u01/11.2.0/grid/perl/lib -I/u01/11.2.0/grid/crs/install /u01/11.2.0/grid/crs/install/roothas.pl execution failed
查询相关资料后发现是少了安装compat-libcap1-1.10-1.x86_64.rpm,下面安装
[root@sg1 ~]# yum install -y compat-libcap*
下面删除CRS配置,重新跑脚本 :
perl /u01/11.2.0/grid/crs/install/rootcrs.pl -verbose -deconfig -force
[root@sg1 ~]# /u01/11.2.0/grid/root.sh
上面这步参考11G GRID 安装缺少到libcap.so.1而终止的解决方法
现在grid软件已经安装完成,下面继续安装Disk Group,依旧是grid用户下的图形化配置。
[grid@sg1 ~]$ asmca
先解压软件,然后下面切换到oracle用户,并在图形化界面下安装
[root@sg1 tmp]# unzip p13390677_112040_Linux-x86-64_1of7.zip [root@sg1 tmp]# unzip p13390677_112040_Linux-x86-64_1of7.zip [oracle@sg1 ~]$ cd /tmp/database/ [oracle@sg1 database]$ ./runInstaller
最后执行一下脚本即可。
下面正式安装数据库,在oracle用户下执行dbca,图形化界面安装
[root@sg1 admin]# mkdir -p sg1/adump
[root@sg1 admin]# chown -R oracle:oinstall sg1/
以前安装过很多次Oracle,这次是高版本OS+高版本DB,并且使用ASM的单实例,安装困难在于grid与udev方面,其实原理是一样的,而且使用udev就不依赖于Oracle ASM Lib包,在CentOS6系列中ASMLib不太好找,就直接用udev了。第一篇原创博客到这里就结束了,希望大家以后多多捧场啊!(>^ω^<)