百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

面试官:如果expdp/impdp导出很慢?怎么定位到问题在哪里?

mhr18 2024-10-18 06:43 37 浏览 0 评论

概述

在导出导入过程中,偶尔会遇到一些性能问题,可以会因主机资源,数据库版本,PSU版本,datapump本身bug等原因导致。

这里首先可根据需求判断是在哪个环节出问题,导出/导入元数据还是数据时出现性能问题;是否是导出/导入特定对象遇到性能问题?

对于这些问题,MOS上提供了如下3种诊断方法(只演示第三种):


方法一

在expdp/imdp命令中添加参数METRICS=Y TRACE=480300 (或者 480301 捕获SQL trace) 并重新运行expdp/impdp


方法二

对DataPump Master (DM) 和 Worker (DW)进程启用level 12的10046 trace

-- 版本>= 11g and < 12c 
SQL> alter system set events 'sql_trace {process : pname = dw | pname = dm} level=12'; 
-- 版本= 12c 
SQL> alter system set events 'sql_trace {process: pname = dw | process: pname = dm} level=12';
然后用参数METRICS = Y加入命令行启动expdp/impdp

方法三:(推荐)

1、查看运行的DataPump 导出进程

connect / as sysdba 
set lines 350 pages 400 numwidth 7 
col program for a38 
col username for a10 
col spid for a7 
select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') "DATE",
 s.program,
 s.sid,
 s.status,
 s.username,
 d.job_name,
 p.spid,
 s.serial#,
 p.pid
 from v$session s, v$process p, dba_datapump_sessions d
 where p.addr = s.paddr
 and s.saddr = d.saddr
 and (UPPER(s.program) LIKE '%DM0%' or UPPER(s.program) LIKE '%DW0%');

2、跟踪已经开始运行的DataPump 导出进程

--确认Data Pump Worker SID 和 SERIAL#(例如. 对于 DM 和DW 进程), 以level 12跟踪 Master/Worker 进程 (bind和wait信息):
SQL> exec sys.dbms_system.set_ev (SID, SERIAL#, 10046, 12, '');

说明:

DM00是Data Pump Master Process

The Data Pump master (control) process is started during job creation and coordinates all tasks performed by the Data Pump job. It handles all client interactions and communication, establishes all job contexts, and coordinates all worker process activities on behalf of the job.

数据泵主(控制)过程在作业创建期间启动,并协调数据泵作业执行的所有任务。 它处理所有客户端交互和通信,建立所有作业上下文,并代表作业协调所有工作进程活动。

DW00是Data Pump Worker Process

The Data Pump worker process is responsible for performing tasks that are assigned by the Data Pump master process, such as the loading and unloading of metadata and data.

Data Pump工作进程负责执行由Data Pump主进程分配的任务,例如元数据和数据的加载和卸载。

3、结束跟踪

等待一段时间 (至少1 小时) 以捕获足够的信息。

--结束跟踪
SQL> exec sys.dbms_system.set_ev (SID, SERIAL#, 10046, 0, '');

对于所有方法,DataPump Master 和Worker trace文件都被写到BACKGROUND_DUMP_DEST 或者 <ADR_HOME>/trace。

4、捕获trace文件

SQL> show parameter BACKGROUND_DUMP_DEST;
SQL> select * from v$diag_info WHERE name='Default Trace File';

以上为MOS提供的诊断方法,可灵活的使用,查询出DataPump进程的SID后可以查询是否有会话阻塞,异常等待事件是什么?

比如由于“StreamsAQ: enqueue blocked on low memory”等待事件导致expdp / impdp命令出现严重性能问题,是因为Bug 27634991引起的(在版本19.1及更高版本中修复了)。


后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

相关推荐

【预警通报】关于WebLogic存在远程代码执行高危漏洞的预警通报

近日,Oracle官方发布了2021年1月关键补丁更新公告CPU(CriticalPatchUpdate),共修复了包括CVE-2021-2109(WeblogicServer远程代码执行漏洞)...

医院信息系统突发应急演练记录(医院信息化应急演练)

信息系统突发事件应急预案演练记录演练内容信息系统突发事件应急预案演练参与人员信息科参与科室:全院各部门日期xxxx-xx-xx时间20:00至24:00地点信息科记录:xxx1、...

一文掌握怎么利用Shell+Python实现完美版的多数据源备份程序

简介:在当今数字化时代,无论是企业还是个人,数据的安全性和业务的连续性都是至关重要的。数据一旦丢失,可能会造成无法估量的损失。因此,如何有效地对分布在不同位置的数据进行备份,尤其是异地备份,成为了一个...

docker搭建系统环境(docker搭建centos)

Docker安装(CentOS7)1.卸载旧版Docker#检查已安装版本yumlistinstalled|grepdocker#卸载旧版本yumremove-ydocker.x...

基础篇:数据库 SQL 入门教程(sql数据库入门书籍推荐)

SQL介绍什么是SQLSQL指结构化查询语言,是用于访问和处理数据库的标准的计算机语言。它使我们有能力访问数据库,可与多种数据库程序协同工作,如MSAccess、DB2、Informix、M...

Java21杀手级新特性!3行代码性能翻倍

导语某券商系统用这招,交易延迟从12ms降到0.8ms!本文揭秘Oracle官方未公开的Record模式匹配+虚拟线程深度优化+向量API神操作,代码量直降70%!一、Record模式匹配(代码量↓8...

一文读懂JDK21的虚拟线程(java虚拟线程)

概述JDK21已于2023年9月19日发布,作为Oracle标准Java实现的一个LTS版本发布,发布了15想新特性,其中虚拟线程呼声较高。虚拟线程是JDK21中引入的一项重要特性,它是一种轻量级的...

效率!MacOS下超级好用的Linux虚拟工具:Lima

对于MacOS用户来说,搭建Linux虚拟环境一直是件让人头疼的事。无论是VirtualBox还是商业的VMware,都显得过于笨重且配置复杂。今天,我们要介绍一个轻巧方便的纯命令行Linux虚拟工具...

所谓SaaS(所谓三维目标一般都应包括)

2010年前后,一个科技媒体的主编写一些关于云计算的概念性问题,就可以作为头版头条了。那时候的云计算,更多的还停留在一些概念性的问题上。而基于云计算而生的SaaS更是“养在深闺人未识”,一度成为被IT...

ORA-00600 「25027」 「x」报错(报错0xc0000001)

问题现象:在用到LOB大对象的业务中,进行数据的插入,失败了,在报警文件中报错:ORA-00600:内部错误代码,参数:[25027],[10],[0],[],[],[],[],[...

安卓7源码编译(安卓源码编译环境lunch失败,uname命令找不到)

前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...

编译安卓源码(编译安卓源码 电脑配置)

前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...

360 Vulcan Team首战告捷 以17.5万美金强势领跑2019“天府杯“

2019年11月16日,由360集团、百度、腾讯、阿里巴巴、清华大学与中科院等多家企业和研究机构在成都联合主办了2019“天府杯”国际网络安全大赛暨2019天府国际网络安全高峰论坛。而开幕当日最激荡人...

Syslog 日志分析与异常检测技巧(syslog发送日志配置)

系统日志包含有助于分析网络设备整体运行状况的重要信息。然而,理解并从中提取有效数据往往颇具挑战。本文将详解从基础命令行工具到专业日志管理软件的全流程分析技巧,助你高效挖掘Syslog日志价值。Gr...

从Oracle演进看数据库技术的发展(从oracle演进看数据库技术的发展的过程)

数据库技术发展本质上是应用需求驱动与基础架构演进的双向奔赴,如何分析其技术发展的脉络和方向?考虑到oracle数据库仍然是这个领域的王者,以其为例,管中窥豹,对其从Oracle8i到23ai版本的核...

取消回复欢迎 发表评论: