ORACLE DATAPUMP导出报错故障处理ORA-31626: job does not exist ORA-31650: timeout waiting for master process response

操作系统:windows2012

数据库版本:11.2.0.1本地  dblink 连接的数据库版本是12.1.0.2(aws云)

问题:

公司的备份是通过软件进行定时的expdp备份,本地的windows oracle数据库通过db_link备份,其中通过软件备份有报错,其中单独执行expdp语句也有报错,ORA-31626: job does not exist ORA-31650: timeout waiting for master process response

截图如下:

ORACLE DATAPUMP导出报错故障处理ORA-31626: job does not exist ORA-31650: timeout waiting for master process response_第1张图片

 

 同时,公司的软件通过调度定时任务备份截图如下:(以下图是已经处理好的截图,之前的忘记截图了)

 

 

ORACLE DATAPUMP导出报错故障处理ORA-31626: job does not exist ORA-31650: timeout waiting for master process response_第2张图片

说明:

以上截图中,当时的情况是rds_pay定时任务备份失败,不光是定时任务失败,单独执行脚本也失败!

ORA-31626: job does not exist ORA-31650: timeout waiting for master process response

 

处理思路:

 由于单独在cmd窗口执行命令都报错(用了db_link),在本机使用plsql通过db_link查询没有问题

ORACLE DATAPUMP导出报错故障处理ORA-31626: job does not exist ORA-31650: timeout waiting for master process response_第3张图片

 

 

 说明通过dblink访问没有问题,即网络没有问题,dblink没有问题,以及12c的库没有问题,所以问题在本地库11G上,以下是通过support查找到的几种情况:

1.aq_tm_processes 参数

ORACLE DATAPUMP导出报错故障处理ORA-31626: job does not exist ORA-31650: timeout waiting for master process response_第4张图片

 

 

10g这个参数设置0-10,11g范围是0-40,当时本地数据库设置的是4,我设置成16,Oracle官方不建议设置成0,不能够进行监视;修改成16后,立马生效,还是同样的报错,所以,很明显不是该参数设置偏小的问题。

2.升级后的问题(这个排除,没有进行升级不一致产生的,需要重新执行catalog.sql and catproc.sql来配置后)

3.rac数据库没有设置clsuter=no (很明显不是rac数据库,排除)

4. SGA设置可能偏小

查看了support文档,有提到至少sga为1G,但是结合现实中的情况,有接近10个定时任务的窗口,每个任务1G+,那么就定时任务耗费的SGA就有10G+;

整个memory_max_target 为17G,明显偏小(10个备份定时任务),在设置本地11g数据库memory_max_target为30g(服务器内存64G,先试一试30G,最大设置成物理内存的80%),重启后,就能够正常备份,问题得到解决。

5.触发未知的bug(11.2.0.1通过DBLINK导出的12.1.0.2.0数据库数据)

 既然4解决了,那就不是BUG了。

总结:

本次出现ORA-31626: job does not exist ORA-31650: timeout waiting for master process response报错的原因是SGA过小,虽然support文档有提到至少1G,但是这个只是一个思路,并不是真的只有1G就够了,但是我也是想了很久才打算调整内存参数的;

顺便说一下如果有提示 ORA-31634: job already exists;sys_export_开头的表太多,需要清理:

SELECT owner_name, job_name, rtrim(operation) "OPERATION",

    rtrim(job_mode) "JOB_MODE", state, attached_sessions

FROM dba_datapump_jobs

 WHERE job_name NOT LIKE 'BIN$%'

 ORDER BY 1,2;

ORACLE DATAPUMP导出报错故障处理ORA-31626: job does not exist ORA-31650: timeout waiting for master process response_第5张图片

 

 其中state为not running状态的直接删除就行,executing状态的表不能够删除。删除后就可以备份了

你可能感兴趣的:(ORACLE DATAPUMP导出报错故障处理ORA-31626: job does not exist ORA-31650: timeout waiting for master process response)