Oracle Veritabanlarında Export & Import Uygulamaları (Data Pump)

OracleBackup

 Bu makalemizde Oracle tarafından sağlanan export ve import aracı olan “DataPump” inceleyeceğiz.

DataPump Nedir ?

Oracle DataPump komut satırından “expdp” ve “impdp” araçları ile kontrol edilen yedekleme aracıdır. İşlem tamamıyla veritabanı sunucusu üzerinde yapılmakta, istemci sadece işlem için talimat vermektedir. Sağlanan bir API ile PL/SQL procedure’ler içinden de kullanılabilmesi sağlanmıştır. Paralel işleme kabiliyeti olan bu araçla aynı zamanda harici tablolar da kullanılabilmektedir. Oracle Data Pump ile tüm veritabanı yedeği alabildiğimiz gibi Rman ile yapamadığımız “Seçilen Tablolar” “Seçilen Schema”lar vb. için export ve import işlemi mümkün olmaktadır. Bu aracın kullanılabilmesi için öncelikle veritabanı üzerinde kullanılacak yedekleme dizinin yaratılması gerekmektedir.

1. Oracle DataPump kullanabilmek için öncelikle veritabanı sunucumuz üzerinde oracle kullanıcının yazabildiği bir dizine ihtiyacımız var. Bu dizinimizi yaratıp veritabanımıza “DataPump” dizini olarak tanıtıyoruz.

-- Oracle kullanıcısı ile sistemimize bağlanıp "datapump" dosyalarının yazılacağı
dizinimizi yaratıyoruz.

$ mkdir -p /u01/backups/datapump

-- Veritabanımıza bağlanıp yarattığımız dizini "datapump" dizini olarak atıyoruz.

$ sqlplus / as sysdba 

SQL> create or replace directory dp_dir as '/u01/backups/datapump';

Directory created.

-- Belli bir kullanıcıya bu dizine yazma hakkı vermek istiyorsak aşağıdaki işlemi
yapmalıyız.

SQL> grant read, write on directory dp_dir to koraykey;

2. Veritabanımızda bulunan bir veya birden fazla tabloyu export / import etmek için aşağıdaki işlemleri yapıyoruz.

-- Veritabanımızda bulunan tabloları dışa aktarmak için aşağıdaki komutu kullanıyoruz.

$ expdp koraykey/parolamiz@orcl tables=KRY,KEY directory=dp_dir dumpfile=KRY_KEY.dmp logfile=expdpKRY_KEY.log

-- Veritabanımıza tablo aktarmak için aşağıdaki komutu kullanıyoruz. Burada dikkat
etmemiz Import edeceğimiz tabloların veritabanımızda mevcut olmaması.

$ impdp koraykey/parolamiz@orcl tables=KRY,KEY directory=dp_dir dumpfile=KRY_KEY.dmp logfile=impdpKRY_KEY.log

3. Veritabanımızda bulunan bir şemayı export / import etmek istiyorsak aşağıdaki komutları kullanıyoruz.

-- Veritabanımızda bir şemayı export etmek istiyorsak aşağıdaki komutu kullanıyoruz.

$ expdp koraykey/parolamiz@orcl schemas=koraykey directory=dp_dir dumpfile=koraykey.dmp logfile=expdpkryky.log

-- Veritabanımızda bir şemayı import etmek istiyorsak aşağıdaki komutu kullanıyoruz. Burada dikkat
etmemiz Import edeceğimiz şema içeriğinin veritabanımızda mevcut olmaması.

$ impdp koraykey/parolamiz@orcl schemas=koraykey directory=dp_dir dumpfile=koraykey.dmp logfile=impdpkryky.log

4. Veritabanımızın tamamını export ve import etmek istiyorsak aşağıdaki komutları kullanıyoruz.

-- Veritabanımızın tamamını export etmek için aşağıdaki komutu kullanıyoruz.

$ expdp system/parolamiz@orcl full=Y directory=dp_dir dumpfile=orcl.dmp logfile=expdpORCL.log

-- Veritabanımızı mevcut bir veritabanı üzerine import etmek için aşağıdaki komutu
kullanıyoruz. Burada dikkat edeceğimiz varolan objeleri atlayacaktır. Bu yüzden dönme
işleminde veritabanımızın boş yeni kurulu halde olması gerekmektedir.

$ impdp system/parolamiz@orcl full=Y directory=dp_dir dumpfile=orcl.dmp logfile=impdpORCL.log

5. Veritabanımızda export ve import işlemlerini “dblink” üzerinden yapabiliriz. Örneğin bu işlem sayesinde uzak veritabanında bulunan bir tabloyu import ve export edebiliriz.

-- Veritabanımızda öncelikle "DBLink" yaratıyoruz.

-- Bu işleme başlamadan önce "tnsnames.ora" dosyamıza veritabanı bilgilerini giriyoruz.

$ vim /u01/app/oracle/product/11.2.0.3/db/network/admin/tnsnames.ora

-- Veritabanımıza "sqlplus" ile bağlanıp "public" bir "dblink" yaratıyoruz.

$ sqlplus / as sysdba

SQL> create public database link <link_name>

  2 connect to <user_name>

  3 identified by <password>

  4 using '<service_name>';

<link_name>	--> DBLink İsmimiz
<user_name> 	--> Bağlantı kuracağımız veritabanındaki kullanıcı adı
<password>	--> Bağlantı kuracağımız veritabanındaki parola
<service_name>	--> TNS Dosyamızdaki tanım ismi.

-- Veritabanımızda export işlemi yapabilmek için

$ expdp system/parolamiz@orcl tables=KRY.KEY network_link=DBLINKNAME directory=dp_dir dumpfile=kry.dmp logfile=expdpKEY.log

-- Veritabanımızda import işlemi yapabilmek için

$ impdp system/parolamiz@orcl tables=KRY.KEY network_link=DBLINKNAME directory=dp_dir dumpfile=kry.dmp logfile=impdpKEY.log remap_schema=KRY:KEY

6. Veritabanımızda belli bir zamana veya belli bir “SCN” numarasına göre “export” işlemi yapabiliriz. Bunun için komutlarımızın sonuna aşağıdaki parametreleri eklememiz yeterlidir.

-- Kullanmak için "expdp" komutlarımızın sonuna eklemeliyiz.

-- Belli bir zamana göre export işlemi yapabilmek için

flashback_time=\"to_timestamp\(\'09-05-2013 22:10:00\', \'DD-MM-YYYY HH24:MI:SS\'\)\"

-- Belli bir SCN numarasına göre export işlemi yapabilmek için

flashback_scn=22102012

7. Veritabanımızda “expdp” ve “impdp” komutları ile büyük verilerde işlem yaparken “parallel” parametresi ile yedek alma işlemini hızlandırabiliriz. Bunun için aşağıdaki parametreyi komut satırımıza eklememiz yeterlidir.

parallel=3

8. Veritabanımızda “expdp” ve “impdp” komutları ile neler yapabileceğimiz konusunda yardım almak için aşağıdaki komutları kullanabiliriz.

-- Import aracımızın yardımını kullanmak için

$ impdp help=y

-- Export aracımızın yardımını kullanmak için

$ expdp help=y

Bu makalemizde Oracle Export ve Import araçlarımız olan “expdp” ve “impdp” inceledik. Data detaylı Oracle yedekleme işlemleri için “Oracle Veritabanlarında Backup & Recovery Uygulamaları (Rman)” yazımızı inceleyebilirsiniz.

Başka bir makalede görüşmek üzere…

Bu yazı Oracle kategorisine gönderilmiş ve , , , , , , , , , , , , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.