Berikut ini catatanku tentang bagaimana membuat sebuah jembatan data dari Oracle ke MySQL.
Catatanku dibawah ini bercerita tentang hubungan database SIMDUK dengan SIAK. Keduanya adalah jenis Aplikasi Kependudukan yang digunakan di Dinas/Kantor Catatan Sipil. Hanya saja SIMDUK sudah dipensiunkan, dan SIAK adalah penggantinya. Database SIMDUK yang dalam bentuk Informix 5.0 sejauh yang aku tahu hanya memiliki ODBC 16Bit yang bisa berjalan diatas Win3.11 dan tidak didukung oleh JDBC. Karena itu aku mengkonversi data Simduk yang ada di Informix tersebut ke MySQL sebelumnya.
Huh.. Perjuangan yang panjang.
Catatanku dibawah ini bercerita tentang hubungan database SIMDUK dengan SIAK. Keduanya adalah jenis Aplikasi Kependudukan yang digunakan di Dinas/Kantor Catatan Sipil. Hanya saja SIMDUK sudah dipensiunkan, dan SIAK adalah penggantinya. Database SIMDUK yang dalam bentuk Informix 5.0 sejauh yang aku tahu hanya memiliki ODBC 16Bit yang bisa berjalan diatas Win3.11 dan tidak didukung oleh JDBC. Karena itu aku mengkonversi data Simduk yang ada di Informix tersebut ke MySQL sebelumnya.
Huh.. Perjuangan yang panjang.
-
Komputer- Laptop Celeron 1034Mhz RAM 756Mb + HDD 80Gb (Jadul amat yah)- Ms Windows XP SP3- MySQL V 5.1- MySQL ODBC Connection V5.1- Oracle 9.0.1.2
-
Nama Schema Simduk di MySQL yang kumiliki adalah simdukdb
-
Nama Schema/User SIAK di Oracle adalah siakdb
-
Nama Instance Database Oracle adalah backme80
-
Nah urutan kerjanya adalah sebagai berikut:
-
Login ke MySQL menggunakan account root
-
Buat sebuah user baru :
create user SIMDUKDBODBC@localhost identified by ‘PASS123’;
grant all privileges on simdukdb.* to SIMDUKDBODBC@localhost;
Ingat, user name dan password harus ditulis dengan hurup kapital/besar.
-
Buat ODBC MySQL System DSN melalui Control Panel->Administrator->ODBC dengan spesifikasi sebagai berikut :
Data Source Name : simdukdbodbc
Server : localhost
User : SIMDUKDBODBC
Password : PASS123
Database : simdukdb
Tes koneksi dengan menekan tombol Test
-
Buat sebuah file initSIMDUKDBODBC.ora di direktori D:\oracle\ora92\hs\admin dan isikan file tersebut dengan:
HS_FDS_CONNECT_INFO = simdukdbodbc
HS_FDS_TRACE_LEVEL = OFF
Simpan
Edit File D:\oracle\ora92\network\admin\listener.ora dan tambahkan isian dengan :
LISTENERSIMDUKDBODBC =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
SID_LIST_LISTENERSIMDUKDBODBC=
(SID_LIST=
(SID_DESC=
(SID_NAME=simdukdbodbc)
(ORACLE_HOME=d:\oracle\ora92)
(PROGRAM=hsodbc)))
Simpan
-
Edit File D:\oracle\ora92\network\admin\tnsnames.ora dan tambahkan isian dengan :
MYSIMDUKDB =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))
(CONNECT_DATA=(SID=simdukdbodbc))
(HS=OK))
Simpan
-
Jalankan perintah berikut dibawah dari Command Prompt:
lsnrctl reload
lsnrctl start LISTENERSIMDUKDBODBC
-
Login ke Schema siakoff yang telah memiliki izin untuk Connect, Resource dan DBA. Buat database link baru:
create database link simdukdb connect to SIMDUKDBODBC
identified by PASS123 using ‘mysimdukdb’;
-
Test hasil koneksi tersebut dengan mengetikkan perintah, misalnya :
SELECT KODE_WIL, ALAMAT FROM KKTBL@SIMDUKDB WHERE
NO_KK = ‘0250020103231’;
Jika berhasil, maka akan muncul 1 row.
Oh ya, kalo ada masalah, jangan keburu bingung, Coba diperhatikan penggunaan hurup kecil dan besar-nya. Aku sudah berhasil dan Selamat mencoba..
wah bagus pak referensinya, tapi saya kok belom berhasil ya pak, setelah saya create database link trus saya select * from actor@mysql_orcl ; keluar error :
BalasHapus*
ERROR at line 1:
ORA-28545: error diagnosed by Net8 when connecting to an agent
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: preceding 2 lines from mysql_orcl
tp sebelumya saya lsnrctl start LISTENERMYSQL dia eror karena udah ada listener mysql sendiri yang sudah nyala, tetapi setelah saya matikan dulu listener bawaan mysqlnya , terus sya lsnrctl LISTENERMYSQL nya dia jalan, sehingga waktu saya create database link dan tnsping tnsnamenya berhasil, cuma ya waktu saya
select * from actor@mysql_orcl ;
keluar error :
*
ERROR at line 1:
ORA-28545: error diagnosed by Net8 when connecting to an agent
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: preceding 2 lines from mysql_orcl
Kalau bopeh tau versi mysql, odbc mysql dan oracle yg anda gunakan?
Hapuskalau memunculkan lebih dari 1 row bisa atau tidak ya?
BalasHapusTerima kasih
bisa banget, karena saya pernah mengkonversi jutaan baris pakai ini. intinya pada keyword hsqlodbc
Hapus