Announcement

Collapse
No announcement yet.

PL/SQL getriggerten Dump einschränken

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • PL/SQL getriggerten Dump einschränken

    Ahoi @all

    folgendes "Problem":

    Ich habe mir ein Tool zusammen gedengelt, welches per PL/SQL einmal täglich einen Dump aus löst.

    PL/SQL für das Schema "TEST":

    declare
    h1 NUMBER;
    begin
    begin
    h1 := dbms_datapump.open (operation => 'EXPORT', job_mode => 'SCHEMA', job_name => 'BEISPIELEXPORTJOBNAME', version => 'COMPATIBLE');
    end;
    begin
    dbms_datapump.set_parallel(handle => h1, degree => 1);
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0);
    end;
    begin
    dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''TEST'')');
    end;
    begin
    dbms_datapump.add_file(handle => h1, filename => 'BeispielExportDatei.DMP', directory => 'Transfer', filetype => 1);
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1);
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC');
    end;
    begin
    dbms_datapump.set_parameter(handle => h1, name => 'ESTIMATE', value => 'BLOCKS');
    end;
    begin
    dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0);
    end;
    begin
    dbms_datapump.detach(handle => h1);
    end;
    end;
    /

    Aufgabe:

    In der Datenbank sind drei Tabellen, welche reine Changelogs sind, die den Dump nur unnötig aufblasen (560 statt 160 MB) und im Verlustfall verschmerzbar sind.

    Also soll der Dump die Tabellen NICHT enthalten. Mein erster Gedanke wäre hier anzusetzen:

    (...)
    begin
    dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''TEST'')');
    end;
    (...)

    nach dem Motto: ... IN("TEST") AND NOT LIKE ... oder irgendwas in der Richtung. Aber was?

    Edit: Jemand ne Idee? Oder besser Link auf Doku/Beispiel?

    thx

  • #2
    Filter für expdp (datapump)

    DBMS_DATAPUMP.DATA_FILTER (
    handle IN NUMBER,
    name IN VARCHAR2,
    value IN NUMBER,
    table_name IN VARCHAR2 DEFAULT NULL,
    schema_name IN VARCHAR2 DEFAULT NULL);

    Wenn der Tabellenname leer bleibt, dann gilt der Filter für alle Tabellen.

    Doku:

    http://download.oracle.com/docs/cd/B...mp.htm#i997260
    Grüße

    Logan2012

    http://www.dbplace.de

    Comment


    • #3
      Saukuhl, danach habe ich gesucht.

      Danke!

      Comment

      Working...
      X