linux 下oracle10g安装
第一次用linux,昨天配置一下java环境,以及oracle的安装,问题多多,特此记录一下。
环境:
RedHat Enterprise Linux 4U7 64位
oracle10g
jdk1.6
详细安装步骤请参与oracle官方指南
http://www.oracle.com/technology/global/cn/pub/articles/smiley_10gdb_install.html
1.安装前检测oracle10g 所需的包组件
rpm -q binutils compat-db control-center gcc gcc-c++ glibc-common gnome- libs libstdc++ libstdc++-develmake pdksh xscreensaver libaio openmotif21 sysstat
2.修改/etc/hosts文件,设置主机名和ip
vi/etc/hosts
#添加如下两行
127.0.0.1 localhost
IP地址 主机名称
不添加的话,安装进行不下去,em无法打开。
3.设置ORACLE_HOME环境变量
vi.bash_profile
#将以下加到文件末尾:
export ORACLE_SID=oracl
exportPATH=$PATH:$HOME/bin:/u01/orahome/ bin
exportORACLE_BASE=/u01/orahome
export ORACLE_HOME=/u01/orahome
4.安装后自启动脚本
以root身份进入,编写以下脚本:
#!/bin/bash
ORA_HOME=/u01/app/oracle/oracle/product/10.2.0/
status() {
pid=`ps -ef | grep ora_pmon | grep -v grep | awk '{print $8}'`
if [ "X$pid" = "X" ]
then
echo "oracle10g is not running."
exit 1
else
echo "oracle10g is running."
exit 0
fi
}
case "$1" in
start)
#startup the listener and instance
echo -n "oracle begin to startup: "
su - oracle -c "lsnrctl start"
su - oracle -c dbstart
echo "oracle10g started"
su - oracle $ORA_HOME/bin/emctl start dbconsole
echo "oracle10g em started"
;;
stop)
# stop listener, apache and database
echo -n "oracle begin to shutdown:"
su - oracle -c "lsnrctl stop"
su - oracle -c dbshut
echo "oracle10g shutdowned"
su - oracle $ORA_HOME/bin/emctl stop dbconsole
echo "oracle10g stop started"
;;
reload|restart)
$0 stop
$0 start
;;
'status')
status
;;
*)
echo "Usage: ora10g [start|stop|reload|restart]"
exit 1
esac
exit 0
#存为ora10g.sh后,放在/etc/rc.d/init.d/目录 然后chmod a+x ora10g.sh
#在/etc/rc.d/rc.local中加入如下:
/etc/rc.d/init.d/ora10g.sh start
#保存后,reboot后,应该可以看到oracle 监听器,实例,em已经启动。(linux启动后可能要稍等,em才能访问,em启动比较慢,我当初reboot后访问em,结果不能访问,以为脚本有问题,狂Google,未果。reboot n次后无意发现 em启动慢,需要稍等才能访问,汗..............)
另外一个可能遇到的问题是linux防火墙端口没有开启导致内网其他电脑无法访问em或者链接数据库需要关闭防火墙或者添加端口设置
#需reboot
#关闭防火墙
chkconfig iptables off
#开启防火墙
chkconfig iptables on
#或者修改/etc/sysconfig/iptables 文件,根据/$ORACLE_HOME/install/portlist.ini 添加对应端口,比如1158端口:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1158 -j ACCEPT