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