Oracle Database Heterogeneous Connectivity

Ada kalanya ketika Anda bekerja menggunakan database Oracle Anda juga ingin melakukan koneksi ke RDBMS lainnya secara seamless misalnya saja melakukan koneksi dari SQL*Plus ke Microsoft SQL Server 2008 yaitu dengan menggunakan suatu teknologi yang dikenal dengan Oracle Database Heterogeneous Connectivity.Sebenarnya cara ini sudah pernah saya lakukan beberapa tahun yang lalu pada saat terlibat di project data warehouse. Hanya saja beberapa bulan terakhir ini saya jadi sering lagi menggunakannya dan sepertinya bagi Anda yang belum sempat mengenal teknologi ini dapat menjadi sebuah solusi jitu.

Skenario yang saya coba jelaskan disini adalah melakukan koneksi ke Microsoft SQL Server 2008 dari SQL*Plus. Berikut ini adalah beberapa software yang saya gunakan :

Pada saat melakukan instalasi Oracle XE secara default ORACLE_HOME di komputer saya terdapat di C:\oraclexe\app\oracle\product\10.2.0\server dan path instalasi Anda mungkin sedikit berbeda. Untuk selanjutnya saya hanya akan mengacu pada ORACLE_HOME untuk menyatakan path tadi. Selain itu saya akan lebih mengacu ke path convention di sistem operasi Unix yaitu dengan menggunakan slash (/) daripada penggunakan backslash (\). Adapun langkah-langkah pengerjaannya adalah sebagai berikut :

ODBC Data Source Settings :

  • Masuk ke ODBC Data Source Administrator seperti terlihat di bawah ini :
    ODBC Data Source Administrator
    Buat Data Source baru dengan cara click tombol Add;
  • Dialog Create New Data Source akan muncul seperti terlihat di bawah ini :
    Create New Data Source
    Untuk driver pilih SQL Server. Akhiri dengan menekan tombol Finish;
  • Pada saat muncul dialog Create a New Data Source to SQL Server ketikkan Northwind di textbox Name dan pilih (local) di listbox Server seperti terlihat di bawah ini :
    Create a New Data Source to SQL Server
    Selanjutnya klik tombol Next;
  • Saya biasa menggunakan authentication dengan memberikan Login ID dan Password seperti terlihat di bawah ini :
    Create a New Data Source to SQL Server
    Selanjutnya klik tombol Next;
  • Pilih checkbox Change default database to: dan pilih Northwind dari listbox seperti terlihat di bawah ini :
    Create a New Data Source to SQL Server
    Selanjutnya klik tombol Next;
  • Setting data source telah berhasil. Akhiri dengan menekan tombol Finish
    Create a New Data Source to SQL Server
  • Selanjutnya akan muncul dialog ODBC Microsoft SQL Server Setup seperti terlihat di bawah ini :
    ODBC Microsoft SQL Server Setup
    Agar lebih memastikan hasil setup click tombol Test Data Source;
  • Apabila semuanya berjalan dengan lancar maka hasilnya akan terlihat seperti di bawah ini :
    SQL Server ODBC Data Source Test
    Selanjutnya akhiri dengan menekan tombol OK;
  • Sekarang data source Northwind sudah tersedia seperti terlihat di bawah ini :
    ODBC Data Source Administrator

Oracle Settings

  • Masuk ke directory ORACLE_HOME/hs/admin kemudian buka file
    inithsodbc.ora. Setelah itu simpan sebagai initNORTHWIND.ora;
  • Edit isi file initNORTHWIND.ora seperti terlihat di bawah ini :
  • HS_FDS_CONNECT_INFO = NORTHWIND
    HS_FDS_TRACE_LEVEL = OFF
    
  • Masuk ke directory ORACLE_HOME/NETWORK/ADMIN kemudian edit file tnsnames.ora dan tambahkan parameter-parameter berikut ini :
  • NORTHWIND =
      (DESCRIPTION=
        (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=15212))
        (CONNECT_DATA=(SID=NORTHWIND))
        (HS=OK)
      ) 
    
  • Masih di directory ORACLE_HOME/NETWORK/ADMIN edit file listener.ora dan tambahkan parameter-parameter berikut ini :
  • LISTENERNWIND =
     (ADDRESS_LIST=
          (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=15212))
          (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
    
    SID_LIST_LISTENERNWIND =
      (SID_LIST=
          (SID_DESC=
             (SID_NAME=NORTHWIND)
             (ORACLE_HOME=C:\oraclexe\app\oracle\product\10.2.0\server)
             (PROGRAM=hsodbc)
           )
      )
    

Test Drive

  • Jalankan Command Prompt sebagai Administrator kemudian masuk ke directory ORACLE_HOME/bin seperti terlihat di bawah ini :
  • Jalankan listener yang baru saja dibuat yaitu LISTENERNWIND dengan perintah lsnrctl start LISTENERNWIND seperti terlihat di bawah ini :
  • Jika dilihat secara lebih teliti maka status dari LISTENERNWIND apabila berjalan dengan sebagaimana mestinya kurang lebih akan terlihat seperti di bawah ini :
  • STATUS of the LISTENER
    ------------------------
    Alias                     LISTENERNWIND
    Version                   TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
    Start Date                23-MAR-2010 15:28:09
    Uptime                    0 days 0 hr. 0 min. 4 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   C:\oraclexe\app\oracle\product\10.2.0\server\network\admin\listener.ora
    Listener Log File         C:\oraclexe\app\oracle\product\10.2.0\server\network\log\listenernwind.log
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=15212)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\PNPKEYipc)))
    Services Summary...
    Service "NORTHWIND" has 1 instance(s).
      Instance "NORTHWIND", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully
    
  • Pengujian selanjutnya adalah dengan melakukan ping terhadap TNS ISENGARD menggunakan perintah tnsping NORTHWIND seperti terlihat di bawah ini :
  • Setelah listener dan TNS berfungsi dengan baik maka langkah selanjutnya adalah melakukan query terhadap data. Tapi sebelum itu mari kita coba query data dari SQL Server Management Studio.

    Dari tampilan di atas terlihat hasil query terhadap tabel Categories;
  • Login sebagai SYSDBA. Langkah ini diambil dengan tujuan membuat schema baru di database Oracle seperti terlihat di bawah ini :
  • Buat schema baru sekaligus hak aksesnya. Setelah itu berikan pula hak untuk membuat database link seperti terlihat di bawah ini :
  • Selanjutnya login sebagai schema yang baru saja dibuat seperti terlihat di bawah ini :
  • Buat database link yang bertujuan agar dapat melakukan koneksi ke SQL Server dari SQL*Plus seperti terlihat di bawah ini :
  • Lakukan query misalnya saja terhadap tabel Categories maka apabila berhasil hasilnya akan terlihat seperti di bawah ini :
  • Berikut ini apabila query tersebut dilakukan dari Toad for Oracle maka hasilnya tampak seperti di bawah ini :
  • Oracle Database Heterogeneous Connectivity bagi saya sangat membantu pada saat kolaborasi data dari beragam RDBMS sehingga tidak terlalu banyak tools yang digunakan selain SQL*Plus. Selamat mencoba dan semoga berhasil.

    Syndicate content