当前位置: 首页 > article >正文

ORACLE 19.8版本数据库环境EXPDP导数据的报错处理

近期用户在做EXPDP导出时,报错异常termination终止;EXPDP本身是简单的功能并且这个环境也是经常做导出的,到底是什么原因导致了这个问题呢?

导出脚本报错:

分析导出日志,当时系统资源充足但是进程启动失败,直觉是遇到了BUG;

在MOS上检查,可以发现这样一个文档:Data Pump Export Fails to Start, Raising 'ORA-31648: Timeout before master process DM00 finished initialization'Error (Doc ID 2677216.1),各项报错基本匹配;

原因是SELECT COUNT(*) FROM V$SQL_MONITOR; 里面的SQL数量很多,实际查看确实这样,但是RAC环境因为业务分布情况,导致一个节点多一个少.

后续提议在少的节点上做了导出,可以正常完成导出。

文档里面提供的解决办法:

报错现象:

APPLIES TO:
Oracle Database - Enterprise Edition - Version 12.2.0.1 and later
Information in this document applies to any platform.
SYMPTOMS
Data Pump export job fails to start, raising errors similar to the following:
ORA-31626: job does not exist
ORA-31637: cannot create job SYS_EXPORT_TABLE_02 for user OPER01
ORA-06512: at "SYS.KUPV$FT", line 1121
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT", line 1726
ORA-39062: error creating master process DM00
ORA-31648: Timeout before master process DM00 finished initialization.
ORA-06512: at "SYS.KUPP$PROC", line 57
ORA-06512: at "SYS.KUPP$PROC", line 275
ORA-06512: at "SYS.KUPV$FT", line 1668
ORA-06512: at "SYS.KUPV$FT", line 1082
CHANGES

原因:

Trace of the startup indicates Data Pump is waiting on the following query:
SELECT COUNT(1) FROM SYS.V$SQL_MONITOR WHERE SID = :B1 AND STATUS IN ('QUEUED', 'EXECUTING')
This was taking more than two minutes to come back with results as part of the Data Pump master process initialization.
If the Data Pump master process takes more than two minutes to initialize, it will abort.
Found the view for V$SQL_MONITOR contained over 80,000 rows. 
Due to the number of rows, the problem query was taking too long to return results and the master process initialization was aborted

解决办法:

If a count of rows in V$SQL_MONITOR returns a high number, and the customer / end user does not make use of SQL
monitoring, then it can be safely disabled.
To disable sql monitoring:
alter system set "_sqlmon_threshold"=0 scope=both sid='*';
To re-enable sql monitoring:
alter system set "_sqlmon_threshold"=5 scope=both sid='*';
A database restart would then be required to clear out the rows from V$SQL_MONITOR.
Alternatively, gathering fixed object statistics when there are a large number of rows in V$SQL_MONITOR may help. Rows
accumulate in V$SQL_MONITOR over time, best to gather stats when there are many rows in this view.
To gather the statistics:
$ sqlplus / as sysdba
EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS ();
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS ();
NOTE1: This same problem may exist for Data Pump import as well, but this is not verified.
NOTE2: The following SQL Monitor bugs may also help, but they were not tested in this case:
Bug 28789533 - Slow V$SQL_Monitor /SQL_Monitor (Doc ID 28789533.8)
Bug 28204104 - Slow Output from V$SQL_Monitor (Doc ID 28204104.8)


http://www.kler.cn/a/597614.html

相关文章:

  • 基于Java(springMVC+hibernate)+Mysql实现(Web)客栈服务系统
  • 自然语言处理|BART:文本摘要的智能工具
  • 防逆流检测仪表在分布式光伏发电系统中的应用
  • Linux 告警:使用企业微信发送通知
  • 利用ffmpeg库实现音频AAC编解码
  • PyTorch 深度学习实战(18):分布式强化学习与 IMPALA 算法
  • 音视频框架详解
  • 蓝桥杯每日一题----海底高铁
  • 【Linux线程】——线程概念线程接口
  • 工具层handle_excel
  • 鱼书--学习2
  • MySQL 中,分库分表机制和分表分库策略
  • Ubuntu搭建Battery Historian环境
  • (八)Reactor响应式框架之核心特性
  • 5、MySQL为什么使用 B+树 来作索引【高频】
  • 矩阵可相似对角化
  • G-Star 校园开发者计划·黑科大|开源第一课之 Git 入门
  • 强化学习中循环神经网络在序列决策中的应用研究
  • 2025新版懒人精灵零基础安装调试+lua基础+UI设计交互+常用方法封装+项目实战+项目打包安装板块-视频教程(初学者必修课)
  • 基于javaweb的SpringBoot医院管理系统设计与实现(源码+文档+部署讲解)