Jumat, 11 Januari 2013

CONECTING ORACLE (LINUX) TO SQL SERVER


Database Oracle di rekomendasikan di install di OS berbasis UNIX, yang umum dipakai (atau penulis sering pakai, RED) adalah Solaris atau linux. Nah suatu saat Oracle yang di install di Linux (RHEL 4) membutuhkan koneksi ke MS SQL Server, secara teoritis bisa, namun membutuhkan ODBC Driver untuk MS SQL Server tersebut. Kalau diplatform Windows mungkin mudah untuk membuatnya tapi dilinux?
Nah berikut adalah beberpa langkah untuk dapat mengkoneksikan Oracle di Linux ke MS SQL Server di windows.
Install odbc di linux
Download unix odbc dari http://www.unixodbc.org/
Unixodbc akan di dapat dalam bentuk gzip maka yang dilakukan adalah :
1. copy the unixODBC*.tar.gz file somewhere you can create files and directories
2. gunzip unixODBC*.tar.gz
3. tar xvf unixODBC*.tar
Lalu masuk ke folder yang terbentuk saat extraksi dengan
cd unixODBC
Pastikan anda sebagai root
Kemudian jalankan
./configure --enable-gui=no
Dan setelah semua proses selesai tanpa ada error lanjutkan dengan
make
make install
setelah selesai semua proses tanpa ada error, kemudian pastikan :
odbc_config --prefix

Default output
:
/
usr/local
odbc_config --odbcinstini
Default output:
/
usr/local/etc/odbcinst.ini
odbc_config --odbcini
Default output:
/
usr/local/etc/odbc.ini
Install SQL Server Driver (FreeTDS)
Download freeTDS dari http://www.freetds.org/
Lalu extrak freeTDS dengan langkah :
# tar zxvf freetds-0.63.tar.gz
# cd freetds-0.63
Seting environtment variable dengan mengedit file /etc/profile dan menambahkan script berikut pada akhir file tersebut :
#
# TDS
#
SYBASE=/usr/local/freetds
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$SYBASE/lib

export SYBASE LD_LIBRARY_PATH
Lalu lakukan instalasi dengan mengeksekusi perintah berikut dari folder freeTDS hasil ekstraksi tadi :
# ./configure --with-tdsver=8.0 --with-unixodbc=/usr/local
# make
# make install
Freetds driver akan terinstal di /usr/local/lib dengan file driver libtdsodbc.so
Configure driver dan DSN di ODBC
Register ODBC Driver ke unixODBC
Agar unixODBC dapat mengenali Driver SQL Server yang baru diinstall maka harus melakukan langkah berikut :
- Buat file baru dengan nama tds.driver.template
- Isikan file tersebut dengan script berikut
[FreeTDS]
Description = v0.63 with protocol v8.0
Driver = /usr/local/freetds/lib/libtdsodbc.so
- Jalankan perintah di bawah dari folder dimana file diatas di buat
# odbcinst -i -d -f tds.driver.template
Membuat DSN
Buat file baru dengan nama tds.datasource.template dan isikan dengan script berikut :
[MSSQLTestServer]
Driver = FreeTDS
Description = Northwind sample database
Trace = No
Server = 192.168.1.25
Port = 1433
Database = Northwind
Sesuaikan nama DSN, Server, dan Database sesuai dengan kebutuhan.
Kemudian jalankan command berikut :
$ odbcinst -i -s -f tds.datasource.template
# odbcinst -i -l -s -f tds.datasource.template
Test Driver dan DSN
Untuk testing gunakan tool bawaan unixODBC yaitu isql dengan jalankan perintah berikut :
$ isql -v MSSQLTestServer [username] [password]
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
Jika muncul seperti di atas maka sudah berhasil.
Setting HSODBC (ORACLE)
Yang harus di configure adalah :
1. Listener
2. Tnsnames
3. Init.ora dari subsystem hs
4. Oracle database
1. Listener
Listener membutuhkan SID baru seperti :
(SID_DESC =
(SID_NAME = hsodbc)
(ORACLE_HOME = /home/oracle/server/10.2.0/)
(PROGRAM = hsodbc)
(ENVS=LD_LIBRARY_PATH=/home/oracle/server/10.2.0/lib:/home/odbc/dd/lib)
)
Sesuaikan ORACLE_HOME dan ENVS dengan instalasi.
Edit file /apps/oracle/product/10.2/db10g/network/admin/listener.ora menjadi seperti :
# listener.ora Network Configuration File: /apps/oracle/product/10.2/db10g/netwo
rk/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = hsodbc)
(ORACLE_HOME = /apps/oracle/product/10.2/db10g)
(PROGRAM = hsodbc)
(ENVS=LD_LIBRARY_PATH=/apps/oracle/product/10.2/db10g/lib:/usr/local/lib)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oms)(PORT = 1521))
)
)
)
Restart listener.
2. TNS Name
Masukkan alias baru untuk HSODBC seperti :
SQL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))
)
(CONNECT_DATA =
(SID = hsodbc)
)
(HS=OK)
)
3. Init.ora
Ubah file $ORACLE_HOME/hs/admin/inithsodbc.ora menjadi seperti :
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent.
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = MSSQLTestServer
HS_FDS_TRACE_LEVEL = off
HS_FDS_SHAREABLE_NAME = /usr/local/lib/libodbc.so
#
# ODBC specific environment variables
#
set ODBCINI=/usr/local/etc/odbc.ini
#
# Environment variables required for the non-Oracle system
#
#set =
HS_FDS_CONNECT_INFO adalah DSN yang digunakan.
HS_FDS_SHAREABLE_NAME adalah library yang di gunakan
set ODBCINI adalah lokasi odbc.ini
4. Configuring database
Yang harus dilakukan saat ini adalah membuat database link :
create [public] database link
connect to identified by using '';
contoh :
CREATE DATABASE LINK sqlserver
CONNECT TO "sa" IDENTIFIED BY "sa" USING 'hsodbc';
Jika sudah berhasil maka test query dari sqlplus :
select * from "EMP"@sqlserver;
dimana EMP adalah table sql server dan sqlserver adalah nama dblink.
Jika berhasil maka conection selsai…..

Popular Posts

Kakashi Turning Into A Stump