【问题标题】:No more data to read from socket error using dblink - Oracle没有更多数据可以使用 dblink 从套接字错误中读取 - Oracle
【发布时间】:2015-07-02 14:52:43
【问题描述】:

即使我尝试执行以下简单查询,我也会收到此错误(没有更多数据可以从套接字读取):

SELECT 
T."ID" as user_id FROM "TEST"@DBLINK T where rownum<10

我已经在跟踪日志中查找了更多详细信息并得到了这个:

Thu Jul 02 11:23:46 2015 Archived Log entry 431583 added for thread 1 sequence 451623 ID 0x8ae0db51 dest 1: Thu Jul 02 11:30:32 2015 HS: Lost RPC connection to remote Agent... HS: ... Agent SID = (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.173)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=cf))), NCR status = -2147385341 Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x7FFF351D7F40] [PC:0x20E0101, kxsffir()+193] [flags: 0x0, count: 1] Errors in file /u01/app/oracle/diag/rdbms/bfdwbr/BFDWBR/trace/BFDWBR_ora_25533.trc (incident=1197429): ORA-07445: exception encountered: core dump [kxsffir()+193] [SIGSEGV] [ADDR:0x7FFF351D7F40] [PC:0x20E0101] [Address not mapped to object] [] ORA-28511: lost RPC connection to heterogeneous remote agent using SID=ORA-28511: lost RPC connection to heterogeneous remote agent using SID=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.173)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=cf))) ORA-02063: preceding line from CF Incident details in: /u01/app/oracle/diag/rdbms/bfdwbr/BFDWBR/incident/incdir_1197429/BFDWBR_ora_25533_i1197429.trc Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details.

有人知道如何解决这个问题吗?

谢谢!

【问题讨论】:

  • 无论何时您使用 ORA-600 或 7445,您都应该使用“ORA-600 工具”在 My Oracle Support 上查找它们。尽管在这种情况下,生成的文档“ORA-7445 [kxsfir] (Doc ID 310469.1)”似乎没有多大帮助。您可能需要使用 Oracle 创建服务请求。提及源数据库和目标数据库的确切操作系统和版本也可能会有所帮助。这些问题可能非常具体。

标签: oracle oracle11g dblink


【解决方案1】:

在我看来像是间歇性的网络连接问题。短语“丢失的 RPC 连接”是一个很好的指示。您还应该查看提到的跟踪文件。

作为测试,你可以编写一个脚本,比如

DECLARE
  V_NUMBER NUMBER(9);
BEGIN
  FOR I IN 1 .. .500 LOOP
    BEGIN
      SELECT T."ID" AS USER_ID
        INTO V_NUMBER
        FROM "TEST"@DBLINK T
       WHERE ROWNUM = 1;
      DBMS_OUTPUT.PUT_LINE('time is ' || SYSDATE || 'User id is ' ||
                           V_NUMBER);
    END LOOP;

  END;

这应该让您了解中断发生的时间或是否一致。

【讨论】:

    猜你喜欢
    • 2011-12-11
    • 2015-05-12
    • 2012-09-18
    • 2012-03-07
    • 2018-01-07
    • 2012-07-16
    • 2017-06-17
    • 2015-02-04
    相关资源
    最近更新 更多