Cum efectuați un export complet și să excludeți anumite scheme utilizând API-ul Data Pump?
Doriți să efectuați un export complet și să excludeți anumite scheme folosind API-ul Data Pump (dbms_datapump). Următorul exemplu demonstrează cum se efectuează această operație.
Doriți să exportați întreaga bază de date, dar doriți să excludeți SYSTEM și SYS folosind API-ul DataPump. Comanda pentru a efectua această operație din linia de comandă (expdp) arată astfel:
expdp system/<parolă> directory=DATA_PUMP_DIR dumpfile=EXPDAT%U.DMP FULL=y exclude=schemă:\”IN \(\’SYS\’,\’SYSTEM\’\)\”
Operația echivalentă folosind codul PL/SQL Data Pump API pentru a efectua aceeași operațiune ar arăta astfel:
connect system/parola
declare
h1 number; — Datapump handle
dir_name varchar2(30); — Directory Name
begin
dir_name := ‘DATA_PUMP_DIR’;
h1 := dbms_datapump.open(operation =>’EXPORT’,
job_mode =>’FULL’,
job_name =>’FULL MINUS SCHEMAS’,
version => ‘COMPATIBLE’);
dbms_datapump.set_parallel(handle => h1, degree => 1);
dbms_datapump.add_file(handle => h1,
filename => ‘EXPDAT.LOG’,
directory => dir_name,
filetype => 3);
dbms_datapump.set_parameter(handle => h1,
name => ‘KEEP_MASTER’,
value=> 0);
dbms_datapump.add_file(handle => h1,
filename => ‘EXPDAT%U.DMP’,
directory => dir_name,
filetype => 1);
dbms_datapump.set_parameter(handle => h1,
name => ‘INCLUDE_METADATA’,
value => 1);
dbms_datapump.set_parameter(handle => h1,
name => ‘DATA_ACCESS_METHOD’,
value => ‘AUTOMATIC’);
dbms_datapump.metadata_filter(handle => h1,
name => ‘NAME_EXPR’,
value =>’NOT IN(”SYS”,”SYSTEM”)’,
object_type => ‘SCHEMA’);
dbms_datapump.set_parameter(handle => h1,
name => ‘ESTIMATE’,
value =>’BLOCKS’);
dbms_datapump.start_job(handle => h1,
skip_current => 0, abort_step =>0);
dbms_datapump.detach(handle => h1);
end;
/
După examinarea logului de export (EXPDAT.LOG), veți putea vedea că schemele SYSTEM și SYS au fost excluse.
[mai mult...]