8 Kasım 2012 Perşembe


                           Oracle Data Pump(expdp and impdp) on 11g

     Export import işlemi 4 farklı türde yapılır.
        a)Export full database
        b)Export schema
        c)Export table
        d)Export tablespace

NOT:Sys schemasına ait objeler export edilemez.Ve bir kullanıcın export işlemini gerçekleştirebilmesi için EXP_FULL_DATABASE rolüne sahip olması gerekir.

1)İlk önce dump dosyalarımızı koyacağımız bir directory oluştururuz.
a)create or replace directory test_dir AS '/u01/app/oracle/oradata/';-->Bu komut gerçekte bir directory oluşturmaz./u01/app/oracle/oradata/ directory map edilmiş bir directory oluşturur.expdp işlemini gerçekleştirecek kullanıcının bu directory write, read yetkisi olmalıdır.Database bulunan  directories görmek için $all_directories view sorgulanabilir.
select * from all_directories;-->sistemimizde bulunan directories görürüz.

b)grant read,write on directory test_dir TO scott-->export işlemi gerçekleştirecek kullanıcıya oluşturulan directory için read ve write yetkisi verilir

A)Full Database Export/İmport:

    NOT:İmport işlemlerinin başarılı bir şekilde gerçekleşmesi için import edilecek datanın bir önceki database bulunduğu tablespace ve datafile import işleminden önce create edilmelidir.

    1)expdp system/password@deneme full=Y directory=TEST_DIR dumpfile=deneme.dmp logfile=deneme.log
full=Y parametresi ile database in tamamı export edilir.oluşturulan dump ve log dosyaları test_dir directory yani '/u01/app/oracle/oradata/' dizininin altında bulunur.

    2)impdp system/password@deneme full=Y directory=TEST_DIR dumpfile=deneme.dmp logfile=deneme.log
İmport edilecek makinada da bir directory oluşturulur ve export işlemi sonucu oluşan dosyalar bu directory kopyalanır. import işlemi bu directory üzerinden yapılır.
 
    NOT:Bir makinada alınan full export ile başka bir makinada istenilen schema nın importu alınabilir.

B)Schema Export/İmport:

    1)expdp system/oracle@test schemas=scott directory=TEST_DIR dumpfile=scottexp.dmp logfile=scottexp.log-->Burada scott schemasına ait bütün objelerin export nu aldık.


    2) impdp system/oracle@test schemas=scott directory=TEST_DIR dumpfile=scottexp.dmp logfile=scottimp.log-->Burada scott schemasını yeni database server a import ettik.İmport işleminden önce gerekli directory oluşturulur.

NOT:Exclude komutunu kullanarak export alınmak istenmeyen objeler export dosyasından çıkarılır.
   expdp system/oracle@test schemas=scott directory=TEST_DIR dumpfile=scottexp.dmp logfile=scottexp.log exclude=statistics-->exclude komutuyla statistics export edilmez

C)Table Export/İmport:
   
    1)expdp scott/oracle@test tables=TABLE1 directory=TEST_DIR dumpfile=scottexp.dmp logfile=scottexp.log-->Burada scott schema sına ait table tablosunun export unu aldık.

NOT: Eğer scott kullanıcısı ile değilde  başka bir kullanıcı ile bu tablonun export alırsak tablonun bulunduğu schema yı belirtmek zorundayız. Yoksa tablo export alan kullanıcını schema sında aranır(tables=scott.table1 şeklinde  yazacaktık)
   
   2)impdp scott/oracle@test tables=table1 directory=TEST_DIR dumpfile=scottexp.dmp logfile=scottimp.log-->Burada exportunu aldığımızın tabloyu başka bir database  import ettik.

D)Tablespace Export/İmport:

1)expdp scott/oracle@test tablespace=test directory=TEST_DIR dumpfile=tbsexp.dmp logfile=tbsexp.log-->Burada test tablespace de bulunan datanın  export unu aldık.


2)impdp scott/oracle@test  directory=TEST_DIR dumpfile=tbsexp.dmp logfile=tbsimp.log


NOT:
Bir database in full export aldıktan sonra başka bir makina da bu full export içerisinde istenilen schemanın veya table import u alınabilir.

 1 Makina:
      expdp system/oracle@test full=y directory=test_dir dumpfile=fullexport.dmp logfile=fullexport.log

2.Makina:
      export dosyalarını 2. makinaya aktardıktan sonra
    impdp system/oracle@test schema=scott  directory=test_dir  dumpfile=fullexport.dmp logfile=schemaimp.log