启动OUI 时,它将查找此文件(oraInst.loc )。如果找不到,OUI 将认为相应的计算机上没有安装任何ORACLE 软件,这时,他会创建文件,在其中写入要创建的新产品清单的位置。以后每次运行任何版本的OUI 时,都能找到此产品清单。
涉及到创建,需要有写入权限。所以通常只有root 用户才可以写入/etc 或者/var ,
由于安全原因,不允许用root 用户身份运行OUI ,所以OUI 会生成一个orainstRoot.sh 脚本,这个脚本的属主是root, 而这个脚本用于创建oraInst.loc ,也就是说在oracle 的安装过程中,会需要用户以root 的身份运行orainstRoot.sh 这个脚本,而这个脚本的目的之一是创建oraInst.loc 。这个在你一会安装oracle 的时候等到最后的 “安装产品”这一步后,
系统会自动提示你运行两个脚本,第一个就是orainstRoot.sh 。这里我先给出他的内容,
以便大家分析:
[root@localhost Desktop]# cat /u01/app/oraInventory/orainstRoot.sh
看看第19 行就是复制oraInst.loc ,就是创建他的。
#!/bin/sh
AWK=/bin/awk
CHMOD=/bin/chmod
CHGRP=/bin/chgrp
CP=/bin/cp
ECHO=/bin/echo
MKDIR=/bin/mkdir
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'`
if [ ${RUID} != "root" ];then
$ECHO " 必须以 root 身份执行此脚本"
exit 1
fi
if [ -d "/etc" ]; then
$CHMOD 755 /etc;
else
$MKDIR -p /etc;
fi
if [ -f "/u01/app/oraInventory/oraInst.loc" ]; then
$CP /u01/app/oraInventory/oraInst.loc /etc/oraInst.loc;
$CHMOD 644 /etc/oraInst.loc
else
INVPTR=/etc/oraInst.loc
INVLOC=/u01/app/oraInventory
GRP=dba
PTRDIR="`dirname $INVPTR`";
# 创建软件产品清单位置指针文件
if [ ! -d "$PTRDIR" ]; then
$MKDIR -p $PTRDIR;
fi
$ECHO " 创建 Oracle 产品清单指针文件($INVPTR)";
$ECHO inventory_loc=$INVLOC > $INVPTR
$ECHO inst_group=$GRP >> $INVPTR
chmod 644 $INVPTR
# 如果产品清单目录不存在, 则创建它
if [ ! -d "$INVLOC" ];then
$ECHO " 创建 Oracle 产品清单目录($INVLOC)";
$MKDIR -p $INVLOC;
fi
fi
$ECHO " 更改权限/u01/app/oraInventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。
";
$CHMOD -R g+rw,o-rwx /u01/app/oraInventory;
if [ $? != 0 ]; then
$ECHO "OUI-35086: 警告: chmod/u01/app/oraInventory
添加组的读取和写入权限。
, 删除全局的读取, 写入和执行权限。
失败!";
fi
$ECHO " 更改组名/u01/app/oraInventory 到 dba.";
$CHGRP -R dba /u01/app/oraInventory;
if [ $? != 0 ]; then
$ECHO "OUI-10057: 警告: chgrp/u01/app/oraInventory 到 dba 失败!";
fi
$ECHO " 脚本的执行已完成。"
OUI 在运行之前要先检查服务器计算机上的某些需求。这些需求在oracle 安装软件(比如说现在oracle 软件在DVD 上)的
/install/oraparam.ini 给出
3 、系统参数和用户及目录设置
// 系统参数设置
注意 每一次修改完内核参数后,需要用下面命令使修改生效
/sbin/sysctl -p
如果内核参数与我的不一样,可以根据实际安装过程中的条件检测部分的提示来修改即可。
一定要具体情况具体看待。
为什么要设置系统参数,以及参数为什么这样设置可以参看oracle 官方文档
vi /etc/sysctl.conf
以下为此文件更改后的内容:
# Kernel sysctl configuration file for Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Controls the maximum size of a message, in bytes
#kernel.msgmnb = 65536
# Controls the default maxmimum size of a mesage queue
#kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
#kernel.shmmax = 4294967295
# Controls the maximum number of shared memory segments, in pages
#kernel.shmall = 268435456
#Below for oracle11g
fs.aio-max-nr=1048576
kernel.core_uses_pid = 1
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
// 添加用户组及用户
执行如下命令:
#groupadd dba 创建用户组dba
#groupadd oinstall 创建用户组oinstall
#useradd oracle -g oinstall -G dba 添加用户oracle 使其属于组oinstall 和附加组dba
#passwd oracle 设置用户oracle 的秘密
// 新建目录权限
执行如下命令:
#mkdir -p /u01 新建目录 /u01
#chown -R oracle:dba /u01 将目录/u01 (递归)属主和属组分别更改为oracle dba
#chmod -R 755 /u01 将/u01 权限赋值为755
// 用户环境变量
先切换用户到oracle:
su – oracle
修改.bash_profile 文件:
vi .bash_profile