Sinkronisasi Struktur Database

toad for oracle
toad for oracle

Sinkronisasi struktur database pada dasarnya adalah menyamakan struktur antara 2 database. Misalnya kita ingin mengubah struktur di database A sehingga sama persis dengan database B. Database A disebut database Reference sedangkan database B disebut database Comparison. Pada proses sinkronisasi, struktur di database B akan diubah agar menyerupai struktur di database A. Kenapa kita melakukan sinkronisasi? ada beberapa situasi yg membutuhkan sinkronisasi struktur database:

  1. Sebelum melakukan export/import data, kita harus yakin bahwa struktur database asal dan tujuan harus identik
  2. Jika sebuah project software development menggunakan salinan database untuk bereksperimen maka perubahan struktur database pada database dummy bisa dengan mudah diaplikasikan ke database master
  3. Sinkronisasi juga dapat digunakan untuk mengupdate trigger, view, stored function, stored procedure, package dan bahkan sequence dari database dummy ke database master
  4. dan kondisi-kondisi lain

Syarat untuk melakukan sinkronisasi: harus punya privilege sebagai DBA untuk kedua database baik reference maupun comparison.

Untuk melakukan sinkronisasi database, biasanya saya menggunakan tool TOAD pada database Oracle, langkah-langkahnya adalah sebagai berikut:

  1. Lakukan koneksi ke masing-masing database sebagai user dengan hak DBA
  2. Pilih menu DBA –> Compare Schema
  3. Akan muncul window baru untuk sinkronisasi
  4. Klik tab “Schema”, tentukan koneksi yg akan digunakan serta database(schema) yg akan jadi reference dan comparison
  5. Klik tab “option” untuk memilih objek2 apa saja yang akan disinkronkan, semakin banyak objek yg dipilih maka semakin lama proses sinkronisasi, sesuaikan saja dengan kebutuhan. Jika ingin hasil sinkronisasi benar2 identik maka pilih semua objek.
  6. Pada field “Synchronization Filename” isi lokasi dan nama file sql (*.sql) untuk menyimpan script sinkronisasi
  7. Tekan tombol “Compare” untuk melakukan proses pembandingan antara database reference dengan comparison

Setelah proses pembandingan selesai, struktur database Reference dan Comparison belum berubah, namun pada window sinkronisasi akan muncul 4 tab baru:

  • Result (interactive): Menampilkan daftar objek yg ada di database reference namun tidak ditemukan di database comparison (pada saat sinkronisasi objek-objek ini akan dibuat di database comparison), daftar objek yg tidak ditemukan pada database reference namun ditemukan di database comparison (objek2 ini akan dihapus dari database comparison), serta daftar objek yg ada pada keduanya namun meiliki tipe data atau lebar field yg berbeda (objek2 di database comparison akan dialter sehingga menyerupai objek2 di database reference).
  • Result (RTF): sama saja dengan tab Result(interactive) namun dalam format yg bisa disimpan sebagai file *.rtf sehingga dapat digunakan untuk membuat laporan proses sinkronisasi.
  • Result (summary): Menampilkan ringkasan proses “Compare” yaitu jumlah objek yg akan dibuat, dihapus dan dialter pada saat file sinkronisasi dieksekusi.
  • Sync Sript: Menampilkan isi file script sinkronisasi yg dihasilkan dari proses “Compare”

Sinkronisasi akan dilakukan jika Anda mengeksekusi script sql yg dari dihasilkan proses Compare dan disimpan dengan nama dan lokasi yg sudah anda tentukan di poin 6

Note:

  1. Sinkronisasi struktur database hanya menyamakan STRUKTUR saja, data yg ada di dalam kedua database TIDAK akan bertambah/berkurang (paling2 berubah tipe datanya).
  2. Pastikan anda melakukan backup sebelum proses sinkronisasi (penting banget, apalagi klo baru pertama kali melakukan sinkronisasi)
  3. Ini adalah proses sinkronisasi yg paling simpel, masih banyak fitur2 dan opsi2 untuk sinkronisasi database, untuk selengkapnya silahkan obrak abrik manualnya TOAD, he3
  4. Jika menginginkan sinkronisasi yang customizable dan lebih fleksibel, anda bisa mengedit sendiri script sinkronisasi sebelum dieksekusi di database comparison.

13 thoughts on “Sinkronisasi Struktur Database

  1. kalo di mysql gimana caranya yah ?

    saya punya kasus seperti ini ..

    saya punya 3 server database yang terpisah (lokasi), masing2 server digunakan untuk input data, sehingga data di masing2 server tentunya berbeda..

    gimana caranya mensinkronkan data diantara ketiga db ini sehingga semua server memiliki data yang sama..

    1. Sebetulnya saya sendiri belum pernah mencoba sinkronisasi database di mysql, tapi prinsipnya sama saja dengan di Oracle, pasti isinya script DDL semua. Jadi kalo untuk mysql bisa pake cara yang sama, kebetulan ada juga TOAD untuk mysql, bisa di donlot di sini tapi cek dulu versi mysql nya, biar cocok ama TOAD nya.
      Selamat mencoba Mas Mamat, jangan lupa databasenya di backup dulu ya, semoga sukses🙂

  2. sori-sori, ralat…

    baru mbaca lagi komennya mas mamat, jawaban di atas kuralat ya mas.

    Mas Mamat, untuk menyamakan data GAK bisa pake cara kayak yang saya jelaskan di posting ini. Ini hanya bisa dipake buat nyamain struktur databasenya saja.

    Kalo Mas Mamat mau nyamain datanya itu agak repot soalnya kan bisa jadi datanya ada yang harus diupdate/dihapus (kecuali kalo cuman nginsert data doank),

    Kalo saran saya sih coba deh sinkronkan dulu struktur databasenya, abis itu dari masing-masing tabel yg ada di 3 database (yg terpencar di 3 lokasi itu) digenerate script DML nya (silahkan obrak abrik manualnya TOAD) trus ntar script DML nya itu di jalankan di sebuah database master nya

    Tapi gak sesimpel itu juga sih mas, takutnya ntar primary key-nya ada yg duplikat (walopun bisa diakali pake sequence) dan masih banyak lah kendala lain. Dan yang paling penting, sebelum mulai bereksperimen, BACKUP DULU databasenya.

    Btw di t4 kerja yang lama saya pernah dapet kerjaan kayak gitu (nyamain struktur dan data dari 2 database) dan ternyata emang ribet, kudu ati2 n SERING2 BACKUP, hehehe…

    so, gudlak ya Mas Mamat, thx dah mamapir🙂

  3. mas wahyu, terima kasih infonya, sayangnya software TOAD itu belum ada yang untuk platform linux ya ? padahal featurenya banyak yang menarik, terutama pada kemampuanya unt sinkronisasi 2 database.

    1. Sama-sama mas Heru.
      Kalo soal Toad untuk Linux saya emang belum pernah nyoba (maklum pengguna Windows, he3). Tapi pertanyaan mas Heru juga muncul di forum ini.
      Monggo dibaca, sapa tau menemukan jawabannya. Makasih dah mampir🙂

    1. mas, kalo mau menyamakan data agak rumit, kecuali klo sekedar menyalin/memindahkan data dari server A ke B, kalo untuk itu bisa pake fasilitas export import oracle.
      Kalo mas taufik benar2 ingin sinkronisasi data, mungkin perlu ada software (bisa juga pake script pl/sql) yg bisa membaca data kedua server A dan B kemudian membandingkan tiap record data dan menemukan mana yg lebih update (bisa jadi kan beberapa data di server A lebih update dan pada saat bersamaa beberapa data di server B lebih update) lalu mengupdate data pada server yg bersangkutan secara otomatis.
      Kalo untuk yg itu saya belum tau mas, masih newbie… hehehe

  4. saya punya kasus seperti ini mas..

    1. Perusahaan diasumsikan memiliki perusahaan induk dan cabang, perusahaan induk memiliki koneksi internet sedangkan perusahaan cabang ada yang memiliki namun mayoritas tidak terhubung dengan koneksi perusahaan pusat
    2.Perusahaan ingin mendapatkan data dari perusahaan tanpa harus menambah koneksi (membangun jaringan baru)
    3. Semua data analisa jabatan harus memiliki summary report untuk berbagai kalangan
    4. Pimpinan perusahaan juga menginginkan data dari summary report dapat ditampilkan di device mobile

    nah menurut mas sinkronisasi database nya gmn???

    1. mba, untuk sinkronisasi database yg sifatnya menyamakan struktur data saja (seperti yg saya tulis di posting ini) hanya bisa dilakukan jika kedua server terhubung online, baik melalui internet maupun LAN, jadi klo gak terhubung online ya gak bisa pake cara yang saya jelaskan di posting ini.
      Klo yg mba anggun maksud adalah ingin menyamakan data (bukan hanya strukturnya) saja, silahkan baca komentar saya untuk mas taufik di atas.
      Klo pertanyaan nomor 3 saya ga bisa jawab karena menyangkut proses bisnis perusahaan, nomor 4 mah masalah aplikasi dan sistem yang dibangun mba, klo sistem nya menyediakan fasilitas untuk itu dan datanya juga tersedia saya rasa gak masalah. Demikian jawaban saya, maaf klo tidak banyak membantu🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s