2013/02/16

Oracle Data pump(import/export işlemi)

  Oracle Data pump işlemi genellikle verilerimizi bir yerden başka bir yere taşımak için kullanırız.Bu işlemi yaparken sıkıştırma ve şifreleme gibi özelliklerden yararlanabiliriz. İmport ve Export işlemlerini full database,schema bazlı vb. işlemlerde kullanabiliriz.Data pump export esnasında dump dosyasına yazmak ve import esnasında da dump dosyasını okumak için veritabanı database directory kullanır.İmp/exp işlemi tanımlanırken hangi veritabanı dizinini kullanacağımızı belirtmemiz gerekir.Belirtilmezse varsayılan veritabanı dizinini kullanılır. Şimdi ise export ve import'u tanımlayalım;
  Export: Verilerimizi dışarıya almak için
  İmport; Verilerimizi içeriye almak için
Yukarıda da belirtiğimiz gibi export ve import işlemlerinde dizin oluşturmamız gerekmektedir. Bu dizini bir kere oluşturup diğer işlemlerde de aynı dizini kullanabiliriz.Ve bu dizini kullanabilmesi içinde de kullanıcıya okuma yazma yetkisi vermeliyiz.
  Export/İmport işlemi yapılabilmesi için kullanıcıda olması gereken yetkinlikler exp_full_database ve imp_full_database'dir. Kullanıcı dba rolüne sahip ise bu yetkilere sahip demekdir.
Resimde Oracle Data pump mimarisini verdikden sonra bir dizi(directory) nasıl oluşturulur ve yetkilendirmesi nasıl yapılır buna bakalım.Öncelikle bir file oluşturalım.Daha sonra SQL*Plus bağlanalım.
Eğer sys kullanıcısı ile bağlantı yapmadıysanız bağlantı yaptığınız kullanıcınıza okuma/yazma yetkisi vermelisiniz.
    SQL> grant read,write on directory imp_exp to ensar;
Export/İmport işlemine sysdba rolü ile bağlanmak istiyorsak şu şekilde bağlanabiliriz.
   expdp \"/ as sysdba \"
   impdp \"/ as sysdba \"
Bu anlattıklarımızı uyğulamaya başlayabiliriz.Öncelikli olarak;
Schema bazlı export ve import işlemi;
Bir uyğulama üzerinde anlatalım.Ensar adında kullanıcımız olsun ve biz ensar kullanıcısının full export'unu alalım.
Export işlemi successfully completed diyene kadar bekleyelim.
Böylelikle ensar kullanıcısının export'unu almış olduk.Şimdi almış olduğumuz ensar kullanıcısını veritabanımızdan silelim daha sonra import işlemini kullanarak tekrar ensar kullanıcımızı oluşturalım.
    SQL> drop user ensar cascade;
İşlem tamamlandıkdan sonra ensar kullanıcısıyle giriş yapabiliriz.
Tablo bazında evport ve import işlemi;
Burada ensar kullanıcısı içerisinde bulunan tablonun export ve import işlemini yapmak için yapılması gerekenleri yazalım.
  C:> expdp ensar/ensar directory=imp_exp dumpfile=ensartable.dmp tables=test.test logfile=tst.log;
Test tablomuzu silelim ve import işlemini gerçekleştirelim.
  C:> impdp \"/ as sysdba \" directory=imp_exp dumpfile=ensartable.dmp tables=test.test logfile=tst1.log;  
 Export alırken verilerimizi sıkıştırma;
Büyük hacimli verilerimizin exportunu alırken  yer kazanma açısından sıkıştırma özelliği çok önemlidir.Bunun için compression özelliği kullanılır.
  C:> expdp ensar/ensar directory=imp_exp dumpfile=ensrcomp.dmp tables=test.test logfile=tst.log reuse_dumpfile=y compression=data_only; 
Export alırken dumpfile boyutlandırma; 
   C:>  expdp ensar/ensar directory=imp_exp dumpfile=ensar.dmp logfile=tst.log filesize=2048M full=y;
Export alırken veriyi şifreleme;
Varsayılan olarak almış olduğumuz exportlar şifrelenmez.Oracle 11g ile encryptıon parametresi ile bu güvenlik açığı önlenmiş  oldu.
   C:> expdp ensar/ensar directory=imp_exp dumpfile=ensar.dmp tables=test.test  logfile=tst.log reuse_dumpfile=y encryption=data_only;
Export alırken package,function ve triggerleri exclude etmek;
Exclude parametresiyle export alırken object tipleri hariç tutabiliriz.
Include parametresiyle export alırken object tipleri dahil edebiliriz.
  C:> expdp ensar/ensar directory=imp_exp dumpfile=ensar.dmp schemas=ensar logfile= tst.log exclude=FUNCTION,PACKAGE
Versiyon parametresi ile eski bir oracle versiyonundan daha yeni bir oracle versiyonuna veri taşımak istersek;
  C:> expdp \ "/ as sysdba \" directory=imp_exp dumpfile=ensar.dmp logfile=tst.log full=y content=all version=11.2.0.1;

Böylelikle Oracle Data pump işlemini anlatmaya çalıştım.Faydalı olması dileğiyle.
Kaynak;
Kamil Türkyılmaz: http://www.kamilturkyilmaz.com/
Talip Hakan Öztürk : Oracle Database 11g R2 İleri Veritabanı Yönetimi kitabı

Hiç yorum yok:

Yorum Gönder