`
Drakedog
  • 浏览: 48694 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

orcl-12518:监听程序无法分发客户机连接

阅读更多
程序使用数据链路反复从源库里面查询数据,插入到目标库里面,调用另一个exe文件进行执行。

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

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



查询网上错误ORA-12518: TNS:监听程序无法分发客户机连接,可能是如下的原因:客户连接到监听器后,监听器把客户重定向到调度程序端口(很可能不是1521端口),由于操作系统问题,这些连接会被拒绝。如果是java连接oracle的问题,连接出现ora-12518的问题,查询了服务器仍然是dedicated的连接方式,说是在oracle的监听器LISTENER.ORA头加上

direct_handoff_ttc_LISTENER=off这么一句话就OK了



DIRECT_HANDOFF_TTC_LISTENER = OFF命令回收关闭掉长久不用连接


设置监听的跟踪文件

TRACE_LEVEL_LISTENER = USER

TRACE_DIRECTORY_LISTENER = C:\oracle\product\10.2.0\db_1\NETWORK\trace

TRACE_FILE_LISTENER = LISTENER1.trc



同时查看目标库的alert文件,发现出现大量600 7445:

Fri Sep 10 21:16:17 2010

Errors in file c:\oracle\product\10.2.0\admin\cnpclz1\udump\cnpclz1_ora_3116.trc:

ORA-00600:内部错误代码,参数: [kksfbc-reparse-infinite-loop], [0x74E7664], [], [], [], [], [], []



Fri Sep 10 22:29:03 2010

Thread 1 advanced to log sequence 178

Current log# 3 seq# 178 mem# 0: C:\ORACLE\PRODUCT\10.2.0\ORADATA\CNPCLZ1\REDO03.LOG

Sat Sep 11 01:00:38 2010

Errors in file c:\oracle\product\10.2.0\admin\cnpclz1\udump\cnpclz1_ora_1576.trc:

ORA-00600:内部错误代码,参数: [kksfbc-reparse-infinite-loop], [0x9489F38], [], [], [], [], [], []



Sat Sep 11 01:06:16 2010

Errors in file c:\oracle\product\10.2.0\admin\cnpclz1\udump\cnpclz1_ora_3436.trc:

ORA-07445:出现异常错误:核心转储[ACCESS_VIOLATION] [_kksfbc+12153] [PC:0x832B49] [ADDR:0x28] [UNABLE_TO_READ] []



还有大量类似信息:

Wed Sep 15 11:56:45 2010
Thread 1 cannot allocate new log, sequence 221
Checkpoint not complete



检查监听,确实不再出现12518的错误了



第二步:同时调整应用,修改程序使用绑定变量,同时减少提交的次数:

在pb里面使用绑定变量的方式:

PREPARE SQLSA FROM " insert into t1(rq,xtlb,idlb,id,xh,lxml) VALUES (?,?,?,?,?,?)" using sqlca;

EXECUTE SQLSA   using:ist_owc.czrq,:gs_xtlb,:gs_idlb,:ls_code,:li_xh,:ls_data;



在java程序里面要用prepareStatement进行变量绑定



(但是修改后的程序在对2个表抽取时候出现cpu 100%的情况,后来只能又改回原来的方式,本想跟踪下没继续)       

第三步、处理Checkpoint not complete问题

Thread 1 cannot allocate new log, sequence 221
Checkpoint not complete

checkpoint not complete, cannot allocate new log(2007-07-27 14:42:13)



当oracle重用一个日志文件的时候,该日志文件所保护的处于Buffer cache中的脏块(dirty buffer),必须写回磁盘,且必须纪录checkpoint的位置在控制文件和数据文件头。这个过程叫做检查点checkpoint.

发生checkpoint not complete, cannot allocate new log,表示要重用的日志文件的检查点还没有完成,被日志文件保护的脏块还没有完全被写回磁盘。必须等待该日志文件的checkpoint完成,才可以重新使用该日志文件。

      V$LOG中STATUS为Active的,表示日志文件checkpoint未完成,Inactive表示checkpoint完成,current表示为当前LGWR写的日志文件。在实例恢复的时候,oracle需要使用到处于Active和Current状态的日志文件。

当因为检查点没有完成而不能重用日志文件的时候,从v$session_wait中可以看到很多session等待log file switch (checkpoint incomplete)事件,系统基本处于hang的状态。

查询了日志文件,都是1兆的大小,3个日志组:


增加日志组然后增大日志文件:
alter database add logfile group 4 size 25m;

alter database add logfile group 5 size 25m;



alter system switch logfile;

alter database drop logfile group 1;

alter database drop logfile group 2;

alter database drop logfile group 3;

alter database add logfile thread 1 group 1 size 25m;



alter database add logfile group 1 ('d:\oracle\oradata\orcllz\redo01.log') size 25m reuse;

alter database add logfile group 2 ('d:\oracle\oradata\orcllz\redo02.log') size 25m reuse;

alter database add logfile group 3 ('d:\oracle\oradata\orcllz\redo03.log') size 25m reuse;

alter database add logfile group 4 ('d:\oracle\oradata\orcllz\redo04.log') size 25m reuse;

alter database add logfile group 5 ('d:\oracle\oradata\orcllz\redo05.log') size 25m reuse;

四、查看内存的设置,感觉太大,怀疑应用耗尽了内存才会出现ora-7445 ora-600的错误,故缩小内存的应用reparse-infinite-loop:

Data_buffer 1g   缩为 800m

Sga       350m     缩为  300m



五、查询网上,10g有个bug,需要在10.2.0.4版本fixed

内存泄露显示遇到Bug 6494146了,下载了p6810189_10204_Win32.zip这个包

分享到:
评论

相关推荐

    ORA-12514TNS监听程序当前无法识别连接描述符中请求服务的解决方法[借鉴].pdf

    ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务的解决方法 Oracle 是一款功能强大且广泛应用的关系数据库管理系统,它提供了强大的数据存储和管理功能。但是,在使用 Oracle 时,用户经常会遇到各种错误...

    安装/升级Oracle遇到ORA-12514问题

    ORA-12514:监听程序当前无法识别链接描述符中请求的服务,简单的来说就是Oracle数据库的监听器配置有问题。 解决方案 打开cmd命令,输入tnsping orcl ,正常情况下是这样显示的: 下面会显示监听器配置文件的路径及...

    监听程序当前无法识别连接描述符中请求的服务

    Oracle监听程序无法识别连接描述符中请求的服务解决方案 Oracle监听程序是 Oracle数据库管理系统中的一种重要组件,负责监听和处理来自客户端的连接请求。但是,在某些情况下,监听程序可能无法识别连接描述符中...

    Oracle DBLINK查询时报 ORA-02085: 数据库链接XXX与XXX相连结

    NULL 博文链接:https://springlin.iteye.com/blog/1520668

    ORA-00031:标记要终止的会话

    `orakill`命令是Oracle提供的一个可执行程序,通常位于`$ORACLE_HOME/bin`目录下。 此外,如果需要查询进程状态为"KILLED"的会话,可以使用以下SQL语句: ```sql SELECT a.spid, b.sid, b.serial#, b.username ...

    oracle 11g一键安装

    --oraclesid, -s : oracle_sid 选填 默认 orcl --installfile, -f : 安装文件(绝对路径) 必填 --installdir, -d : 安装文件存放目录(绝对路径)选填 默认 /oracledata --installlog, -l : 安装日志(绝对路径...

    kettle连接oracle12C--报错ORA-28040 没有匹配的验证协议.rar

    2. **TNS设置**:检查`tnsnames.ora`文件,确保数据库服务名(Service Name)和连接字符串正确无误,同时确认TNS监听器配置正确。 3. **验证协议**:Oracle 12c可能要求更高级的认证方式,如AES256加密。检查数据库...

    解决ORA-12170:TNS connect timeout occurred问题

    第一反应是监听没开: 1. 测试了一下, 连接超时没用ping 通 C:\Users\Administrator>tnsping brorcl TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 – Production on 15-6月 -2015 09:45:43 Copyright ...

    ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 解决方法.txt

    ### ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 解决方法 #### 错误概述 ORA-12514 是一个常见的 Oracle 数据库错误,当客户端尝试连接到数据库服务器时,可能会遇到这个问题。此错误通常发生在 ...

    Oracle导dmp出现文件ORA-12154: TNS: 无法解析指定的连接标识符问题的解决方案

    在使用Oracle数据库进行数据导入导出操作时,常常会遇到ORA-12154错误,即TNS:无法解析指定的连接标识符。这个问题主要由两个原因造成:一是Oracle服务器未安装正确,二是TNS配置文件未正确设置。以下是针对这两种...

    ORACLE 11G导入到10G的命令

    expdp userid='sys/1@orcl as sysdba' schemas=ncadmin directory=DATA_PUMP_DIR dumpfile=D:\nc56mgsdn.dmp logfile=D:\ncadmin.log version=10.2.0.1.0 ``` - **userid**: 这里指定了以`sys`用户身份登录,密码为...

    Oracle 如何解决 ORA-01187:无法从文件中读取

    "Oracle 解决 ORA-01187:无法从文件中读取" Oracle 是一个功能强大的关系数据库管理系统,但是在实际应用中,我们可能会遇到各种错误信息,例如 ORA-01187:无法从文件中读取。该错误信息通常是由于临时文件无法被...

    oracle 经典

    - 示例: `conn scott/tiger@orcl as sysdba` 2. **断开连接命令** `disc[onnect]`: - 作用: 断开当前与数据库的连接。 - 示例: `disconnect` 3. **修改密码命令** `psssw[ord]`: - 作用: 修改用户的密码。如果...

    oracle中用户连接问题.docx

    1. **日志文件**:检查Oracle监听器日志(例如 `$ORACLE_HOME/network/log/listener_orarac1.log`),在其中可能找到连接的IP信息。 2. **触发器**:创建一个登录触发器来记录IP地址。下面是一个示例: ```sql ...

    ORA-12737 错误所需的 instantclient_19_3.zip(包含 oci + sqlplus)

    为解决 navicat连接oracle报错:ORA-12737 Instant Client Light:unsupported server character set ZHS16GBK 错误,而准备的文件

    除非启用了介质恢复, 否则不允许立即脱机解决方法

    - **影响**: 导致数据库无法正常启动。 **ORA-01145 错误** - **定义**: 在尝试将某个数据文件置为脱机状态时出现该错误。 - **原因**: 如果数据库没有启用介质恢复功能,则不允许用户立即将数据文件置为脱机状态。...

    Oracle数据库学习日记

    **1.1.1 Connect/Disconnect 数据库连接命令** - **Connect**: 使用 `connect` 命令可以连接到Oracle数据库。语法通常为 `connect username/password@database_name;` - 示例: `connect scott/tiger@orcl;` - **...

    各种数据库使用JDBC连接的方式

    在这些示例中,`<主机>`是数据库服务器的IP地址或主机名,`<端口>`是数据库监听的端口号,`<数据库名>`是你要连接的数据库名称,`<SID>`是Oracle特有的服务标识符,而`<用户>`和`<密码>`则是登录数据库的凭证。...

Global site tag (gtag.js) - Google Analytics