">

Ora2pg Kurulumu Oracle dan Postgresql'e Geçiş

Ora2pg Kurulumu Oracle dan Postgresql'e Geçiş

Merhaba,

 
Oracle veri tabanlarınızdan postgresql'e geçmek için kullanılacak en iyi toollardan biri hatta en iyisi olan ora2pg'nin centos üzerine kurulumunu anlatacağım.
 
Öncelikle oracle client kurulumu yapıyoruz. aşağıdaki komutları sıra ile çalıtırırsanız kurulumu yapmış olursunuz. default olarak /usr/lib/oracle/19.5/client64 dizinine kurulur.
  • yum install https://download.oracle.com/otn_software/linux/instantclient/195000/oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm -y
  • yum install https://download.oracle.com/otn_software/linux/instantclient/195000/oracle-instantclient19.5-sqlplus-19.5.0.0.0-1.x86_64.rpm -y
  • yum install https://download.oracle.com/otn_software/linux/instantclient/195000/oracle-instantclient19.5-devel-19.5.0.0.0-1.x86_64.rpm -y

Aşağıdaki komutlar çalıştırılır.

  • sh -c "echo /usr/lib/oracle/19.5/client64/lib/ > /etc/ld.so.conf.d/oracle-instantclient.conf"
  • ldconfig
Aşağıdaki dizine gidilerek tnsnames.ora  dosyası oluşturulur ve aşağıdaki kısım yazılır. (ip_adress, service_name ve 1521 yazan kısımlar kendi oracle veri tabanınıa göre değiştirilmeli.)
  • cd /usr/lib/oracle/11.2/client64/lib/network/admin
  • vim tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ip_adress)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = service_name)
    )
  )
 
Daha sonra aşağıdaki değişkenler set edilir.
  • export ORACLE_HOME=/usr/lib/oracle/19.5/client64/lib
  • export LD_LIBRARY_PATH=/usr/lib/oracle/19.5/client64/lib
Aşağıdaki komutlar sıra ile çalıştırılır.
  • yum install epel-release
  • yum install gcc
  • yum install perl-CPAN
  • yum install perl-String-Random
  • yum install perl-Net-SSLeay
  • yum install perl-IO-Socket-SSL
Sonra pel'un sehell ekranında aşağıdaki komutları sıra ile çalıştırılmalı. bunları çalıştırmadan önce ORACLE_HOME ve LD_LIBRARY_PATH'in set edildiğinden emin olun.
  • perl -MCPAN -e shell   (bu komut ile bağlandıktan sonra aşağıdaki komutları sıra ile çalıştırın.)
  1. install YAML
  2. install DBD::Oracle
  3. install String::Random
  4. install Time::HiRes
Bu kurulumlar bittikten sonra ora2pg uygulamamızı indirim kuralım.
  • wget https://yum.postgresql.org/testing/11/redhat/rhel-7.5-x86_64/ora2pg-20.0-1.rhel7.noarch.rpm
  • rpm -Uvh --nodeps ora2pg-20.0-1.rhel7.noarch.rpm
Sonrasında istediğiniz bir dizinde ora2pg projesi oluşturulur. proje_ismi yazan kısma istediğiniz ismi verebilirsiniz
  • mkdir -p /db/ora2pg/project/
  • ora2pg --project_base /db/ora2pg/project/ --init_project Proje_ismi
Kurulumumuz tamamlandı artık ora2pg.conf dosyamızı konfigure edip oracle veri tabanınından dataları alıp postgresql veri tabanına atabiliriz.
  • cd /db/ora2pg/project/ekip/config
  • vim ora2pg.conf    (bu dosyanın içerisinde aşağıdaki kısımları değiştirmemiz gerekiyor oracle veri tabanına bağlanmak için.)
# Set the Oracle home directory
 
ORACLE_HOME     /usr/lib/oracle/19.5/client64/lib
 
# Set Oracle database connection (datasource, user, password)
 
ORACLE_DSN      dbi:Oracle:ORCL
 
ORACLE_USER     eyilmaz
 
ORACLE_PWD      şifre
 
Artık bu konfig sonrasında oracle veri tabanımıza erişim sağlayabildik şimdi tablo ve procedure için bir örnek yaparak sonlandıralım yazımızı.
  • Ora2pg tablo export'u için:
ora2pg -c /db/ora2pg/project/Proje_ismi/config/ora2pg.conf --namespace schema_name --allow tablo_ismi --out tablo_ismi.sql
  • Ora2pg import tablo için:
psql -U db_user -c "set search_path TO migration;" -c "DROP TABLE tablo_ismi;" -c "i schema/tablo_ismi.sql" db_name
  • ora2pg procedure export ve import: (aşağıdaki export sonrası çıkan dosyayı psql ile bağlanıp çalıştırabilirsiniz.)
ora2pg -p -c /db/ora2pg/project/proje_ismi/config/ora2pg.conf --allow procedure_ismi -t PROCEDURE
 
İstaerseniz Ora2pg sizin için migration süresini adam gün üzerinden hesaplayan bir raporda oluşturuyor. Aşağıdaki komut ile bu raporu alabilirsiniz html formatta.
  • ora2pg -c /db/ora2pg/project/proje_ismi/config/ora2pg.conf -t SHOW_REPORT --namespace schema_name --estimate_cost --dump_as_html > report.html
Umarım Faydali olmuştur...

 

Yorumlar

Henüz yorum yapılmadı.

Yorum Yapın