问题描述
嗨,汤姆
我们有一个指向外部机构运行的数据库链接。
有时候,我们可以通过数据库链接到外部数据库来运行导入/导出流程。在其他日子里,它将经历一段时间,似乎总是在涉及SQL的步骤中出现ORA-3113错误。
我们的进程使用的SQL格式类似于以下内容。有些SQL语句显然比其他语句复杂。
"从y @ DBLink中选择x"
进程的重复重新运行将始终结束成功的执行。
我们从一端到另一端研究了这个问题,花了几周时间审查所有可用的Oracle文档,我们可以找到非常详细的文档,但仍然没有找到解决这个问题的方法。
我们现在想知道的是,这些进程是否有可能在与数据库链接设置有关的某种资源限制下运行?你知道我们如何测试这个吗?
问候
大卫
我们有一个指向外部机构运行的数据库链接。
有时候,我们可以通过数据库链接到外部数据库来运行导入/导出流程。在其他日子里,它将经历一段时间,似乎总是在涉及SQL的步骤中出现ORA-3113错误。
我们的进程使用的SQL格式类似于以下内容。有些SQL语句显然比其他语句复杂。
"从y @ DBLink中选择x"
进程的重复重新运行将始终结束成功的执行。
我们从一端到另一端研究了这个问题,花了几周时间审查所有可用的Oracle文档,我们可以找到非常详细的文档,但仍然没有找到解决这个问题的方法。
我们现在想知道的是,这些进程是否有可能在与数据库链接设置有关的某种资源限制下运行?你知道我们如何测试这个吗?
问候
大卫
专家解答
ORA-3113基本上意味着我们失去了与会议的联系。那可能是
-网络错误
-会话被明确的命令杀死
-会话被资源管理杀死
可以尝试的一些事情:
1) 密切关注您的网络
设置
DIAG_ADR_ENABLED = 否
跟踪级别客户端 = 16
TRACE_DIRECTORY_CLIENT =[directory_path_trace_file]
TRACE_FILE_CLIENT =[trace_file_name]
在您的sqlnet.ora中,查看网络跟踪文件中的内容。注意: 它们可能会 * 快速 * 变大,这对于 * 间歇性 * 故障可能会很麻烦。
2) 检查您的本地跟踪目录是否有任何转储信息
3) 根据您与外部机构的沟通水平,您可以通过以下方式跟踪登录 (即通过db链接) 的会话:
然后检查远程跟踪文件,这是您可能可以通过它查看远程方是否正在杀死您的会话的方式。但是,当然... 他们可能不希望您看到/知道 :-)
-网络错误
-会话被明确的命令杀死
-会话被资源管理杀死
可以尝试的一些事情:
1) 密切关注您的网络
设置
DIAG_ADR_ENABLED = 否
跟踪级别客户端 = 16
TRACE_DIRECTORY_CLIENT =[directory_path_trace_file]
TRACE_FILE_CLIENT =[trace_file_name]
在您的sqlnet.ora中,查看网络跟踪文件中的内容。注意: 它们可能会 * 快速 * 变大,这对于 * 间歇性 * 故障可能会很麻烦。
2) 检查您的本地跟踪目录是否有任何转储信息
3) 根据您与外部机构的沟通水平,您可以通过以下方式跟踪登录 (即通过db链接) 的会话:
create or replace
trigger TRACE_ALL_LOGINS
after logon on [db_link_user_account].schema
begin
execute immediate 'alter session set tracefile_identifier = DBLINK_SESS';
execute immediate 'alter session set events = ''10046 trace name context forever, level 12''';
end;
然后检查远程跟踪文件,这是您可能可以通过它查看远程方是否正在杀死您的会话的方式。但是,当然... 他们可能不希望您看到/知道 :-)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




