Oracle mechanics

10.06.2010

Oracle трейс утилит exp/imp и expdp/impdp

При выполнении еженощного экспорта некоторых важных схем бд (производимого на всякий случай, помимо штатного бэкапа средствами rman), периодически появляется ошибка EXP-00003: no storage definition found for segment(123, 345). В процессе работы над Service Request сотрудники техподдержки Oracle порекомендовали сделать datapump export с неописанным в документации параметром TRACE=480300

Для чего и как можно применить трейс утилит DataPump Export/Import (и устаревших Export/Import) ?

Export/Import

Если попробовать применить параметр TRACE наудачу

C:\TEMP>exp scott/tiger file=scott.dmp trace=480103
LRM-00105: '480103' is not a legal Boolean for 'trace'
EXP-00019: failed to process parameters, type 'EXP HELP=Y' for help
EXP-00000: Export terminated unsuccessfully

получаем забавную ошибку, наводящую на мысть, что для утилиты exp параметр trace должен иметь логическое значение (Y/N, TRUE/FALSE,…). Удачно пробуем значение Y

C:\TEMP>exp scott/tiger file=scott.dmp trace=y
Export: Release 10.2.0.3.0 - Production on Thu Jun 10 14:27:17 2010
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release  10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
Export done in CL8MSWIN1251 character set and AL16UTF16 NCHAR character  set
. exporting pre-schema procedural objects and actions
...

По окончании экспорта получаем стандартный трейс файл события 10046 уровня 1 orcl1020_ora_4236.trc:

Thu Jun 10 14:27:17 2010
ORACLE V10.2.0.3.0 - Production vsnsta=0 vsnsql=14 vsnxtr=3
...
Windows thread id: 4236, image: ORACLE.EXE (SHAD)
*** SERVICE NAME:(SYS$USERS) 2010-06-10 14:27:17.231
*** SESSION ID:(138.771) 2010-06-10 14:27:17.231
=====================
PARSING IN CURSOR #1 len=63 dep=0 uid=54 oct=47 lid=54 tim=662949508  hv=443221076 ad='2d9aa048'
BEGIN         SYS.DBMS_EXPORT_EXTENSION.SET_TRACEON;       END;
END OF STMT
EXEC #1:c=0,e=18550,p=0,cr=0,cu=0,mis=1,r=1,dep=0,og=1,tim=662949502
=====================

который можно анализировать вручную или с помощью команды tkprof

tkprof orcl1020_ora_4236.trc output.txt sort=exeela

Детально возможности трассировки exp/imp описывает Trace option in Export and Import [ID 271782.1], включая недокументированный параметр trace =y

DataPump Export/Import

Подробное описание параметра TRACE для expdp/impdp можно прочитать в документе техподдержки Export/Import DataPump Parameter TRACE — How to Diagnose Oracle Data Pump [ID 286496.1], в частности:

… Усовершенствованные возможности трассировки появились для утилит expdp/impdp… Каждый компонент Data Pump может быть определён [значением параметра TRACE] для получения детального трейса этого компонента:

-- Summary of Data Pump trace levels:
-- ==================================
Trace   DM   DW  ORA  Lines
level  trc  trc  trc     in
(hex) file file file  trace                                         Purpose
------- ---- ---- ---- ------ -----------------------------------------------
10300    x    x    x  SHDW: To trace the Shadow process (API) (expdp/impdp)
20300    x    x    x  KUPV: To trace Fixed table
40300    x    x    x  'div' To trace Process services
80300    x            KUPM: To trace Master Control Process (MCP)      (DM)
100300    x    x       KUPF: To trace File Manager
200300    x    x    x  KUPC: To trace Queue services
400300         x       KUPW: To trace Worker process(es)                (DW)
800300         x       KUPD: To trace Data Package
1000300         x       META: To trace Metadata Package
--- +
1FF0300    x    x    x  'all' To trace all components          (full tracing)

… [с помощью значения TRACE] можно комбинировать трассировку различных компонентов Data Pump :

-- Example of combination (last 4 digits are usually 0300): 

 40300 to trace Process services
 80300 to trace Master Control Process (MCP)
400300 to trace Worker process(es)
-- +
4C0300 to trace Process services and Master Control and Worker processes

Обычным при использовании является значение TRACE=480300 (трейс Master и Worker процессов), что и рекомендовали сотрудники техподдержки

При значении TRACE=400301 создаётся стандартный трейс файл события 10046 уровня 1 (аналог параметра trace=y для exp/imp), для получения трейсов более высокого уровня рекомендуют использовать процедуру DBMS_SYSTEM.SET_EV([SID],[SERIAL#],[EVENT],[LEVEL],») или oradebug, как и для любого другого процесса Oracle

Кроме подробной и полезной информации в документе описан параметр METRIC=y, записывающий в лог файлы экспорта/импорта дополнительную информацию о количестве и времени обработки объектов

1 комментарий »

  1. Спасибо.Очень полезная статья. И вообще весь блог очень полезный и толковый!
    Александр, Киев, Украина, OCP 11g.

    комментарий от Александр Беляков — 16.09.2011 @ 12:32 | Ответить


RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Создайте бесплатный сайт или блог на WordPress.com.

%d такие блоггеры, как: