az exp/imp utodja 10g-ben a datapump amely teljesen mas technologian alapul mint az elod, aki errol tobbet szeretne tudni olvasgassa el ezt az angol nyelvu ismertetot (igaz ez mar Oracle 11g alatt mutatkozik be, de a lenyeg ugyanaz).
ezeket szepen lehet parameterezni (sok hasonlosag felfedezheto az exp/imp-pel), de mi van akkor ha nem ezt a modszert valaszjuk, hanem a beepitett pl/sql csomagokkal szeretnenk datapump-olni?
itt egy lehetseges megoldas az importra:
impdp system/manager \
schemas=my_dba \
directory=db_dir \
dumpfile=my_dba_db12.dmp \
logfile=my_dba_db12.log \
table_exist_action=replace \
remap_schema=my_dba:test \
remap_tablespace=MY_REFERENCE:TEST_LOGSTDBY
a fenti parancs a kovetkezoket teszi:
- system-kent csatlakozik a db-hez
- a db_dir adatbazis directory-ban talalhato my_dba_db12.dmp-bol fogunk importalni
- a logfile-t a db_dir adatbazis directory-ba irjuk my_dba_db12.log neven
- a my_dba schemat fogjuk feldolgozni a dump-bol
- a my_dba schema objektumokat a test schema ala importaljuk
- ha egy, az importalando tablak kozul mar letezik a test schema alatt, akkor azt kicsereljuk az import dump-bol jovore
- az importalando objektumok kozul, ami eddig a MY_REFERENCE tablaterben volt az az import utan a TEST_LOGSTDBY-be fog kerulni
mindez igy nez ki a pl/sql package-ekkel:
set serveroutput on
DECLARE
dph NUMBER;
BEGIN
dph := dbms_datapump.open(operation => 'IMPORT', job_mode =>
'SCHEMA',job_name => 'MY_IMPORT_01');
dbms_datapump.add_file(handle => dph,filename =>
'my_dba_db12.dmp', directory => 'DB_DIR',filetype=>1);
dbms_datapump.add_file(handle => dph,filename =>
'my_dba_db12.log',directory => 'DB_DIR',filetype=>3);
dbms_datapump.set_parameter(handle => dph,name =>
'TABLE_EXISTS_ACTION', value =>'REPLACE');
DBMS_DATAPUMP.METADATA_REMAP
(handle => dph,
name => 'REMAP_SCHEMA',
old_value => 'MY_DBA',
value => 'TEST');
DBMS_DATAPUMP.METADATA_REMAP
(handle => dph,
name => 'REMAP_TABLESPACE',
old_value => 'MY_REFERENCE',
value => 'TEST_LOGSTDBY');
dbms_datapump.start_job(dph);
dbms_datapump.detach(dph);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error:' || sqlerrm || ' on Job-ID:' || dph);
END;
/
Ajánlott bejegyzések:
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.