Pengertian dan Konfigurasi Database Mirroring di SQL Server


A. Pengertian
Database Mirroring adalah fiture pada SQL Server yang muncul sejak versi 2005, fitur ini memungkinkan kita untuk mempunyai duplikasi (copy) database yang berada di server/instance lain yang berjalan secara realtime dan bersinkronisasi secara realtime juga dengan database utama, perannya juga disebut dengan standby copy yang artinya jika ada sesuatu yg terjadi dengan database/server utama maka kita dapat langsung menggunakan database mirror ini untuk dijalankan sebagai database  utama atau yang akan digunakan oleh aplikasi.
Penggunaan database mirroring ini akan mengurangi beberapa kendala seperti data loss (banyaknya data/transaksi yang tidak tersimpan saat server terkendala) dan server downtime (lamanya waktu server tidak bisa diakses). Jadi penggunaan database mirroring ini tidak menghilangkan 100% kendala yang terjadi namun meminimalisir besarnya dampak dari kendala yang terjadi.
Dalam Database Mirroring yang optimal, setidaknya kita memerlukan 3 server/instance yang masing-masing kita sebut dengan PRINCIPAL, MIRROR, dan WITNESS.
- PRINCIPAL adalah server/instance yang menjadi tempat berjalannya database utama/asli yang mana setiap perubahannya akan dilakukan juga di database pada server mirror.
- MIRROR adalah server/instance yang menjadi backup dari PRINCIPAL. 
- WITNESS adalah server/instance yang dibutuhkan agar proses pergantian server/instance (dari mirror menjadi principal) dapat dilakukan.

B. Konfigurasi
1. Seperti yang disebutkan diatas, kita memerlukan 3 instance/server yang berjalan jadi jika hanya memiliki 1 instance saja silahkan buat lagi 2 instance lainnya (caranya bisa dilihat pada materi minggu lalu). Jika sudah memiliki 3 instance silahkan lakukan koneksi pada ketiga instance tersebut dan pastikan semua instancenya dapat berjalan dengan baik. 
Skenario yang akan kita lakukan disini adalah instance HACKRATIVE menjadi PRINCIPAL, instance LAB1 menjadi MIRROR, dan instance LAB2 yang akan menjadi WITNESS. Silahkan sesuaikan dengan instance yang kalian miliki.

2. Sekarang silahkan tentukan database yang akan digunakan sebagai database utama dan akan di mirroring (yang ada pada instance PRINCIPAL, punya saya instance HACKRATIVE), jadi jika belum memiliki sebuah database silahkan buat dulu database baru atau jika sudah ada database yang digunakan sebelumnya silahkan gunakan database tersebut (dalam contoh ini yang saya gunakan adalah database dengan nama UTSDBA1).

3. Sekarang kita perlu memastikan bahwa database UTSDBA1 ini berada pada mode FULL RECOVERY, jadi silahkan klik kanan pada database UTSDBA1 lalu pilih Properties, sekarang jendela Database Properties akan muncul dan silahkan buka page Option lalu pastikan bahwa Recovery Modelnya diset ke Full, jika sudah silahkan klik tombol OK yang ada pada jendela Database Properties.

4. Langkah selanjutnya adalan membackup database, jadi database UTSDBA1 ini akan kita backup terlebih dahulu, caranya klik kanan pada database UTSDBA1 lalu pilih Task, lalu klik Back Up. Maka sekarang akan muncul jendela Back Up Database akan muncul, kita akan melakukan Full Backup jadi silahkan masuk ke page General dan pastikan Backup type nya adalah Full, lalu pastikan juga Destination berada pada lokasi yang dapat anda jangkau (disini saya simpan pada folder dengan path D:\SQL Server\UTSDBA1_FULL.bak), jika sudah silahkan klik tombol OK. Jika proses backup selesai akan ada jendela notifikasi The backup of the database UTSDBA1_FULL completed succesfully, jadi silahkan klik lagi tombol OK pada notifikasi tersebut. Note: materi backup ini juga ada materi minggu sebelumnya jadi jika belum terlalu faham silahkan dibuka kembali materi backupnya.

5. Sekarang kita berpindah ke instance MIRROR (disini yang saya gunakan adalah instance LAB2). Di instance LAB2 kita akan melakukan restore database UTSDBA1, caranya klik kanan pada folder Databases lalu klik Restore Databases. Sekarang jendela Restore Database akan muncul, pada jendela tersebut silahkan masuk dulu ke page General, lalu atur Source ke Device dan arahkan lokasinya ke file backup yang tadi kita buat pada langkah sebelumnya (klik tombol browse yang bertanda … ), setelah itu silahkan masuk ke page Files dan disana silahkan ceklis pada Relocate all files to folder, setelah itu silahkan masuk ke page Options dan disana silahkan ubah Recovery State menjadi RESTORE WITH NORECOVERY, barulah sekarang klik tombol OK pada jendela Restore Database. Jika recovery berhasil maka akan ada jendela konfirmasi Database ‘UTSDBA1’ restored successfully, klik lagi tombol OK. Untuk lebih jelasnya silahkan lihat gambar dibawah ini:
  
6. Sekarang kita akan melakukan pengaturan mirroringnya, caranya kembali lagi ke instance PRINCIPAL (HACKRATIVE) lalu buka lagi folder Databases, lalu klik kanan pada database UTSDBA1, lalu pilih Tasks, lalu klik Mirror. Maka sekarang jendela Database Properties akan muncul dan posisinya ada pada Page Mirrororing, disini silahkan klik pada tombol Configure Security, lalu ikuti langkah-langkah yang ada pada gambar dibawah ini (lihat dulu gambarnya lalu baca keterangannya agar lebih jelas): 
Keterangan: 
- Gambar 1 : Langsung saja klik tombol Next.
- Gambar 2 : disini kita ditanya apakah akan menggunakan WITNESS, karena kita akan menggunakan witness maka pilih pada radio button Yes, lalu klik tombol Next.
- Gambar 3 : berhubungan dengan langkah pada gambar 2 karena kita menggunakan witness maka pastikan ceklis pada check box Witness server instance, lalu klik tombol Next.
- Gambar 4 : kita akan menentukan port pada instance PRINCIPAL karena secara otomatis sql server akan menentukan port yang digunakan maka jangan ubah port yang ada disana, lalu ceklis pada check box Encrypt data sent through this endpoint, dan jangan rubah Endpoint name.
- Gambar 5 : sama seperti pengaturan pada gambar 4 namun disini kita harus klik dulu combo box Mirror server instance, lalu pilih instance MIRROR kita (LAB1), lalu klik tombol Connect yang ada disebelah kanan, setelah itu jendela Connect to server akan muncul dan disini klik juga tombol Connect, maka sekarang kita dapat melihat, lalu klik tombol Next untuk menuju ke pengaturan selanjutnya.
- Gambar 6 : sama persis seperti langkah pada gambar 5, hanya saja disini kita pilih instance WITNESS (LAB2).
- Gambar 7 : jendela ini harus kita isi jika menggunakan server asli yang memiliki domain atau ip address yang berbeda-beda, karena kita menggunakan instance lokal di satu komputer maka kita kosongkan pengaturan yang ada di jendela ini, langsung saja klik tombol Next.
- Gambar 8 : jendela ini hanya memuat summary dari pengaturan-pengaturan yang telah kita buat, langsung saja klik tombol Finish.
- Gambar 9 : jendela ini akan memperlihatkan progress dari proses setup mirroring yang kita perintahkan, dan jika berhasil maka seluruh Action statusnnya akan Success dan tombol Close akan enable, jadi jika sudah berhasil silahkan klik tombol Close.
- Gambar 10 : kita diberikan overview mengenai konfigurasi mirroring kita, dan kita diatanya apakah akan memulai proses mirroring, jadi disini silahkan klik pada tombol Start Mirroring.
- Gambar 11 : sekali lagi karena kita tidak menggunakan domain atau ip public maka disini klik saja pada tombol Yes.
Jika setelah menekan tombol Yes, mirroring tidak berhasil/ada notifikasi error maka lakukan langkah ini: Buka SQL Server Configuration Manager dari Start Menu, lalu pada jendela SQL Server Configuration Manager klik pada SQL Server Services, lalu klik kanan pada SQL SERVER (MSSQLSERVER), lalu klik Properties. 
Pada jendela Properties silahkan masuk ke tab Log On, lalu pilih This account dan tekan tombol Browse. Pada jendela Select User or Group klik pada tombol Advanced, lalu pada jendela akan expand/membesar, sekarang klik pada tombol Find Now maka akan ada daftar user yang tampil pada Search result, disana klik pada username dan nama komputer yang pas dengan identitas komputer kalian lalu klik tombol OK, setelah itu maka akan ada perubahan pada jendela Select User or Group (ada satu daftar objek dengan nama user/nama komputer), disini klik lagi tombol OK, lalu klik lagi tombol OK pada jendela SQL Server Properties. Untuk lebih jelasnya silahkan lihat gambar dibawah ini:

7. Setelah melalui langkah dari gambar 1 sampai gambar 11 (jika tidak ada notifikasi error muncul) maka sekarang kita akan kembali ke jendela Database Properties dan kita akan melihat pada bilah Status bahwa database berada pada state fully synchronized. Jika kita klik tombol OK maka di Object Explorer kita akan melihat database UTSDBA1 pada instance HACKRATIVE akan ada keterangan PRINCIPAL dan UTSDBA1 pada instance LAB1 akan diberi keterangan MIRROR.
Jika sudah ada keterangan demikian seperti yang terlihat pada gambar diatas maka kita dapat mengetahui bahwa pengaturan database mirroring kita telah berhasil.

8. Sekarang kita akan mencoba untuk mensimulasikan trouble pada instance principal kita dengan cara memberhentikan operasi dari instance HACKRATIVE, caranya kita klik kanan pada instance lalu pilih Stop, jika ada jendela konfiramsi klik saja Yes. Sekarang coba klik kanan pada instance Mirror (LAB2) lalu klik Refresh, kita akan melihat bahwa keterangan disampingnya bukan lagi Mirror melainkan Principal, itu artinya secara otomatis SQL Server mengaktifkan instance LAB2 sebagai principal karena instance HACKRATIVE berhenti.

9. Sekarang coba aktifkan kembali instance HACKRATIVE (intance principal awal kita) dengan cara klik kanan lalu klik Start, jika ada pertanyaan klik Yes. Lalu sekarang refresh instance HACRATIVE dan juga instance LAB2, maka kita dapat melihat bahwa sekarang posisi PRINCIPAL dan MIRROR akan berubah, itu artinya tidak secara otomatis instance principal kita (HACKRATIVE) kembali menjadi principal sehingga jika kita ingin mengembalikannya sebagai principal kita perlu melakukan langkah nomor 8 lagi (namun dibalik jadi instance LAB2 yang di Stop-Start), atau kita bisa melakukan pengaturan lagi dengan cara klik kanan pada instance principal yang aktif (LAB2), lalu pilih Task, lalu klik Mirror. Pada jendela Database Properties silahkan klik pada tombol Failover, dan jika ada pertanyaan silahkan klik Yes, & klik OK. Nah sekarang silahkan refrest pada kedua instance, lalu silahkan dicek database UTSDBA1 maka kita akan melihat bahwa keterangan PRINCIPAL dan MIRROR aka kembali seperti semula.

Untuk mendapatkan versi PDF yang sudah disertai dengan gambar dan isntruksi silahkan download materinya disini.
Password: mirroring.farihinmuhamad.blogspot.com

Nah demikianlah sekilas pembahasa mengenai Pengertian dan Konfigurasi Database Mirroring di SQL Server, kalau kamu tertarik dengan seputar sql server atau database design ada bebearapa postingan lagi di blog ini yang bisa kamu baca dan insyaalloh informasinya bermanfaat buat kamu, jadi silahkan dieksplor ya.

Sekian postingan kali ini, terimakasih telah berkunjung, semoga postingan ini dapat membantu dan ada manfaatnya, sampai jumpa di postingan selanjutnya, wassalamualaikum warohmatullohi wabarokatuh.

Post a Comment

Previous Post Next Post