环境介绍:
Platform:VisualBox 4.3.12
OS:Oracle Linux 5.8
Grid Infrastructure:11.2.0.3
Database:11.2.0.3
一、安装操作系统(略)
二、配置软件安装环境
--安装完以后先配置一个本地yum
cd /etc/yum.repos.d/
touch yum_oel5.repo
vi yum_oel5.repo
添加以下内容:
[oel5]
name=Oracle Linux 5.8 x86_64 DVD
baseurl=file:///media/Server
gpgcheck=0
enabled=1
关于repo设置的详细用法可以参照:
http://docs.oracle.com/cd/E37670_01/E37355/html/ol_create_repo.html
--安装Oracle软件必要的包和内核参数设置
yum install oracle-validated
注意,在Oracle Linux 6.x中使用的是:
yum install oracle-rdbms-server-11gR2-preinstall-1.0-6.el6
一些相关的yum的命令:
yum clean all
yum repolist
yum list
在OEL6中用yum安装"Desktop"、"X Window System"、"Chinese Support"
yum --disablerepo=* --enablerepo=oel6 groupinstall "Desktop"
yum --disablerepo=* --enablerepo=oel6 groupinstall "X Window System"
yum --disablerepo=* --enablerepo=oel6 groupinstall "Chinese Support"
如果使用的是Oracle Linux,就会有这个包,安装完以后会自动配置安装Oracle软件所需的内核参数、用户、用户组、软件包等,非常方便,因此,强烈推荐使用Oracle Linux搭建测试环境
--挂载磁盘
mount -t iso9660 /dev/cdrom /media
--添加用户和组(非Oracle Linux环境配置)
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 505 asmdba
groupadd -g 506 asmoper
useradd -u 500 -g oinstall -G dba,asmdba,asmadmin,oper oracle
useradd -u 507 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
注意,oper组不是必须的,dba,asmdba,asmadmin必须有
--修改grid和oracle用户密码
passwd oracle
passwd grid
--配置环境变量
grid:
export ORACLE_SID=+ASM
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
umask 022
oracle:
ORACLE_SID=zlm; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
GRID_HOME=/u01/app/11.2.0/grid
NLS_DATE_FORMAT="YYYY:MM:DD HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$GRID_HOME/bin export PATH
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
主要是配置红色字体的几个环境变量(必须)
--以vbox命令行方式添加共享磁盘
VBoxManage createhd --filename asm01.vdi --size 3072 --format VDI --variant Fixed
VBoxManage createhd --filename asm02.vdi --size 3072 --format VDI --variant Fixed
VBoxManage createhd --filename asm03.vdi --size 3072 --format VDI --variant Fixed
--设置磁盘为共享盘
VBoxManage storageattach asm11g --storagectl "SATA" --port 1 --device 0 --type hdd --medium asm01.vdi --mtype shareable
VBoxManage storageattach asm11g --storagectl "SATA" --port 2 --device 0 --type hdd --medium asm02.vdi --mtype shareable
VBoxManage storageattach asm11g --storagectl "SATA" --port 3 --device 0 --type hdd --medium asm03.vdi --mtype shareable
注意:VBoxManage.exe是在本机window的cmd命令行中执行的(先到vbox软件的安装根目录下)
也可以通过鼠标点击的方式添加共享磁盘,原理是一样的
--利用udev绑定磁盘
for Linux 6.x
for i in b c d;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id -g -u /dev/\$name\",
RESULT==\"`/sbin/scsi_id -g -u /dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\",
GROUP=\"asmadmin\", MODE=\"0660\""
done
for Linux 5.x
for i in b c d;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id -g -u -s %p\", RESULT==\"`scsi_id -g -u -s /block/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\",
GROUP=\"asmadmin\", MODE=\"0660\""
done
使用的时候要注意在不同版本上脚本的区别,否则获取不到磁盘的scsi_id
--创建规则文件
touch /etc/udev/rules.d/99-oracle-asmdevices.rules
--重启udev,使配置生效
/sbin/start_udev
--关闭防火墙(如在安装OS的时候已经选择关闭,可跳过此步骤)
临时关闭:
service iptables status
service iptables stop
永久关闭:
chkconfig --list iptables
chkconfig [--level 35] iptables off
PS:可以顺便把sendmail服务也永久关闭,否则启动系统会很久
--创建所需的相关目录(环境变量中配置过的目录)
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
--关闭selinux(在装OS的时候可以选择关闭)
cat >> /etc/selinux/config <<EOF
SELINUX=DISABLED
EOF
--设置登录限制
cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
EOF
--设置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
fi
EOF
--修改hosts文件
cat /etc/hosts
127.0.0.1 localhost asm11g
三、安装GI软件(略)
--装完GI软件后,root用户执行单节点脚本
/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/roothas.pl
这一步必须做,否则crs资源是不会启动的,也无法执行crsctl等相关GI命令
四、安装ORACLE数据库软件
--安装数据库软件后,grid用户执行asmca,添加磁盘组
--创建数据库之前先,oracle用户执行netmgr,创建监听
五、dbca建库
建库期间,到选择数据库磁盘组这里遇到错误,提示无法识别到磁盘组
解决方法很简单,给oracle文件一个6751权限即可,root用户分别执行:
chmod 6751 /u01/app/11.2.0/grid/oracle
chmod 6751 /u01/app/oracle/product/11.2.0/db_1/oracle
6751分别制定了ugoa的权限:
第一位6代表u(所有者)有读、写权限,没有执行权限
第二位7代表g(组)有读、写、执行权限
第三位5代表o(其它用户)有读、执行权限
第四位1代表a(所有者、组、其它用户)有执行权限
四位6751如果用三位表示就是675,第四位继承umask的值
oracle用户属于组dba、oinstall
可执行代码需要的是最少权限是110即所有者和组有执行权限,
为了维护方便一般都给775即所有者和组有读、写、执行权限,其它用户有执行权限