oracle常见问题搜集 博客分类: __1.★oracle 数据库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
推荐阅读
-
oracle常见问题搜集 博客分类: __1.★oracle 数据库oracle问题
-
python selenium抓取页面截图+连接oracle数据库 博客分类: python
-
ORACLE数据泵 expdp/impdp使用详解(转) 博客分类: 数据库数据库 oracle 开发
-
python selenium抓取页面截图+连接oracle数据库 博客分类: python
-
oracle存储过程编译卡死(资源dll锁) 博客分类: 数据库数据库 oracle 开发 数据库资源锁锁定死锁oracle卡死
-
ORACLE数据泵 expdp/impdp使用详解(转) 博客分类: 数据库数据库 oracle 开发
-
ORACLE解码/编码URL数据 博客分类: 数据库
-
ORACLE/MSSQL随机取一条记录方法 博客分类: 数据库 Oracle
-
Oracle自带连接池使用(转载收录) 博客分类: 数据库ORACLEJava相关编程相关 oracle连接池
-
oracle 函数中游标及递归的应用 博客分类: 编程相关SQL数据库 oracle函数递归游标