3
Mar

Koneksi Oracle Transparent Gateway dengan MS SQL Server

   Posted by: Mas Rony   in Oracle

Oracle Transparent Gateway
Oracle transparent gateway adalah salah satu produk oracle yang berguna untuk menghubungkan database oracle dengan database non oracle. Kompatibilitas gateway ini sangat luas dan multiple platform, diantaranya mencakup standard protokol APPC (Advanced Program-to-Program Communication), standard protokol DRDA (Distributed Relational Database Architecture) dari Open Group, IBM WebSphere MQ, Teradata, Sybase, SQL Server, dan database lain-lain yang support dengan standard prokokol yang ada. Untuk daftar database yang bisa disupport oleh oracle transparent gateway dapat dilihat di situs resmi oracle.

Implementasi koneksi Oracle Transparent Gateway dengan SQL Server
Dalam percobaan kali ini, implementasi koneksi oracle transparent gateway (selanjutnya disingkat OTG, biar ga capek nulisnya) dibatasi hanya dengan SQL Server saja. Mesin yang digunakan ada 3 yaitu :

  1. Sebagai database server dengan spesifikasi :
    OS : Windows 2003 SP2
    Computer name : JTIM-ORADB
    IP : 192.168.1.1
    DB : Oracle Database versi 10.2.0.1
    Instance : orcl
    Schmema user/password : scott/tiger
  2. Sebagai oracle transparent gateway dengan spesifikasi :
    OS : Win XP SP 3
    Computer name : JTIM-OTG
    IP : 192.168.1.2
    OTG : Oracle Transparent Gateway versi 10.2.0.1
    Gateway SID : tg4msql
  3. Sebagai database SQL Server dengan spesifikasi :
    OS : Windows 2003 SP2
    Computer name : JTIM-SQL
    IP : 192.168.1.3
    DB : MS SQL Server 2000 SP4
    DB Yang akan dikoneksikan : Northwind
    DB user/password : sa/sa

Sebenarnya Oracle database dan OTG bisa diinstal dalam satu mesin asal oracle home-nya ditempatkan di folder yangberbeda. Dalam percobaan kali ini sengaja dibuat menggunakan 3 mesin supaya lebih mudah untuk menganalisa masalah apabila koneksi tidak berhasil dilakukan.
Environment ketiga mesin ini dianggap sudah siap digunakan (kecuali oracle transparent gateway). Di tulisan ini tidak membahas instalasi windows maupun instalasi database baik itu oracle maupun sql server.

Instalasi Oracle Transparent Gateway
Konfigurasi di Win XP : pertama-tama, yang harus dilakukan adalah menginstall OTG terlebih dahulu. Lakukan instalasi seperti menginstall oracle database, dan pada saat tampil menu list OTG pilih Oracle Transparent Gateway for Microsoft SQL Server. Kemudian di menu selanjutnya masukkan nama server sql : JTIM-SQL di isian Microsoft SQL Server, dan nama database sql : Northwind di isian Microsoft SQL Database, dan lanjutkan proses instalasi sampai dengan selesai. Setelah instalasi selesai, cek hasil instalasi di $oracle_home/tg4msql. Pada percobaan ini $oracle_home ditempatkan di drive D di folder D:\oracle\product\10.2.0\tg_1.

- File inittg4msql.ora
Buka file inittg4msql.ora dengan editor yang anda sukai yang berada di folder $oracle_home/tg4msql/admin. Isi file tersebut kurang lebih seperti ini :

# ——————————-
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server

#
# HS init parameters
#
HS_FDS_CONNECT_INFO=JTIM-SQL.Northwind
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
# ——————————-

Kemudian tambahkan dengan satu entry seperti dibawah ini :
HS_FDS_FEFAULT_OWNER=sa
dan ubah beberapa parameter sehingga menjadi seperti ini :

# ——————————-
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server

#
# HS init parameters
#
HS_FDS_CONNECT_INFO=JTIM-SQL.Northwind
HS_FDS_FEFAULT_OWNER=sa
HS_FDS_TRACE_LEVEL=DEBUG
# HS_FDS_RECOVERY_ACCOUNT=RECOVER
# HS_FDS_RECOVERY_PWD=RECOVER
# ——————————-

Parameter ini dibuat untuk memudahkan pengetesan koneksi yang sedang kita buat. Penulisan untuk HS_FDS_CONNECT_INFO sebenarnya bisa juga dibuat seperti ini :
HS_FDS_CONNECT_INFO=”SERVER=192.168.1.3;DATABASE=Northwind”

- File hosts
Kemudian edit file hosts di C:\Windows\system32\drivers\etc dan tambahkan dengan baris ip dan komputer name sql server seperti ini :

127.0.0.1 localhost
192.168.1.3 JTIM-SQL

- File listener.ora
Matikan listener terlebih dahulu, caranya dari command prompt ketikkan :

C:\> lsnrctl stop

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 – Production on 03-MAR-2009 14:46:53
Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
The command completed successfully

Buka file listener.ora di folder $oracle_home/NETWORK/admin, dan edit file tersebut sehingga menjadi seperti ini :

# ———————-

# listener.ora Network Configuration File:

D:\oracle\product\10.2.0\tg_1\network\admin\listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\tg_1)
(PROGRAM = extproc)

)

(SID_DESC =
(SID_NAME = tg4msql)
(ORACLE_HOME = D:\oracle\product\10.2.0\tg_1)
(PROGRAM = tg4msql)
)
)

LISTENER =

(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = JTIM-OTG)(PORT = 1234))
)

)

# ———————-

Notes : Port standard oracle adalah 1521, dalam artikel ini sengaja dibuat menjadi port 1234.
Kemudian simpan konfigurasi file tersebut, dan jalankan listener dari command prompt :

C:\> lsnrctl start

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 – Production on 03-MAR-2009 14:54:42
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting tnslsnr: please wait…
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 – Production
System parameter file is D:\oracle\product\10.2.0\tg_1\network\admin\listener.ora
Log messages written to D:\oracle\product\10.2.0\tg_1\network\log\listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=JTIM-OTG)(PORT=1234)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 – Production
Start Date 03-MAR-2009 14:54:45
Uptime 0 days 0 hr. 0 min. 3 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File D:\oracle\product\10.2.0\tg_1\network\admin\listener.ora
Listener Log File D:\oracle\product\10.2.0\tg_1\network\log\listener.log

Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=JTIM-OTG)(PORT=1234)))
Services Summary…
Service “PLSExtProc” has 1 instance(s).
Instance “PLSExtProc”, status UNKNOWN, has 1 handler(s) for this service…
Service “tg4msql” has 1 instance(s).
Instance “tg4msql”, status UNKNOWN, has 1 handler(s) for this service…
The command completed successfully
C:\>

Konfigurasi listener sudah selesai dilakukan, dan OTG telah siap dipergunakan.

- File tnsnames.ora
Untuk melakukan pengetesan konfigurasi, edit file tnsnames.ora di folder $oracle_home/NETWORK/admin, dan tambahkan parameter yang ada sehingga menjadi seperti ini :

# ————–
# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\tg_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO))
)

tg4msql =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP) (HOST = JTIM-OTG) (PORT = 1234))
(CONNECT_DATA =
(SID = tg4msql))
(HS=OK))
# ————–

Simpan file tersebut, dan lakukan pengetesan koneksi OTG ini dari command prompt :

C:\> tnsping tg4msql

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 – Production on 03-MAR-2009 15:04:34
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
D:\oracle\product\10.2.0\tg_1\network\admin\sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=JTIM-OTG) (PORT=1234)) (CONNECT_DATA= (SID=tg4msql)) (HS=OK))
OK (30 msec)

Instalasi dan konfigurasi Oracle Transparent Gateway telah selesai dilakukan.

Konfigurasi di Server Database
Di server oracle database, edit file tnsnames ora di folder $oracle_home/NETWORK/admin, dan tambahkan parameter seperti di bawah ini :

tg4msql =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = 192.168.1.2)
(PORT = 1234))
(CONNECT_DATA =
(SID = tg4msql))
(HS = OK))

Dan lakukan pengetesan koneksi server oracle database dengan komputer OTG dari command prompt, seperti contoh diatas seperti ini :

C:\> tnsping tg4msql

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 – Production on 03-MAR-2009 15:29:25
Copyright (c) 1997, 2005, Oracle.  All rights reserved.
Used parameter files:
C:\oracle\product\10.2.0\tg_1\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)
(PORT=1234)) (CONNECT_DATA=(SID=tg4msql)) (HS=OK))
OK (30 msec)

Kemudian buat database link dari user schema yang ingin terkoneksi ke database sql server yaitu user scott dengan menggunakan nama dblink TESLINK :

C:\> sqlplus scott/tiger@ORCL

SQL*Plus: Release 10.2.0.1.0 – Production on Tue Mar 3 16:29:00 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OLAP and Data Mining options

SQL> create database link TESLINK connect to sa identified by sa using ‘TG4MSQL’;

Database link created.

SQL> select count(*) from orders@TESLINK;

COUNT(*)
———-
830

Implementasi koneksi Oracle Transparent Gateway dengan MS SQL Server telah berhasil.

Tags: , , ,

This entry was posted on Tuesday, March 3rd, 2009 at 5:20 PM and is filed under Oracle. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

5 comments so far

 1 

wah… bagus nih…. bisa jd referensiku…thank’s yo mas….

March 31st, 2009 at 2:09 AM
 2 

wiiiee,… Mantap mas,… lengkap dan jelas sekali,…
kapan-kapan mau coba ah,.. so kalo ada kendala mohon pencerahannya ya mas :)

March 31st, 2009 at 2:13 AM
 3 

@ Den^GophieL
Monggo dicoba aja… tapi yang single server nunggu patch turun dari langit :p

@ Santho Marshall…
Kalo kamu bagian nge-patch aja to’
Bentar lagi cd-nya datang dari HO. qe3..
Kok kamu belum pasang gravatar to’ ? Kan dah punya blog.. Pasang dulu sono…….

March 31st, 2009 at 12:02 PM
 4 

Mantapsss Bozzz, bisa di copas nggak di grup kita??

March 31st, 2009 at 5:54 PM
 5 

@ Hardie go ahead.. artikel ini bebas utk didistribusikan kok. Jgn lupas kasih linknya. Dah cek gajian lom ? :-p

March 31st, 2009 at 6:31 PM

Leave a reply

Name (*)
Mail (will not be published) (*)
URI
Comment