[oracle@redz-server ~ orainstall]# ./runInstaller
等候图形界面安装
ps :
如果用root用户登录后,在终端中su oracle 后,安装,可能存在display错误
有许多解决办法,但是不一定成功,所以还是建议直接用oracle用户登录系统
display检测不通过的解决
方法1: [root@redz-server ~]# xhost local:oracle;
方法2: [root@redz-server ~]# xhost +;
方法2: [root@redz-server ~]# xhost +192.168.1.8;
[ root@redz-server ~]# su oracle
[oracle@redz-server ~]$ export DISPLAY=192.168.1.8:0.0
以上方法可能都不成功
11.安装完成后, 配置监听器监听数据库实例名称(oracle监听的动态注册与静态注册不是很清楚,高版本数据库,可能不需要手动配置监听便能访问了,因此,此步骤可以暂时省略)
./netmgr
4.设置oralce 随机启动
[root@redz-server ~]# vi /etc/oratab
redzdb:/opt/oracle/ora11g/product/11.2.2/dbhome:N
改为
redzdb:/opt/oracle/ora11g/product/11.2.2/dbhome:Y
12.以系统用户oracle编辑$ORACLE_HOME/bin/dbstart
#注释掉ORACLE_HOME_LISTNER=$1
添加ORACLE_HOME_LISTNER=$ORACLE_HOME
ps:因为在这个脚本自动生成的时候,也就是ORACLE被安装进RHEL的时候,这个脚本并不知道你的
◆ORACLE_HOME_LISTNER是什么,现在要将这个参数显示的写明,这样就不会在执行这个脚本的时候报
◆ORACLE_HOME_LISTNER没有被指定的错误了。注意:dbstart和dbshut脚本在10g之后就已经将监听器的启动与关闭合并进数
据库实例的启动与关闭脚本里面了。而不再是单独分开的了
13 以系统用户oracle编辑$ORACLE_HOME/bin/dbshut
#注释掉ORACLE_HOME_LISTNER=$1
添加ORACLE_HOME_LISTNER=$ORACLE_HOME
14 编写随机启动脚本,注册为系统服务
su root
vi /etc/init.d/redzora
#!/bin/bash
#chkconfig:2345 99 10
#description:StartupScriptfororacleDatabases
#/etc/rc.d/init.d/oradbstart
export ORACLE_BASE=/opt/oracle/ora11g
export ORACLE_HOME=/opt/oracle/ora11g/product/11.2.2/dbhome
export ORACLE_SID=redzdb
export PATH=$PATH:$ORACLE_HOME/bin
start)
echo "-----startuporacle-----" >> /var/log/oracleauto.log
su oracle -c $ORACLE_HOME/bin/dbstart
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/subsys/redzora
echo "-----startuporaclesuccessful-----" >> /var/log/oracleauto.log
echo "OK"
;;
stop)
echo "-----shutdwnoracle-----" >> /var/log/oracleauto.log
su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su oracle -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/subsys/redzora
echo "-----shutdownoraclesuccessful-----" >> /var/log/oracleauto.log
echo "OK"
;;
*)
echo "Usage:'basename$0'start|stop"
exit1
esac
按ALT+z
输入:wq
保存退出
执行chmod -Rf 777 /var/lock/subs/
chmod -Rf 777 /var/log
使用户能够读写启动文件及日志
ps:
(参考文章引用,对作者表示感谢)
现在,我要对这段脚本做一个关键解释:
第一:#chkconfig:23459910虽是一行注释,但是确实关键的必不可少的一行,除非你不用chkconfig命令来自动生成符号连接文件,而是完全采用手工创建。否则没有这一行,执行chkconfig系统将会报出oracle11没有chkconfig服务权限的错误。
第二:suoracle-c$ORACLE_HOME/bin/dbstart和touch/var/lock/subsys/oracle11这两行的作用是首先执行dbstart脚本启动oracle,然后在服务活动列表目录中创建一个与oracle11这个服
务同名的一个文件,表示这个服务是活动的,也就是被启动的。
而suoracle-c$ORACLE_HOME/bin/dbshut和rm-f/var/lock/subsys/oracle11这两行的作用是首先执行dbshut急哦脚本关闭oracle,然后从服务活动列表目录中删除那个与oracle11同名的那
个文件,表示这个服务不是活动的,也就是已经被关闭。
那么为什么要做touch/var/lock/subsys/oracle11和rm-f/var/lock/subsys/oracle11这两步呢?原因是跟LINUX系统的机制有关的:LINUX的判别一个服务是否被启动的依据是在/var/lock/subsys/目录下是否与服同名的文件,若有则表示这个服务已经被启动了,在系统关闭的时候,LINUX会把这里面列出的服务全部关闭,并删掉与服务同名的文件。若一个服务被启动了,但却在这个目录里没有那个服务的同名文件,则不会关闭那个服务。网上的文章均将这个地方设置错了,所以会发现,ORACLE可以随系统启动了,但却没有随系统关闭。我也是分析了/etc/rc.d/rc.local后才发现这个原理的。经过试验,果然如此。再分析 mysql的启动与关闭脚本也是这样做的,最终恍然大悟
原来如此。这个地方请大家注意了。
15将编写的启动脚本注册为 系统服务
1)给脚本赋予可以被执行的权限
su root
chown ora