8 Kasım 2012 Perşembe

Oracle: Veritabanları arası veri kopyalama işlemi

Merhaba,
Bu yazı sql plus marifetlerini kullanarak iki veritabanı arasında veri kopyalama işlemini nasıl yapabileceğiniz hakkında bilgiler içermektedir.
Çoğu zaman üretim ortamında bulunan veriyi test ve geliştirme ortamlarında da oluşturup test veya performans amaçlı çalışmalar yapmak isteriz.
Burada en büyük problem genel olarak veri kaynağı bulamamak veya veriyi üretim ortamlarından taşırken karşılaştığımız zorluklardır.
Uzun lafın kısası bu tarz işlemler için ben aşağıdaki şekilde veri taşıma işlemleri gerçekleştiriyorum, yöntemin tabiki bazı eksiklikleri var ama işi büyük ölçüde hızlandırdığını söyleyebilirim.


Yöntemin eksikleri şöyle: 
1. Eğer copy cümlesini replace komutu ile birlikte kullanırsak veri içeriği yeni bir tablo oluşturulup bu tablo içerisine kaydediliyor, bu nedenle tablo üzerindeki çeşitli bileşenleri kaybediyoruz (grant, synonym, constraint v.b.) 
2. Eğer replace komutunu kullanmaz ise 


SQL*Plus üzerinde aşağıdaki syntax ile kopyalam işlemini gerçekleştirebilirsizin:

COPY FROM <>/<>@<> TO
          <>/<>@<> REPLACE
          <> USING <>




 

Örnek olarak kullandığım bir işlem çıktısını yapıştırıyorum:
         
SQL*Plus: Release 11.2.0.1.0 Production on Sal Mar 13 10:02:46 2012
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
Kullanıcı adını girin: <>
Parolayı girin:
Ba­lantı:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL> COPY FROM prod_user/prod_pass@prod_db TO test_user/test_pass@test_db REPLACE EMPLOYEE USING SELECT * FROM EMPLOYEE

Dizi getirme/bağlama boyutu: 15. (dizi boyutu 15)
Yapıldığında kaydedecek. (copycommit: 0)
Maksimum long boyutu: 80. (long: 80)
--

Popüler Yayınlar