oracle 11g release 2在rhel 5.2(64位)中的配置及手工启动 0. 安装 创建用户oracle,并以用户oracle登录rhel系统,进行oracle的图形化安装。安装后,oracle自定启动TNS Listener和数据库服务器,开启1521和1158端口。 1521是TNS Listener端口;1158是Enterprise Manager Console HTTP 端口。 成功安装后,可远程通过浏览器访问oracle:https://ip:1158/em。 1. 安装后配置 (1)oracle安装目录定义为:$ORACLE_HOME,例如:export $ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1。 在$ORACLE_HOME目录下,有脚本文件root.sh,需要以root用户运行。root.sh会在/etc下创建文件oratab,并在oracle用户的.bash_profile文件中配置相关环境变量。root.sh运行如下: ./root.sh Running Oracle 11g root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /home/oracle/11g Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root.sh script. Now product-specific root actions will be performed. Finished product-specific root actions.
(2)修改oracle用户的.bash_profile将其中的环境变量设置与安装的oracle目录一致,如下:
export ORACLE_BASE=/home/oracle/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export PATH=.:$PATH:$ORACLE_HOME/bin:$HOME/bin:/usr/bin:/usr/local/bin export ORACLE_HOME_LISTNER=$ORACLE_HOME export ORACLE_UNQNAME=orcl export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
(3)修改oracle数据库启动关闭脚本 在$ORACLE_HOME/bin目录下,是oracle的管理脚本,其中的dbstart和dbshut分布式启动和关闭oracle数据库的脚本,需要将其中定义环境变量ORACLE_LISTNER_HOME 修改为指向$ORACLE_HOME。 # Set path if path not set (if called from /etc/rc) SAVE_PATH=/bin:/usr/bin:/etc:${PATH} ; export PATH SAVE_LLP=$LD_LIBRARY_PATH # First argument is used to bring up Oracle Net Listener ORACLE_HOME_LISTNER=$1 // 修改为:ORACLE_HOME_LISTNER=$ORACLE_HOME if [ ! $ORACLE_HOME_LISTNER ] ; then echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener" echo "Usage: $0 ORACLE_HOME" else LOG=$ORACLE_HOME_LISTNER/listener.log
(4)启动数据库 启动oracle数据库,以oracle用户执行如下命令: source .bash_profile dbstart // 启动oracle数据库 lsnrctl start // 启动TNS Listener,侦听1521端口 emctl start dbconsole // 启动企业管理器,侦听1158端口 emctl start dbconsole // 启动数据库 关闭oracle数据库,依次执行如下命令: emctl stop dbconsole // 关闭企业管理器 lsnrctl stop // 关闭TNS Listener dbshut // 关闭oracle数据库
2. 问题 (1)ORACLE_HOME_LISTNER没有设置 检查oracle用户根目录下的.bash_profile中是否定义oracle相关的环境变量如ORACLE_BASE,ORACLE_HOME,ORACLE_HOME_LISTNER等。并检查这些环境变量是否指向正确的oracle安装目录。
(2)ORACLE_UNQNAME没有设置 需要在oracle用户根目录下的.bash_profile中设置,将其设置为oracle实例名。
(3)启动TNS Listener监听程序lsnrctl时,出现如下错误: TNS-12537: TNS:connection closed TNS-12560: TNS:protocol adapter error TNS-00507: Connection closed Linux Error: 29: Illegal seek TNS Listener的配置文件是$ORACLE_HOME/network/admin/listener.ora,其内容如下: # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) // 将localhost.localdomain改为127.0.0.1 ) ) ADR_BASE_LISTENER = /home/oracle/app/oracle 网上说,修改/etc/hosts,在127.0.0.1 localhost.localdomain后面添加localhost。但是,TNS Listener仍然不能启动。
(4)若出现如下错误: TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS TNS-00515: Message 515 not found; No message file for product=network, facility=TNS Linux Error: 2: No such file or directory 出现这种情况,一般是由于oracle的环境变量配置不正确引起的,或者说在切换到oracle用户时,没有把环境变量也切换过来,如用su oracle而不是用 su -l oracle命令切换。必须用参数-l来切换用户。
(5)EM乱码问题 oracle 11g使用的是jdk1.5,jdk1.5以后有了一个简便方法来解决这个问题,只需在$JAVA_HOME/jre/lib/fonts/下建一个fallback目录,把你想在java中使用的字体复制到这个目录中即可,在oracle用户下: $ mkdir $ORACLE_HOME/jdk/jre/lib/fonts/fallback 把windows下的字体文件simsun.ttc复制到$ORACLE_HOME/jdk/jre/lib/fonts/fallback目录下并改名simsun.ttf(注意ms的simsun字体是有版权的,所以商用换其他字体),相应的权限改为oracle用户可用. 之后需要清理一下Cache,重启EM即可: $ rm $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif 然后重启em, $ emctl stop dbconsole $ emctl start dbconsole 登录Web页面查看,EM显示就可以正常显示中文了。 3. 说明 在切换用户时,使用如下命令: su -l root // 需要使用-l参数,能使该用户的环境变量生效 4. oracle数据库服务自动启动及关闭 Oracle 11g安装完成后,提供dbstart,dbshut两个服务控制脚本,用来控制oracle的启动与关闭。dbstart文件受/etc/oratab控制,dbstart文件只能启动 /etc/oratab文件中第三列为Y的SID。/etc/oratab的内容如下: orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:N 需要将最后的N修改为Y,如下: orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:Y 才能自动启动。 在/etc/init.d中建立oracle启动脚本,如oracle,其内容如下: ===================================================================================================================================================== #!/bin/bash # chkconfig: 2345 99 10 # description: Oracle 11g AutoRun Services # /etc/init.d/oracle # # Run-level Startup script for the Oracle Instance, Listener, and Web Interface export ORACLE_BASE=/home/oracle/ export ORACLE_HOME=$ORACLE_BASE/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export ORACLE_UNQNAME=orcl export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export ORACLE_OWNER=oracle # if the executables do not exist -- display error if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] then echo "Oracle startup: cannot start" exit 1 fi # depending on parameter -- startup, shutdown, restart # of the instance and listener or usage display case "$1" in start) # Oracle listener and instance startup su $ORACLE_OWNER -lc '$ORACLE_HOME/bin/dbstart' su $ORACLE_OWNER -lc '$ORACLE_HOME/bin/emctl start dbconsole' echo "Oracle Started Succesful! OK." ;; stop) # Oracle listener and instance shutdown su $ORACLE_OWNER -lc '$ORACLE_HOME/bin/dbshut' su $ORACLE_OWNER -lc '$ORACLE_HOME/bin/emctl stop dbconsole' echo "Oracle Stopped Succesful! OK." ;; reload|restart) $0 stop $0 start ;; *) echo $"Usage: `basename $0` {start|stop|reload|reload}" exit 1 esac exit 0 ===================================================================================================================================================== 注意: · 修改oracle安装目录的环境变量ORACLE_BASE指向实际的oracle安装目录。 · 保存该文件后,执行如下命令: chmod 775 oracle chown oracle oracle chkconfig --add oracle chkconfig --level 2345 oracle on chkconfig --list oracle · 但是1158,即oracle企业管理器(oem)不能启动。