SRDC - 数据泵导入(IMPDP)性能问题的诊断收集 (文档 ID 2365615.1)

简介: SRDC - 数据泵导入(IMPDP)性能问题的诊断收集 (文档 ID 2365615.1)MOS
适用于

产品:

  • Oracle 数据库 – 企业版 – 所有版本
  • Oracle 数据库 – 标准版 – 所有版本
  • 本篇文档的信息适用于所有平台
收集什么和为什么收集?

下面概述的过程将引导用户收集诊断数据,这将有助于 Support 缩小问题的原因。

本文档专门为读者提供以下必要的指导:

  • 收集开始分析 Data Pump 导入性能问题所需的所有诊断数据
  • Support 将使用这些信息来指导他们对这个问题的调查。

安全声明: Oracle 将使用此信息来帮助诊断问题的原因。在许多情况下,这组信息将足以用于诊断 - 在某些情况下,可能需要在稍后阶段提供额外的特定诊断数据。

Action Plan

在创建新的 DataPump 导入性能 SR 时收集并提供以下数据:

1. 提供性能问题的明确的问题描述。

2. 提供以下信息:

- impdp 客户端版本
产生 dump 文件的 expdp 客户端版本
- 源数据库版本(例如, expdp 运行的数据库)

- 目标数据库版本(例如, impdp 开始的数据库)
- 用于启动 impdp 程序的完整命令
- 导入的参数文件(如果使用了的话)
- 完整的 impdp 日志文件
- 数据库服务器的完整 alert.log 文件


3. 请回答以下问题:

a. 导入元数据还是数据时出现性能问题?
b. DataPump 导入是否工作得快过?如果是,数据结构是否改变或者数据量是否增加?
c. 是否是特定对象遇到性能问题?如果是,则提供对象名称。


4. 生成并收集 DataPump 导入的 SQL 跟踪。

首先确保在 DataPump 导入启动之前将参数 MAX_DUMP_FILE_SIZE 设置为 UNLIMITED:

SQL> connect / as sysdba
SQL> alter system set max_dump_file_size = unlimited;

 

然后选择以下任一方法:


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

请注意,TRACE 参数要求使用 DataPump 导入连接到数据库的用户是有权限的用户(即授予了 DBA 或 EXP_FULL_DATABASE 角色的用户)。

或者:

B. 对 DataPump Master(DM)和 Worker(DW)进程启用 level 12 的 10046 trace(对于版本 >= 11g):

SQL> connect / as sysdba

-- 版本 >= 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 加入命令行启动 impdp。

要禁用跟踪执行:

SQL> connect / as sysdba

-- 版本 >= 11g and < 12c
SQL> alter system set events 'sql_trace {process : pname = dw | pname = dm} off';

-- 版本 = 12c
SQL> alter system set events 'sql_trace {process: pname = dw | process: pname = dm} off';

 
或者:

C. 跟踪已经开始运行的 DataPump 导入进程:

在 SQL*Plus 中, 获取 DataPump 进程信息:

SQL> connect / as sysdba

SQL> set lines 150 pages 100 numwidth 7 
SQL> col program for a38 
SQL> col username for a10 
SQL> col spid for a7 
SQL> 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%');

 

确认 Data Pump Worker SID 和 SERIAL# (例如,对于 DM<xx> 和 DW<xx> 进程)。

以 level 12跟踪 Master/Worker 进程 (bind 和 wait 信息):

SQL> exec sys.dbms_system.set_ev (SID, SERIAL#, 10046, 12, '');

 

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

结束跟踪: 

SQL> exec sys.dbms_system.set_ev (SID, SERIAL#, 10046, 0, '');

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

有关为数据泵导入生成 SQL 跟踪的其他可用选项,请参阅文档:

Note 286496.1 Export/Import DataPump Parameter TRACE - How to Diagnose Oracle Data Pump
Note 813737.1 How To Use The New 11g Events++ Syntax For Easier SQL Tracing Of Datapump Operations?

 

5. 收集问题发生时的 AWR 信息。

参考 Note 748642.1 How to Generate an AWR Report and Create Baselines for instructions.

SQL> connect / as sysdba
SQL> @?/rdbms/admin/awrrpt.sql


6. 如果性能问题发生在特定的对象上 ,请提供以下输出:

SQL> connect / as sysdba
SQL> set long 20000
SQL> select owner,object_type,data_object_id from dba_objects where object_name='<OBJECT_NAME>';
SQL> select dbms_metadata.get_ddl('<OBJECT_TYPE>','<OBJECT_NAME>','<SCHEMA_NAME>') from dual;


7. 在问题发生时运行脚本 srdc_impdp_performance.sql。

    下载附件 srdc_impdp_performance.sql 脚本。 
    作为 SYSDBA 连接并在问题发生时运行脚本:

例子:

SQL> connect / as sysdba
SQL> @srdc_impdp_performance.sql
--等待10分钟
SQL> @srdc_impdp_performance.sql
--等待10分钟
SQL> @srdc_impdp_performance.sql

 

压缩(以 .zip,.tar 或 .gz 格式)所有上述文件,并在 SR 创建时将所有证据附加到服务请求。 在上载到 SR 之前以 impdp_performance_details_<date>.zip/.tar/.gz 命名文件。

目录
相关文章
|
安全 Oracle 关系型数据库
WebLogic Server 账号密码密文解密小方法
WebLogic Server 账号密码密文解密小方法,具体操作看下文
443 3
|
SQL 数据库
用户指南—诊断与优化—SQL审计与分析—日志字段
本文将介绍PolarDB-X审计日志所包含的日志字段详情
147 0
|
Oracle 关系型数据库 数据库
12 impdp 导入更好用户和表空间
12 impdp 导入更好用户和表空间
138 0
|
SQL Oracle 关系型数据库
实战篇:LogMiner 分析数据泵导入参数 TABLE_EXISTS_ACTION 的秘密
前几天,技术交流群里看到大家讨论 Oracle 数据泵导入时使用 table_exists_action 参数,存在一些疑惑。于是,我打算通过 LogMiner 来分析一下在线重做日志,看看到底是怎么玩的。
实战篇:LogMiner 分析数据泵导入参数 TABLE_EXISTS_ACTION 的秘密
|
SQL Oracle 关系型数据库
ORACLE AWR报告生成过程出现多个实例记录分析
在一次生成AWR报告中,发现在“Instances in this Workload Repository schema”部分,出现了多个实例记录信息(host敏感信息被用host1,host2,host3替换)。
1319 0
|
SQL Oracle 关系型数据库
Oracle 11g 之自动收集统计信息
SQL> select client_name,status from dba_autotask_client; CLIENT_NAME STATUS---------------------...
1551 0
|
Oracle 关系型数据库 Unix