绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
【脚本】UNIX平台orainstRoot.sh脚本作用
2020-02-03 12:14:11
  我们在使用Oracle Universal Installer(OUI)在UNIX平台上安装Oracle软件的快结束的时候会提示我们要执行orainstRoot.sh脚本。执行这个脚本目的是什么呢?以Linux平台的10g版本Oracle为例我们一起探索一下。

1.orainstRoot.sh脚本内容
[root@secdb ~]# ls -l /oracle/oraInventory/orainstRoot.sh
-rwxrwx--- 1 oracle oinstall 1614 Dec 21  2010 /oracle/oraInventory/orainstRoot.sh
[root@secdb ~]# cat /oracle/oraInventory/orainstRoot.sh
#!/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 "This script. must be executed as root"
   exit 1
fi
if [ -d "/etc" ]; then
$CHMOD 755 /etc;
else
$MKDIR -p /etc;
fi
if [ -f "/oracle/oraInventory/oraInst.loc" ]; then
$CP /oracle/oraInventory/oraInst.loc /etc/oraInst.loc;
$CHMOD 644 /etc/oraInst.loc
else
INVPTR=/etc/oraInst.loc
INVLOC=/oracle/oraInventory
GRP=oinstall
PTRDIR="`dirname $INVPTR`";
# Create the software inventory location pointer file
if [ ! -d "$PTRDIR" ]; then
 $MKDIR -p $PTRDIR;
fi
$ECHO "Creating the Oracle inventory pointer file ($INVPTR)";
$ECHO    inventory_loc=$INVLOC > $INVPTR
$ECHO    inst_group=$GRP >> $INVPTR
chmod 644 $INVPTR
# Create the inventory directory if it doesn't exist
if [ ! -d "$INVLOC" ];then
 $ECHO "Creating the Oracle inventory directory ($INVLOC)";
 $MKDIR -p $INVLOC;
fi
fi
$ECHO "Changing permissions of /oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
";
$CHMOD -R g+rw,o-rwx /oracle/oraInventory;
if [ $? != 0 ]; then
 $ECHO "OUI-35086:WARNING: chmod of /oracle/oraInventory
Adding read,write permissions for group.
,Removing read,write,execute permissions for world.
 failed!";
fi
$ECHO "Changing groupname of /oracle/oraInventory to oinstall.";
$CHGRP -R oinstall /oracle/oraInventory;
if [ $? != 0 ]; then
 $ECHO "OUI-10057:WARNING: chgrp of /oracle/oraInventory to oinstall failed!";
fi
$ECHO "The execution of the script. is complete."

从注释上可以得出脚本的功能描述。
# Create the software inventory location pointer file
# Create the inventory directory if it doesn't exist

因此orainstRoot.sh脚本作用就是创建Oracle软件安装清单的指向文件。

2.指向文件内容
[root@secdb ~]# cat /etc/oraInst.loc
inventory_loc=/oracle/oraInventory
inst_group=oinstall

此文件给出了Oracle软件安装清单目录和属组的名字。

3.小结
  10g版本的orainstRoot.sh脚本相对于早期版本来讲,编写方法有所改进,灵活性也增加了很多。这里建议大家在探索Oracle世界的时候密切关注一切细节,往往从这些细节中我们会有很多意想不到的收获,例如这里提到的脚本编写技巧就值得我们体会。

Good luck.

secooler
11.08.03

-- The End --

分享好友

分享这个小栈给你的朋友们,一起进步吧。

OCM联盟
创建时间:2019-12-27 14:04:54
OCM联盟(OCMU – Oracle Certified Master Union)是一群有着共同理想,共同志向的DBA的家。 ⚠️该小栈仅限ocm成员入驻!审核制! Oracle Certified Master (OCM) -Oracle认证大师,是Oracle认证的别,是对数据库从业人员的技术、知识和操作技能的别的认可。Oracle OCM是解决困难的技术难题和复杂的系统故障的佳Oracle专家人选,也是IT行业衡量IT专家和经理人的高专业程度及经验的基准。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 侯圣文@secooler
    栈主

小栈成员

查看更多
  • gaokeke123
  • ?
  • 山中老狐狸
  • 飘絮絮絮丶
戳我,来吐槽~