Jika sudah mempelajari database link antara oracle-oracle, kali ini kita mempelajari bagaimana konfigurasi database link antara Oracle-MySQL.
Pada dasarnya, konsep database link adalah remote database yang bisa dilakukan melalui localhost maupun host yang berbeda.
Untuk tutorial kali ini, kita akan mencoba melakukan konfigurasi database link Oracle-MySQL melalui host yang berbeda.
Contoh kasus: Oracle sebagai master/server yang meremote data yang ada di MySQL, dan MySQL sebagai client/slave sebagai penyedia data, sehingga kita bisa melakukan insert, update, delete pada MySQL melalui Oracle. Host MySQL memiliki IP address: 172.16.16.3 dan MySQL memiliki database dengan nama student.
KONFIGURASI PADA HOST CLIENT/SLAVE (MYSQL)
KONFIGURASI ODBC DRIVER PADA HOST SERVER/MASTER (ORACLE)
Setelah host MySQL selesai dikonfigurasikan, sekarang saatnya melakukan konfigurasi pada host Oracle. Untuk konfigurasi koneksi ke MySQL, perlu menggunakan MySQL ODBC Driver. Secara default, windows tidak menyediakan ODBC Driver untuk MySQL, sehingga harus diinstal terlebih dahulu. Silahkan download MySQL ODBC Driver.
KONFIGURASI NET SERVICE UNTUK KONEKSI ANTARA ORACLE DAN MYSQL
MEMBUAT DATABASE LINK PADA ORACLE UNTUK MEMANGGIL DATA DI MYSQL
Pada dasarnya, konsep database link adalah remote database yang bisa dilakukan melalui localhost maupun host yang berbeda.
Untuk tutorial kali ini, kita akan mencoba melakukan konfigurasi database link Oracle-MySQL melalui host yang berbeda.
Contoh kasus: Oracle sebagai master/server yang meremote data yang ada di MySQL, dan MySQL sebagai client/slave sebagai penyedia data, sehingga kita bisa melakukan insert, update, delete pada MySQL melalui Oracle. Host MySQL memiliki IP address: 172.16.16.3 dan MySQL memiliki database dengan nama student.
KONFIGURASI PADA HOST CLIENT/SLAVE (MYSQL)
- Lakukan konfigurasi secara console melalui CommandPrompt (windows) dan terminal (linux).
- Login ke MySQL menggunakan username MySQL anda (secara default, username=root)
mysql -u root
Jika MySQL anda memiliki password, tambahkan opsi -p untuk memasukkan password user MySQL anda
mysql -u root -p
- Jika anda telah berhasil masuk ke mysql anda, lakukan konfigurasi berikut:
grant usage on *.* to root@localhost with grant option;
Yaitu untuk memberi grant agar user root anda dapat diakses oleh host lain.
- Memanggil nama database yang akan digunakan untuk database link ini
use student;
Pada kasus ini, kita menggunakan database student.
- Kemudian mendaftarkan IP dan user yang dibolehkan untuk mengakses data
grant all on student.* to 'studentuser'@'172.16.16.9' identified by 'studentpass';
Untuk code di atas, yang diperbolehkan untuk mengakses database student ada IP 172.16.16.9 dengan username=studentuser dan password=studentpass
Username dan password tersebut kita deklarasikan sendiri.
Perintah di atas itu memberikan privileges untuk semua akses insert, update, delete sehingga host server (172.16.16.9) bisa mengakses seluruh tabel yang ada di database student (student.*).
- Jalankan perintah berikut untuk mengijinkan privileges tersebut di atas
flush privileges;
KONFIGURASI ODBC DRIVER PADA HOST SERVER/MASTER (ORACLE)
Setelah host MySQL selesai dikonfigurasikan, sekarang saatnya melakukan konfigurasi pada host Oracle. Untuk konfigurasi koneksi ke MySQL, perlu menggunakan MySQL ODBC Driver. Secara default, windows tidak menyediakan ODBC Driver untuk MySQL, sehingga harus diinstal terlebih dahulu. Silahkan download MySQL ODBC Driver.
- Jalankan ODBC Driver (Start -> Control Panel -> Administrative Tool -> Pilih Data Sources ODBC).
- Setelah menampilkan jendela ODBC Data Souce Administrator, pilih tab System DSN.
- Buatlah sebuah data source baru dengan meng-klik tombol Add, kemudian pilihlah MySQL ODBC 5.1 Driver. Kemudian klik tomboh Finish.
- Isi field seperti berikut:
- Data Source Name = mysqlstudent.
- Description = MySQL ODBC 5.1 Driver
- Server = 172.16.16.3 (IP ini merupakan IP dari host yang menggunakan MySQL)
- User = studentuser (username yang telah didaftarkan oleh host MySQL tersebut)
- Password = studentpass (password yang telah didaftarkan oleh host MySQL tersebut)
- Database = pilih database student
- Kemudian tes koneksi dengan menekan tombol Test. Jika sukses, silahkan lanjutkan ke langkah selanjutnya.
KONFIGURASI NET SERVICE UNTUK KONEKSI ANTARA ORACLE DAN MYSQL
- Buatlah script menggunakan notepad untuk koneksi datasource yang telah dibuat di atas menggunakan script berikut:
# HS init parameters # ODBC data source name HS_FDS_CONNECT_INFO = mysqlstudent HS_FDS_TRACE_LEVEL = 0 #---------------------------------------------
mysqlstudent adalah nama Data Source. Kemudian simpan dengan nama initmysqlstudent.ora dan kemudian letakkan pada alamat directory C:\oracle\product\10.2.0\db_1\hs\admin
- Pada alamat direktori C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN edit file listener.ora menggunakan notepad. Akan tetapi alangkah baiknya jika file listener.ora anda backup terlebih dahulu untuk mewaspadai jika terjadi error. Kemudian tambahkan script pada SID_NAME = mysqlstudent pada listener.ora. Gunakan script berikut:
(SID_DESC= (SID_NAME=mysqlstudent) (ORACLE_HOME = C:\oracle\product\10.2.0\db_1) (PROGRAM = hsodbc) )
Lihat gambar berikut untuk penempatan syntax di atas:
- Pada service, restart TNSListener (Run -> ketikkan services.msc -> restart service OracleOraDb10g_home1TNSListener).
- Pada alamat directory C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN, edit script pada file tnsname.ora menggunakan notepad editor, tetapi alangkah baiknya jika file tersebut di backup terlebih dahulu. Tambahkan script berikut:
MYSQLSTUDENT= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SID = mysqlstudent) ) (HS = OK) )
- Untuk cek tnsname yang telah ditambahkan tersebut, jalankan Net Manager kemudian pilih Oracle Net Configuration -> Local -> Service Naming. Silahkan apakah nama MYSQLSTUDENT telah muncul di Net Manager tersebut? jika sudah ada, silahkan melanjutkan ke langkah selanjutnya, apabila belum muncul, ulangi langkah di atas.
MEMBUAT DATABASE LINK PADA ORACLE UNTUK MEMANGGIL DATA DI MYSQL
- Untuk mencoba koneksi mysqlstudent, buatlah sebuah database link dengan nama mysql_student. Gunakan perintah berikut:
create database link mysql_student using 'mysqlstudent'
- Silahkan lihat data yang ada di MySQL menggunakan query berikut:
select * from student@mysql_student
- Untuk insert data ke MySQL, gunakan query berikut:
insert into student@mysql_student values ('07560242', 'Mudafiq Riyan P', 'Malang')
- Jika sudah berhasil, maka kitapun bisa melakukan insert, update, delete, and view data yang ada di MySQL.
Mas, saya mau tanya :
BalasHapussaya mentok di langkah
create database link mysql_student using 'mysqlstudent'
errornya : you have an error in your sql syntax
terus saya juga cari2 sumber lain, katanya di Mysql itu emang ga ada db link (nah lohhh)
itu gimana Mas?
tks
@kalambe: create database link itu di oraclenya, bukan di mysql, mysql hanya sebagai penyedia database aja, oracle yang meremote databasenya
BalasHapusow, iya2 udah bisa :D
BalasHapusmakasih Mas :)
Oiya, saya mau tanya lagi
BalasHapusmembuat koneksi di ORA saya sudah bisa,
tapi pada saat
select * from student@mysql_student
yg tidak bisa. saya nyobainnya di ORA. saya juga sudah buat table student di database student. tapi teteup ga bisa
Mohon pencerahannya :)
table student itu dibuat di mysql, kemudian diakses di oracle... perhatikan service OraListenernya jalan apa gak? seringkali pada service itu mati saat melakukan perubahan di file .ora.
BalasHapusPunyaku error seperti ini
BalasHapus*********************************************************************
Link : "MYPPSDM.REGRESS.RDBMS.DEV.US.ORACLE.COM"
Error : 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 MYPPSDM
MYPPSDM = nama database link ku
Ada solusi????
Error 28545 itu kesalahan settingan..
BalasHapusmungkin ini bisa membantu
https://forums.oracle.com/forums/thread.jspa?threadID=1102303
tankz infonya
BalasHapustanya.
BalasHapusbagaimana kalau keadaannya dibalik, dari mysql bisa view, insert, update data yang ada di oracle? caranya gimana?
izin di catat, dan di post ulang di blog saya.,., :)
BalasHapussangat membantu.,.
terimakasih.,., :)
kalo pake wind 8 gmana?
BalasHapus[SQL] select * from dual@dblink
BalasHapus[Err] ORA-28513: internal error in heterogeneous remote agent
ORA-02063: preceding line from DBLINK
saya errornya disana gan...kenappa yaa
Di oracle sudah berhasil menampilkan data,
BalasHapussaya select * from tb_nama@linkmysql tapi kenapa muncul data hanya 1 row saja ya?
Padahal data di mysql nya bayak,
Perlu di setting apalagi ya mas?
Tks
maaf untuk buka net managernya dimana ya kok saya cari tidak ada
BalasHapusselamat siang mas,
BalasHapusmas saya mau tanya boleh. kan diatas menerangkan bahwa database oracle sebagai masternya dan mysql sebagai clientnya. jika dibalik oracle sebagai client dan mysql sebagai master bisa tidak ya...