Menu

22 Eylül 2010 Çarşamba

Oracle Import-Export (Data Pump)

Data Pump, isletim sistemine yazdigi belirli formatlardaki dosyalar ile Oracle veritabanin mantiksal yedegini alan bir aractir. EXPDP ile veritabandaki verileri disa aktarilir. IMPDP ilede iceri aktarilir.

Simdi bu araclari inceleyelim ve kullanimini gorelim...

Oralce Data Pump, 10g ile birlikte gelen bir ozelliktir ve Oracle daha onceki surumlerinde yer almayan yeni bir ozelliktir. Bununla birlikte DBMS_DATAPUMB paketi de Oracle veritabanlari arasinda hizli bir sekilde veri ve metadata tasimak icin saglanmis server tarafi altyapisidir.

Data Pump disari ve iceri veri aktarimlarinda en fazla isi yurutebilmek icin islerin paralel olarak calismasini otomatik olarak yonetir. Data Pump komut satirindan kullanilabildigi gibi (expdp, impdp) web tabanli Oracle Enterprise Manager iligli arayuzu ile de kullanilabilir.

Data Pump 10g ile entegre olmus bir ozelliktir ve tum konfigurasyonlarinda yer almaktadir.Ancak, isler paralel olarak calistirabilme ozelligi sadece Enterprise surumde mevcuttur..


Data Pump ihrac yardimci programi Oracle veritabanlari arasinda verileri transfer etmek icin kullanilan bir mekanizma saglamaktadir. Bu yardimci program asagidaki komut ile calistirilir..

           expdp username/password DIRECTORY=dmpdir DUMPFILE=yedek.dmp

Bu export programinin nasil calisacagini kontrol etmek icin bircok parametre mevcuttu. Bu parametreler expdp komutundan sonra parametre adi ve degeri girilerek kullanilabilir...

            expdp PARAMETRE=value                 yada 

           expdp PARAMETRE=(value1, valu2,......valueN)


Ornek:
    
         expdp hr/hr DUMPFILE=hr.dmp DIRECTORY=dmpdir SCHEMAS=hr

         expdp hr/hr DUMPFILE=hr.dmp DIRECTORY=dmpdir TABLES=(T1:P1, T1:P2)

yukarida ornek kullanimi gorduk simdi gercek bi uygulama yapalim..


Benim TESTDB veritabanimda aslan ismide bi user`in haliyle bi schemam var, buradaki schema`yi once export edip daha sonra baska bir veritabani olan ORCL`de import edecem..


Oncelikle aslan kullanicisi ile sqlplus`dan baglanti kuralim ve bize export`da gerek olacak, create any directory privilidge`ini (ayricaligini) verelim.. (Eger user DBA rolune sahipse buna hic gerek kalmaz).



Simdi yukarida yaptigimi islemi adim adim, inceleyelim.. Oncelikle system kullanicisi ile sqlplus`dan login olduk ve aslan kullanicisina, once CREATE ANY DIRECTORY yaratma yetkisi verdik, daha sonra export importta kullanmak icin TEST_DIR yarattik..
Ve en sondada aslan kullanicisinin, olusturdugumuz TEST_DIR kullanabilmesi icin ona, bu directory uzerinde READ ve WRITE yetkilerini  verdik..


Ve simdi export yapma islemine baslayalim...





Yukarida goruldugu gibi export islemi basarili bi sekilde gerceklesti..
Burada, D:\expimp\  klasorunun icini gelip baktigimizda iki tane dosya gorecez. aslan.dmp ve export.log isminde iki dosya..

Simdi ise import islemini gerceklestirelim.. yani TESTDB veritabanindan export ettigimiz, aslan schemasini, ORCL veritabina import edelim..




Yukaridaki durumlari incelerken benim iki database`imde aktif durumda..

Simdi ORCL database`imizi acip baktigimizda, aslan schemasinin import edilmis oldugunu ve kullanima hazir oldugunu gormus olacagiz...

Oracle Data Pump veri aktarımında daha yeni ve daha hızlı bir araç olarak karşımıza geliyor.  Böylece yedek alma zamanı bir kaç kat azalabilmektedir.


Yapılan testlerde dışarı veri aktarımında (expdp) 10-15 kat daha hızlı içeri veri aktarımında (impdp) 5 kat daha hızlı veri aktarımı sağlandığı görülmüştür.
Data Pump aracı sadece anabilgisayardaki klasorde yedek alıp geri yükleme yapabilmektedir.

2 yorum:

  1. Güzel faydalı bir yazı olmuş.Teşekkür ederiz yalnız sadece şema anlatmışsınız diyelimki bir tablo için table_name=aslan/export_tablosu mu olcak.Hatta daha da güzel bir sorgu sonucu olan değeri export edebilirmiyiz bu şekilde ?

    YanıtlaSil
  2. Güzel bir yazı olmuş.Teşekkür ederiz yalnız burda sadece şema bazlı bir export import örneği vermişsiniz.Tablo bazlo olursa örneğin table_name=aslan/ornek_tablo mu olması gerekli?
    Daha da ileri gidersek sorgu bazlı olursa bir sorgu sonucu dönen değerleri export edebilir miyiz nasıl ederiz?

    YanıtlaSil