首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

oracle常见有关问题搜集

2013-07-08 
oracle常见问题搜集1.?? OracleDBConsoleorcl无法启动错误代码2:解决:在命令行下输入emctl ?start dbconso

oracle常见问题搜集

1.?? OracleDBConsoleorcl无法启动

错误代码2:

解决:

在命令行下输入emctl ?start dbconsole

提示报错,ORACLE_SID没有定义

输入

? set ORACLE_SID=ORCL? (ORCL是我的实例名,也是服务名)

没有问题,接着继续输入

? emctl start dbconsole

提示

? OC4J Configuration issue.D:oracleproduct10.2.0db_1/oc4j/j2ee/OC4J_DBConsole_192.168.1.103_orcl not found.

复制一份j2ee下的OC4J_DBConsole_HOSTNAME_orcl文件夹,重命名为OC4J_DBConsole_192.168.1.103_orcl,复制一份db_1下的HOSTNAME_orcl文件夹,重命名为192.168.1.103_orcl。

最后重新启动dbconsole,服务启动成功????????

2.?? ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

? 从字面判断是监听器的错误,于是重新配置了监听器,重启监控器服务,还是不能解决问题。

??? 最后与正常的Oracle机上的listener.ora比较了一下,比对结果如下:

?

非正常Oracle配置:

SID_LIST_LISTENER =
? (SID_LIST =
??? (SID_DESC =
????? (PROGRAM = extproc)
????? (SID_NAME = PLSExtProc)
????? (ORACLE_HOME = E:\Server\oracle\product\10.2.0\db_1)
??? )
? )

?

正常Oracle配置

SID_LIST_LISTENER =
? (SID_LIST =
??? (SID_DESC =
????? (GLOBAL_DBNAME = ORCL)
????? (ORACLE_HOME = E:\Server\oracle\product\10.2.0\db_1)
????? (SID_NAME = ORCL)
??? )
??? (SID_DESC =
????? (PROGRAM = extproc)
????? (SID_NAME = PLSExtProc)
????? (ORACLE_HOME = E:\Server\oracle\product\10.2.0\db_1)
??? )
? )

?

??? 上面已经用红色字体标示出来了,同事机器上的监听器配置文件中,SID列表中没有本地数据库配置。于是将数据库添加到SID列表中,重启监听器,一切正常喽。

3.?? ORA-12560: TNS:协议适配器错误

环境变量配置

Environment(环境)〗

??? OS:WINDOWS XP

??? DB:ORACLE 10.2

〖Symptom(现象) 〗

启动sqlplus,然后登陆数据库,出现错误,具体信息如下:

C:\Documents and Settings\netshong>sqlplus

SQL*Plus: Release10.2.0.1.0 - Production on星期一7月24 13:46:02 2006

Copyright (c) 1982, 2005, Oracle. All rights reserved.

请输入用户名: sys as SYSDBA

输入口令:

ERROR:

ORA-12560: TNS:协议适配器错误

〖Cause(原因)〗

??? 这是由于环境变量ORACLE_SID没有设置或者设置错误所造成的。在启动sqlplus以前,我们在DOS窗口的命令行执行了这样的命令:set Oracle_sid=BBC。这个命令设置的SID(BBC)不存在,所以造成了ORA-12560错误。

〖Action(方法)?? 〗

n????????方法一:设置正确的ORACLE_SID,然后登录数据库。

Step01:设置ORACLE_SID

C:\> set ORACLE_SID=wm

wm是实例(instance)的名字。

Step02:登录数据库。

C:\Documents and Settings\netshong>sqlplus

SQL*Plus: Release10.2.0.1.0 - Production on Sun Nov 19 06:23:52 2006

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Enter user-name: sys as SYSDBA

Enter password:

Connected to:

Oracle Database10gEnterpriseEdition Release10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL>

成功登陆数据库。

n????????方法二:连接数据库时,使用网络服务名(Net Service Name)。

C:\Documents and Settings\netshong>sqlplus

SQL*Plus: Release10.2.0.1.0 - Production on Mon Sep 4 09:37:15 2006

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Enter user-name: sys@wm as SYSDBA

Enter password:

Connected to:

Oracle Database10gEnterpriseEdition Release10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL>

这里使用网络服务名(Net Service Name)wm连接数据库,网络服务名(Net Service Name)wm是在ORACLE网络中进行配置的。

4.?? ORA-12518 TNS:监听程序无法分发客户机连接

一、listener文件中的GLOBAL_DBNAME ,SID_NAME可能与实例名称不符,修改后,重启listener.
二、专有服务器模式下processes值设的过小。可通过以下方法解决:
??? 1.cmd
??? 2.sqlplus
??? 3.connect sys/test as sysdba
??? 4.查看会话数、processes、sessions
??? SQL> select count(*) from v$session;
???????? COUNT(*)
?
??????? ----------
?????????? 45
??? SQL> show parameter processes
??? NAME???????????????????????????????? TYPE??????? VALUE
??? db_writer_processes????????????????? integer???? 1
??? gcs_server_processes???????????????? integer???? 0
??? job_queue_processes????????????????? integer???? 10
??? log_archive_max_processes??????????? integer???? 2
??? processes??????????????????????????? integer???? 50

??? SQL> show parameter sessions
??? NAME???????????????????????????????? TYPE??????? VALUE
??? java_soft_sessionspace_limit???????? integer???? 0l
??? icense_max_sessions???????????????? integer???? 0
??? license_sessions_warning???????????? integer???? 0
??? logmnr_max_persistent_sessions?????? integer???? 1
??? sessions???????????????????????????? integer???? 60
??? shared_server_sessions?????????????? integer
??? 5.修改processes和sessions值:sessions=(1.1*process+5)
??? SQL> alter system set processes=300 scope=spfile;
?? 系统已更改。
? SQL> alter system set sessions=335 scope=spfile;
???? 系统已更改。
??? 6.重启数据库,使更改生效

三、共享模式下
??? 1.show parameters dispatchers;
??? NAME??????????????? TYPE???????????? VALUE
??? dispatchers???????? string?????????? (protocol=tcp)(service=oracle10xdb)
??? max_dispatchers????? integer?
??? 2.确定是否有足够的dispatchers
??? SQL> select? name, (busy/(busy + idle)) "dispatcher busy rate" from v$dispatcher ;??
??? NAME dispatcher busy rate
??? ---- --------------------
??? D000?????????? .000121704
??? D001?????????? .000042597
??? D002?????????? .004935402?
??? 如果超过50%,则需要考虑增加更多的dispatchers;
??? 3.改变dispathchers:
??? SQL>alter system set dispatchers = '(protocol=tcp)(dispatchers=3)(service=oracle10xdb)';
??? system altered
四、PGA内存设置太小
??? 注:该方法没试过。

作者“ERDP技术架构”

5.?? oracle ORA-01017 用户无法通过PL-SQL登录

在oracle的之前版本时,用户名密码是大小写不敏感的, 但在11g中, 数据库默认密码的大小写是敏感的,
其实很简单, 那就是去除oracle的密码大写敏感设定:alter system set sec_case_sensitive_logon=false

热点排行