ubuntu 12.04(amd64)安装完oracle 11gr2后各种问题解决方法
上一篇介绍了怎么在ubuntu上面安装oracle数据库(见 ),整个安装过程还算顺利,但有些步骤没有执行成功,或者直接选择啦忽略,这可能导致安装完之后,不能正常使用,出现很多小问题。下面一一介绍。
1、找不到命令,无论是lsnrctl 还是sqlplus,都提示:未找到命令。原因是环境变量没有设置,打开/etc/profile文件,加入oracle_home这个环境变量。并将相关命令bin放到path后面。下面是profile文件部分内容:
export oracle_hostname=localhost
export java_home=/opt/jdk1.6.0_43
export jre_home=/opt/jdk1.6.0_43/jre
export oracle_home=/opt/oracle/app/oracle/product/11.2.0/dbhome_1
export path=$path:$java_home/bin:$jre_home/bin:$oracle_home/bin
export classpath=.:$classpath:$java_home/lib/tools.jar:$java_home%/lib/dt.jar:$java_home/lib:$jre_home/lib
上述操作应该有root权限才行,之后执行 source /etc/profile ,使该文件生效。注意回到oracle用户(su oracle)后,还要执行一次 source /etc/profile,才可以生效,可以通过执行 echo $path 来查看相关命令是否添加成功。
2、经过步骤1之后,执行 lsnrctl start 启动监听服务,然后 sqlplus / as sysdba 出现,,
error:
ora-12162: tns:net service name is incorrectly specified
错误原因不详,但是解决方法是在终端执行 export oracle_sid=orcl (或者将orcl固定在环境变量中,步骤同1),从解决方法也可以猜出问题所在了吧。
后出现
error:
ora-12514: tns:listener does not currently know of service requested in connect
descriptor
解决方法:
修改$oracle_home\network\admin\listener.ora文件
加上
sid_list_listener =
(sid_list =
(sid_desc =
(sid_name = 你的数据库名称)
(oracle_home = d:\oracle\product\10.1.0\db_1)
)
)
上面sid_name=orcl,然后重启lisener服务,就ok了。
之后顺利进入sqlplus环境,通过startup命令启动数据库。
3、无法通过网页进入em,相关服务未启动。在终端执行 emctl start dbconsole 后,出现
oc4j configuration issue. /opt/oracle/app/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/oc4j_dbconsole_wwr-thinkpad-edge_orcl not found.
但是这个文件夹确实存在啊!可见提示的错误信息未必是问题的真正原因。接下来
emca -config dbcontrol db -repos recreate 出现如下信息:
oracle@wwr-thinkpad-edge:~$ emca -config dbcontrol db -repos recreate
emca 开始于 2013-6-14 20:59:58
em configuration assistant, 11.2.0.0.2 正式版
版权所有 (c) 2003, 2005, oracle。保留所有权利。
输入以下信息:
数据库 sid: orcl
监听程序端口号: 1521
监听程序 oracle_home [ /opt/oracle/app/oracle/product/11.2.0/dbhome_1 ]: /bin/lsnrctl
sys 用户的口令:
dbsnmp 用户的口令:
sysman 用户的口令:
通知的电子邮件地址 (可选):
通知的发件 (smtp) 服务器 (可选):
-----------------------------------------------------------------
已指定以下设置
数据库 oracle_home ................ /opt/oracle/app/oracle/product/11.2.0/dbhome_1
本地主机名 ................ wwr-thinkpad-edge
监听程序 oracle_home ................ /bin/lsnrctl
监听程序端口号 ................ 1521
数据库 sid ................ orcl
通知的电子邮件地址 ...............
通知的发件 (smtp) 服务器 ...............
-----------------------------------------------------------------
是否继续? [是(y)/否(n)]: y
2013-6-14 21:01:53 oracle.sysman.emcp.emconfig perform
信息: 正在将此操作记录到 /opt/oracle/app/oracle/cfgtoollogs/emca/orcl/emca_2013_06_14_20_59_58.log。
2013-6-14 21:01:54 oracle.sysman.emcp.emconfig perform
严重: 监听程序未启动或数据库服务未注册到该监听程序。启动该监听程序并注册数据库服务, 然后重新运行 em configuration assistant。
有关详细资料, 请参阅 /opt/oracle/app/oracle/cfgtoollogs/emca/orcl/emca_2013_06_14_20_59_58.log 中的日志文件。
无法完成配置。 有关详细资料, 请参阅 /opt/oracle/app/oracle/cfgtoollogs/emca/orcl/emca_2013_06_14_20_59_58.log 中的日志文件。
接着百度“严重: 监听程序未启动或数据库服务未注册到该监听程序。启动该监听程序并注册数据库服务, 然后重新运行 em configuration assistant。”,找到如下解决方法
在终端执行,export oracle_hostname=localhost ,即设置oracle_hsotname这个环境变量的值为localhost,再次启动em相关服务(emctl start dbconsole),成功从网页进入em。