时间:2021-07-01 10:21:17 帮助过:27人阅读
1、找不到命令,无论是lsnrctl 还是sqlplus,都提示:未找到命令。原因是环境变量没有设置,打开/etc/profile文件,加入ORACLE_HOME这个环境变量。并将相关命令bin放到PATH后面。下面是profile文件部分内容: export ORACLE_HOSTNAME=localhostexport JAVA_H
1、找不到命令,无论是lsnrctl 还是sqlplus,都提示:未找到命令。原因是环境变量没有设置,打开/etc/profile文件,加入ORACLE_HOME这个环境变量。并将相关命令bin放到PATH后面。下面是profile文件部分内容:
上述操作应该有root权限才行,之后执行 source /etc/profile ,使该文件生效。注意回到oracle用户(su oracle)后,还要执行一次 source /etc/profile,才可以生效,可以通过执行 echo $PATH 来查看相关命令是否添加成功。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
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 正式版
输入以下信息:
数据库 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。
4、Oracle 11g这个版本中已经抛弃了 isqlplus 这一功能,所以从网页无法进入。但是11g带有一个图形化工具,SQLDeveloper,在目录/opt/oracle/app/oracle/product/11.2.0/dbhome_1/sqldeveloper 中,执行sqldeveloper.sh即可。但按钮均为乱码(方格格)。
5、从网页登入em后,发现按钮均显示为方格格,和sqldeveloper一样,解决方法如下:参考http://tycool.blog.51cto.com/696627/722522
EM的乱码是由java引起的,EM的按钮是由java生成的图,因此解决此问题变成了解决java的乱码问题.
oracle 11g R2使用的是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(可以在C:\windows\fonts下找到这个字体文件,)相应的权限改为oracle用户可用.
之后需要清理一下Cache,重启EM即可:
$rm $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/
cabo/images/cache/zhs/*.gif
$ emctl stop dbconsole
$ emctl start dbconsole
登陆Web页面查看,EM显示就可以正常显示中文了
如果部分按键还是方框的话可以多删除几次,直到中文正常显示为止。
我是从网上找到了simsun.ttf这个文件,所以省略了上面改名字这一步。新浪网盘下载地址:
http://ishare.iask.sina.com.cn/f/11176779.html