Przejdź do treści

Najlepszy Powód Do Migracji Danych z Użyciem Importu i NETWORK_LINK.

migracja impdp NETWORK_LINK

Jako że obecnie mam za zadanie migrację z platformy AIX na Exadata nadarzyła się okazja do sprawdzenia importu impdp Data Pump przy użyciu tylko sieci z użyciem parametru NETWORK_LINK. 

W tym projekcie używam klasycznego podejścia, czyli eksportu expdp danych na dysk, potem transferu danych z wykorzystaniem sieci, żeby na końcu zrobić import impdp do bazy danych. Jest to metoda dosyć dobra i mało skomplikowana. 

O tym co należy sprawdzić podczas takiej migracji w pisałem tutaj,

OK, to w takim razie, do czego mi jest potrzebny import z wykorzystaniem sieci i NETWORK_LINK ?

Już wyjaśniam. Trafiłem na bazę, która ma rozmiar 6TB i przy podejściu, które dotychczas stosowałem, pojawiło się kilka problemów:

  • Brak miejsca na dysku do przechowywania plików dump.
  • Ograniczenie okna migracji do 24 godzin.

Dlatego migrację podzieliłem na 3 etapy:

  1. Migracja 10 największych tabel i ograniczenie klauzulą QUERY do danych, które się nie zmieniają
  2. Wykonanie klasycznego eksportu i importu w oknie migracyjnym danych (poza wcześniejszymi 10 największymi tabelami).
  3. Na końcu dociągnięcie brakujących danych i zakończenie migracji.

Plan już jest, ale pojawiło się pytanie. Czy import z użyciem NETWORK_LINK będzie najszybszym rozwiązaniem?

Test dla pojedynczej tabeli z parametrem NETWORK_LINK.

  1. Import z użyciem parametru NETWORK_LINK:

Przygotowałem DB_LINK na bazie docelowej:

CREATE DATABASE LINK IMPNET USING 'SRV1:1521/SOURCEDB';

Następnie uruchomiłem import:

impdp tables=TESTUSER.TESTTABLE network_link=IMPNET DIRECTORY=IMP logfile=ImpNet_TESTTABLE.log

Czas operacji to 52 minuty, danych było 74,5 GB, w trakcie importu zostały utworzone indeksy dla tabeli.

2. A teraz kolej na klasyczne podejście:

Usunąłem stare dane i rozpocząłem eksport:

expdp tables=TESTUSER.TESTTABLE DIRECTORY=IMP ogfile=export_TESTTABLE.log parallel=2 dumpfile=TESTTABLE_%U.dmpfilesize=10G

Czasu eksportu to 10 minut i 30 sekund.

Czas transferu po sieci wyszedł mi 16 minut i 30 sekund

A import wyglądał tak:

impdp DIRECTORY=IMP dumpfile=TESTTABLE_%U.dmp logfile=import_TESTTABLE.log parallel=2

I zakończył się czasem: 28 minut.

Co dało całkowity czas 55 minut.

Podsumowanie

Z pomierzonych czasów wynika, że użycie tylko sieci w moim przypadku trwało krócej, wymagało mniej pracy i oraz nie wymagało dużych ilości miejsca na dysku. Taka metoda może okazać się szybsza i niewymagająca tylu zasobów co klasyczny eksport expdp i import impdb.

Trzeba jeszcze pamiętać o ograniczeniach importu przez sieć:

  • Brak obsługiwanych danych typu LONG
  • Różnica w wersji bazy danych nie może być większa niż 2. Czyli do bazy 12c nie możemy zaimportować tym sposobem danych z bazy 9i.
  • Import nie można zastosować wielowątkowości.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.