איך להבין מה expdp או impdp עושה כרגע - ilDBA Portal

איך להבין מה expdp או impdp עושה כרגע

15/05/2011 | פורסם על ידי

בגרסה 10g התחילו באורקל להחליף את מנגנון ה-export/import בכלי מתוחכם בהרבה בשם expdp/impdp (כלומר export data pump או import data pump). הכלי החדש תומך בין השאר ביצוא ויבוא של נתונים בצורה מהירה בהרבה ואפילו בפעולות מקביליות.

הבעיה היא שלמרות הכלי המתוחכם, לפעמים המנגנון הזה עובד קצת לאט ואז נוצרת בעיה: איך לזהות מה קורה עם ה-export או ה-import שלי? כדי לענות על השאלה הזו צריך להפריד בין כמה רמות של שאלה.

רמה הראשונה: איך מזהים במערכת ההפעלה את התהליכים שקשורים ל-expdp?
תשובה:

/app01/oracle 17:54> expdp zelkayam2 directory=HISTORY_DIR dumpfile=zelkayam%u.dmp full=y parallel=2
/app01/oracle 17:54> ps -ef | grep expdp
oracle 27854 27567 0 17:54 pts/0 00:00:00 expdp directory=HISTORY_DIR dumpfile=zelkayam%u.dmp full=y parallel=2
רמה שנייה: איך מזהים את ה-session-ים בתוך ה-database?
תשובה:
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;
DATE                PROGRAM                                    SID STATUS   USERNAME   JOB_NAME                       SPID    SERIAL#     PID
------------------- -------------------------------------- ------- -------- ---------- ------------------------------ ------- ------- -------
2010-11-11 17:54:45 ude@tali (TNS V1-V3)                        40 ACTIVE   ZELKAYAM2  SYS_EXPORT_FULL_01            28906     38890      26
2010-11-11 17:54:45 oracle@tali (DM00)                          37 ACTIVE   ZELKAYAM2  SYS_EXPORT_FULL_01             28908      1939      30
2010-11-11 17:54:45 oracle@tali (DW01)                          80 ACTIVE   ZELKAYAM2  SYS_EXPORT_FULL_01             28911     19847      31
2010-11-11 17:54:45 oracle@tali (DW02)                         126 ACTIVE   ZELKAYAM2  SYS_EXPORT_FULL_01             28915      3684      12

רמה שלישית: איך מפעילים trace על ה-session-ים של ה-expdp?

התשובה פה היא קצת מפתיעה – קיים פרמטר (שלמרבה ההפתעה לא מופיע כשמריצים expdp help=y) בשם trace.
השימוש בו הוא קצת טריקי מכוון שרמת ה-trace נקבעת על ידי מספר הקסדצימלי בן 7 ספרות (אין צורך להוסיף 0x בהתחלה) ולא ניתן לתת אותו בצורה דצימלית ורק ב-lower case. כמו כן, צריך הרשאות בפועל להריץ trace על session אם רוצים לבצע את זה ומצד שני הרשאות לעשות export על ידי שימוש ב-role-ים: EXP_FULL_DATABASE/ IMP_FULL_DATABASE.

דוגמה לשימוש ב-expdp עם trace:
/app01/oracle 18:19> expdp zelkayam2 directory=HISTORY_DIR dumpfile=zelkayam2%u.dmp full=y parallel=2 trace=480300
במקרה של ה-trace שהפעלתי פה יווצרו שני סוגי קבצים ב-BACKGROUND_DUMP_DEST:
  • סוג אחד ל-master process בשם SID>_dm_.trc>
  • סוג שני ל-worker processes (אחד או יותר) בשם SID>_dw_.trc>.
סוגי ה-trace-ים הקיימים מרוכזים בטבלה המצורפת ומכוון שאלו ערכים הקסהדצמיליים ניתן לחבר אותם כדי לקבל כמה 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 נפוץ הוא 480300 שמנטר גם את ה-MCP (המאסטר) וגם את ה-workers.
בעתיד אני מקווה לכתוב פוסט המשך עם הסברים איך קוראים את הקבצים האלה ומבינים מה קורה בפועל ובנתיים ניתן לקרוא עוד ב-note 286496.1 ב-oracle support.

נתראה ברשומה הבאה !

זהר אלקיים
לרשומה המקורית בבלוג של זהר: איך להבין מה expdp או impdp עושה כרגע.

The following two tabs change content below.
זהר אלקיים הוא Oracle DBA מאז 1998 ויועץ בכיר מאז 2007 ובעל תואר Oracle ACE Associate. הוא מתמחה בתשתיות בסיסי נתונים, ארכיטקטורה ושיפור ביצועים. זהר הוא גם מדריך, מרצה בכנסים ובלוגר באתר www.realdbamagic.com מאז 2010. כיום הוא משמש כיום כ-CTO בחברת בריליקס ומנהל את האתר ilDBA.

השאר תגובה:

שם (חובה):
אימייל (לא יפורסם) (חובה):
תגובה (חובה):

*



מאמרים קשורים

הפונקציה COALESCE

כולם מכירים את הפונקציה NVL, ומשתמשים בה לא מעט. לעומת זאת, הפונקציה COALESCE, השייכת לאותה משפחה של פונקציות, פחות מוכרת, למרות שהיא קיימת כבר מגרסה 9i ועולה ביכולותיה על NVL הישנה והטובה. מצד שני, אף [...]

טיפ: איך לזכור ב-SQLPLUS שאתה בסביבת היצור

כמה פעמים קרה לנו שעבדנו עם sqlplus  מול סביבת יצור ביחד עם עוד כמה חלונות פתוחים ועם קצת לחץ? בקיצור כרגיל… מכוון שהכול כל כך לחוץ, הרצנו איזה פקודה הרסנית, ומיד הצטערנו עליה מאוד: אוי! הרצתי [...]
עבודה

עבודה תחת סביבת FireWall

אורי לרנר בטיפ קצר ושימושי על עבודה בסביבת אורקל [...]
Indexes

Indexes in SQL Server 2

ערן שקד ממשיך בסדרת מאמרים על אינדקסים בSQL [...]
Copyright 2019 ilDBA Portal. Brought to you by Brillix - Israel Leading DBA company. Sponsored by: DBSnaps - Database Video Tutorialss
Website Security Test
%d בלוגרים אהבו את זה: