Oracle DATAPUMP (expdp/impdp) je alat koji je prevashodno namijenjen za transfer podataka iz jedne baze u drugu bazu ali može se koristiti i za tzv. logički backup Oracle schema-e ili za logički backup cjelokupne baze podataka. DATAPUMP alati EXPDP i IMPDP predstavljeni su u Oracle 10g verziji baze i oni predstavljaju naprednije verzije već postojećih alata exp i imp.
Pomoću DATAPUMP alata expdp moguće je napraviti export podataka iz jedne baze a pomoću alata impdp moguće je taj export importovati u drugu ili istu bazu. Fajl koji se kreira prilikom export-a podataka iz baze je takođe (kao i kod exp/imp alata) DUMP fajl koji u binarnom formatu sadrži objekte iz baze, metapodatke tih objekata kao i njihove kontrolne podatke.
EXPDP/IMPDP komande (parametri) mogu biti izvršene na tri načina:
1. Pomoću command line interface-a (parametri se specificiraju u okviru command line interface-a)
2. Pomoću parametarskog fajla (parametri se specificiraju u posebnom fajlu)
3. Interaktivni unos parametara (potrebni parametri interaktivno se unose u expdp/impdp interface)
DATAPUMP alati podržavaju pet različitih mode-ova za migraciju podataka:
* Full export/import mode (izvršava export/import cjelokupne baze podataka)
* Schema mode (default-ni mod, export/import podataka određene schema-e)
* Table mode (izvršava export/import određenih tabela i objekata koji zavise od tih tabela)
* Tablespace mode (vrši export/import objekata koji se nalaze u određenom tablespace-u)
* Transportable Tablespace Mode (vrši export/import samo metadata podataka o tabelama u okviru određenog tablespace-a)
Da bi se alat DATAPUMP mogao koristiti potrebno je ispuniti odgovarajuće uslove:
- Postojanje odgovarajućeg Oracle direktorijuma (folder-a) u koji će se smještati DUMP fajlovi. Ovaj direktorijum je definisan Oracle parametrom DATA_PUMP_DIR.
- Kreiranje posebnog Oracle korisničkog naloga (kao bi se izbeglo korišćenje SYS analoga) koji će imati pravo da vrši export/import procedure. Korisničkom nalogu koji će biti zadužen za DATAPUMP poslove moraju se grant-ovati i sledeće privilegije: create table, datapump_exp_full_database, datapump_imp_full_database, read i write on directory (Oracle DATAPUMP folder).
Evo i procedure setup-a Oracle DATAPUMP parametara:
1. Kreiranje direktorijum na nivou operativnog sistema.
$ pwd /home/oracle $ mkdir datapump $ cd datapump/ /home/oracle/datapump
2. Konfiguracija Oracle direktorijuma.
SQL> conn / as sysdba Connected. SQL> create directory datapump_dir as '/home/oracle/datapump'; Directory created.
3. Kreiranje i podešavanje korisničkog naloga koji će biti zadužen za DATAPUMP poslove.
SQL> create user datapump_admin identified by pass1 default tablespace users quota unlimited on users; User created. SQL> grant create table to datapump_admin; Grant succeeded. SQL> grant datapump_exp_full_database to datapump_admin; Grant succeeded. SQL> grant datapump_imp_full_database to datapump_admin; Grant succeeded. SQL> grant read, write on directory datapump_dir to datapump_admin; Grant succeeded.
Sada korisnički nalog datapump_admin ima sva potrebna prava da bi izvršio bilo koju DATAPUMP proceduru.
EXPORT Procedura
Komanada za export svih podataka iz cjelokupne baze podataka:
$ echo $ORACLE_HOME /u01/app/oracle/product/11.2.0/db_1 $ expdp datapump_admin/pass1 directory=datapump_dir dumpfile=full.dmp logfile=full.exp.log full=y
Ova će komanda izvršiti export svih podataka iz baze u fajl full.dmp koji će biti smješten u folder /home/oracle/datapump. Takođe, u isti folder biće smješten i log fajl export procesa.
Ovaj se export može izvršiti i na drugi način, pomoću parametarskog fajla. Prvo je potrebno kreirati parametarski fajl:
$ vi fillexp.par userid=datapump_admin/pass1 directory=datapump_dir dumpfile=full.dmp logfile=full.exp.log full=y
Sada je komanda za export svih podataka iz baze sledeća:
$ expdp parfile=fullexp.par
Za export podataka iz samo neke schema-e potrebno je navesti parametar "schemas=". Moguće je navesti jednu ili više schema-a za export. Npr:
vi user_test.par userid=datapump_admin/pass1 directory=my_datapump_dir schemas=test reuse_dumpfiles=yExport komanda je:
$ expdp parfile=user_test.par dumpfile=test_schema.dmp logfile=test_schema.exp.log
Pored već navedenih parametara postoji još veliki broj parametara koje je moguće navesti prilikom DATAPUMP export procedure, neki od njih su kompresija podataka, zatim enkripcija podataka, kao i detaljno specificiranje onoga što se želi export-ovati (samo tabele, samo struktura objekata (DDL), itd.).
IMPORT Procedura
Što se tiče IMPDP podešenja ona su identična EXPDP podešenjima, tj. mora se kreirati Oracle direktorijum i odgovarajući korisnički nalog. Sintaksa komandi je slična.
Import FULL exporta podataka iz baze.
Parametarski fajl:
$ vi fullimp.par userid=datapump_admin/pass1 directory=datapump_dir dumpfile=full.dmp logfile=full.imp.log full=y content=all table_exists_action=truncate
Import komanda:
$ impdp parfile=fullimp.par
Import schema exporta podataka.
Parametarski fajl:
$ cat test_imp.par userid=datapump_admin/pass1 directory=datapump_dir dumpfile=test_schema.dmp logfile=test_schema.imp.log schemas=test content=all table_exists_action=replace
Import komanda:
$ impdp parfile=test_imp.par
No comments:
Post a Comment