Inspiracja , wiedza , realizacja
Jsystems

W przebudowie

Login



Java

Oracle

Linux

Android

PostgreSQL

Microsoft SQL Server

Export i Import danych

Data dodania: Jun 17, 2016
Data aktualizacji: Jun 17, 2016

Export i Import danych za pomocą programów EXP/IMP.


Poprzez narzędzie EXP można eksportować dane z bazy Oracle do postaci binarnej. Natomiast dzięki narzędziu IMP można dane importować z wyeksportowanego wcześniej pliku binarnego do bazy.


Przy użyciu tych programów można wyeksportować/zaimportować:

-całą bazę

-wybrany schemat

-wybrane tabele

-wybraną przestrzeń tabel


Przy eksporcie/imporcie należy podać następujące parametry:

-USERID (kim chcemy wykonać eksport,podajemy nazwę użytkownika łamaną na jego hasło)

-FILE (nazwa pliku z danymi, jaki ma zostać utworzony wraz ze ścieżką. Należy pamiętać o tym, iż folder w którym chcemy utworzyć plik eksportu musimy wcześniej stworzyć sami)

-LOG (opcjonalnie, nazwa pliku z logami, jaki ma zostać utworzony wraz ze ścieżką)

-FULL/OWNER/TABLES/TABLESPACES (co chcemy eksportować)


Aby móc wykonać eksport całej bazy, dowolnego schematu lub dowolnej tabeli nalezy posiadać rolę EXP_FULL_DATABASE, natomiast przy imporcie wymagana jest rola IMP_FULL_DATABASE.


Export i import możemy równiez wykonać zdalnie, wystarczy, że po nazwie użytkownika i jego haśle, po małpce podamy adres ip bazy danych, lub jej alias deskryptora połączeń z pliku TNSNAMES.ORA.


Poniżej kilka przykładów eksportów i importów:


Eksport całej bazy


EXP USERID=SYSTEM/sys FILE:='D:\EXP_IMP\BAZA.DMP' LOG='D:\EXP_IMP\BAZA_EXP.LOG' FULL=Y




Eksport schematu/ schematów


EXP USERID=SYSTEM/sys FILE:='D:\EXP_IMP\HR.DMP' LOG='D:\EXP_IMP\HR_EXP.LOG' OWNER=HR




EXP USERID=SYSTEM/sys FILE:='D:\EXP_IMP\HR_RAFAL.DMP' LOG='D:\EXP_IMP\HR_RAFAL_EXP.LOG' OWNER=HR,RAFAL




Eksport tabeli/tabel


EXP USERID=SYSTEM/sys FILE:='D:\EXP_IMP\HR_EMP.DMP' LOG='D:\EXP_IMP\HR_EMP_EXP.LOG' TABLES=HR.EMPLOYEES





EXP USERID=SYSTEM/sys FILE:='D:\EXP_IMP\HR_EMP_DEP.DMP' LOG='D:\EXP_IMP\HR_EMP_DEP_EXP.LOG' TABLES=HR.EMPLOYEES,HR.DEPARTMENTS




Eksport przestrzeni tabel


EXP USERID=SYSTEM/sys FILE:='D:\EXP_IMP\USERS.DMP' LOG='D:\EXP_IMP\USERS_EXP.LOG' TABLESPACES= USERS




Import całej bazy


IMP USERID=SYSTEM/sys FILE:='D:\EXP_IMP\BAZA.DMP' LOG='D:\EXP_IMP\BAZA_IMP.LOG' FULL=Y




Import schematu


EXP USERID=SYSTEM/sys FILE:='D:\EXP_IMP\HR.DMP' LOG='D:\EXP_IMP\HR_IMP.LOG' FROMUSER=HR TOUSER=HR





Import tabeli


EXP USERID=SYSTEM/sys FILE:='D:\EXP_IMP\HR_EMP.DMP' LOG='D:\EXP_IMP\HR_EMP_IMP.LOG' FROMUSER=HR TOUSER=HR TABLES=EMPLOYEES




Import przestrzeni tabel


EXP USERID=SYSTEM/sys FILE:='D:\EXP_IMP\USERS.DMP' LOG='D:\EXP_IMP\USERS_IMP.LOG' FROMUSER=HR TOUSER=HR TABLESPACES=USERS




Eksport/import przy użyciu pliku parametrów


Zamiast wypisywać wszystkie parametry w wierszu poleceń, można utworzyć plik parametrów i w nim zawrzeć wszelkie opcje jakie chcemy wykorzystać.


USERID=SYSTEM/sys

FILE='D:\EXP_IMP\EXP_BAZY.DMP'

LOG='D:\EXP_IMP\EXP_BAZY.LOG'

FULL=Y




EXP PARFILE='D:\EXP_IMP\USTAWIENIA.TXT'




Informacje o parametrach jakie mozna wykorzystać podczas wykonywania eksportu




Informacje o parametrach jakie mozna wykorzystać podczas wykonywania importu




Export i Import danych za pomocą programów EXPDP/IMPDP.


Bazę danych możemy także eksportować/importować za pomocą mechanizmu DATA PUMP. W przeciwieństwie do oryginalnego eksportu/importu mechanizm ten działa jako proces serwera, a nie proces kliencki.


Data Pump tworzy i odczytuje pliki danych i dzienników, które należy umieścić w odrębnym katalogu. W celu utworzenia wskaźnika do zewnętrznego katalogu należy w systemie Oracle użyć polecenia CREATE DIRECTORY. Użytkownicy, którzy będą chcieli korzystać z metod EXPDP lub IMPDPD muszą mieć uprawnienia READ i WRITE do tego katalogu.




Tak samo jak przy oryginalnych metodach eksportu i importu, aby wykonac pełny eksport lub eksport w trybie przenośnej przestrzeni tabel naleźy posiadać przypisaną rolę EXP_FULL_DATABASE a przy importach IMP_FULL_DATABASE




Mechanizm Data Pump obsługuje cztery tryby, dzięki którym możemy eksportować/importować:

-całą bazę

-wybrany schemat

-wybrane tabele

-wybraną przestrzeń tabel


Podczas uruchamiania Data Pump podajemy informacje, takie jak:

-kim chcemy wykonać eksport/import

-katalog w którym mają być utworzone pliki eksportu lub odczytane pliki do importu

-nazwy tych plików

-co chcemy wyeksportować/zaimportować


Tak samo jak i przy EXP/IMP te czynności możemy zrobić zdalnie, ale nalezy pamiętać że pliki z danymi muszą być dostępne fizycznie dla serwera, na którym chcemy wykonać te operacje.


Dodatkowymi opcjalmi są polecenia EXCLUDE i INCLUDE, które umożliwiają określenie np. Które tabele mają byćeksportowane, a które należy z eksportu wykluczyć. Wyłączenie obiektu powoduje także wyłączenie wszystkich obiektów które od niego zależą.

Poniżej kilka przykładów eksportów/importów:


Eksport całej bazy:


EXPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=BAZA.DMP LOGFILE=BAZA_EXPDP.LOG FULL=Y




Eksport schematu/schematów:


EXPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=HR.DMP LOGFILE=HR_EXPDP.LOG SCHEMAS=HR




EXPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=HR.DMP LOGFILE=HR_RAFAL_EXPDP.LOG SCHEMAS=HR,RAFAL




Eksport tabeli/tabel:


EXPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=HR_EMP.DMP LOGFILE=HR_EMP_EXPDP.LOG TABLES=HR.EMPLOYEES




EXPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=HR_EMP_DEP.DMP LOGFILE=HR_EMP_DEP_EXPDP.LOG TABLES=HR.EMPLOYEES,HR.DEPARTMENTS




Eksport przestrzeni tabel:


EXPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=USERS.DMP LOGFILE=USERS_EXPDP.LOG TABLESPACES=USERS




Export przy użyciu opcji include:


EXPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=USERS_INC.DMP LOGFILE=USERS_INC_EXPDP.LOG TABLESPACES=USERS INCLUDE=TABLE:IN('EMPLOYEES')




Export przy użyciu opcji exclude:


EXPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=BAZA_EXC.DMP LOGFILE=BAZA_EXC_EXPDP.LOG FULL=Y EXCLUDE=SCHEMA:IN('HR')




Import całej bazy:


IMPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=BAZA.DMP LOGFILE=BAZA_IMPDP.LOG FULL=Y



Import schematu/schematów:


IMPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=HR.DMP LOGFILE=HR_IMPDP.LOG SCHEMAS=HR



IMPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=HR_RAFAL.DMP LOGFILE=HR_RAFAL_IMPDP.LOG SCHEMAS=HR,RAFAL



Import tabeli/tabel:


IMPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=HR_EMP.DMP LOGFILE=HR_EMP_IMPDP.LOG TABLES=HR.EMPLOYEES



IMPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=HR_EMP_DEP.DMP LOGFILE=HR_EMP_DEP_IMPDP.LOG TABLES=HR.EMPLOYEES,HR.DEPARTMENTS



Import przestrzeni tabel:


IMPDP SYSTEM/sys DIRECTORY=DTPUMP DUMPFILE=USERS.DMP LOGFILE=USERS_IMPDP.LOG TABLESPACES=USERS



Informacje o parametrach jakie mozna wykorzystać podczas wykonywania eksportu i importu za pomocą data pump otrzymamy za pomocą poleceń:

-EXPDP HELP=Y

-IMPDP HELP=Y


Różnice pomiędzy EXP/IMP a EXPDP/IMPDP


Pomimo, iż używa się obu sposobów w tym samym celu, a więc do eksportu i importu danych, należy pamietać są to zupełnie dwa różne narzędzia a ich różnica nie polega jedynie na innej składni czy parametrach.


Data Pump w przeciwieństwie do tradycyjnej metody działa jako proces serwera, dzieki czemu, nawet jeśli konsola w której uruchomiliśmy polecenie EXPDP lub IMPDP się zawiesi, albo nawet wyłączy to proces ten trwa nadal.

Data Pump operuje na grupach plików, natomiast tradycyjna metoda na pojedynczych plikach.

Data Pump używa plików znajdujących się bezpośrednio na serwerze (poprzez directory) , natomiast tradycyjna metoda z komputera klienckiego lub serwera w zależności od tego gdzie uruchamiamy EXP/IMP.

Metadane w tradycyjnej metodzie są trzymane w postaci instrukcji DDL, natomiast data pump jest reprezentowany w formacie dokumentu XML.

Data pump domyslnie zrównolegla procesy eksporu/importu, natomiast tradycyjna metoda używa pojedynczego strumienia.

Data pump używa metody blokowej, natomiast tradycyjna metoda opiera się o bajty.

Przy importowaniu schematu użytkownika za pomocą data pump, uzytkownik zostannie stworzony od nowa, natomiast przy tradycyjnej metodzie wymagane jest wcześniejsze utworzenie go, a dopiero potem import jego obiektów.

Przy używaniu data pump możemy odtworzyć użytkownika/tabele/przestrzenie tabel/pliki danych w ogóle pod innymi nazwami/ściezkami za pomocą przełącznika REMAP (np. REMAP_TABLE=EMPLOYEES:PRACOWNICY).