Database mirroring pada SQl Server

advertisement
Database mirroring pada SQl Server
Posted on July 25, 2012 by arifkenthip
wah…wah…. saya akhirnya nulis lagi neh..
setelah mengalami masa semedi, akhirnya tulisan keluar juga..tapi yang sekarang beda dikit ama kemarin-kemarin, yang sekarang
mengenai mirroring database pada SQL server. Singkat cerita karena kepepet buat system yang harus cepat ya akhirnya belajar
juga mengenai mirroring database ini.. oke deh saya cuplik ya dikit..
mulai….
Database mirroring adalah proses “penduplikatan” database ke tempat lain, dimana bertujuan untuk mencegah terjadinya hal-hal
yang tidak diinginkan pada database kita, misalnya mesin database crash, dan lain sebagainya. Kita bisa saja mempergunakan
backup dari database kita apabila terjadi sesuatu dengan database kita, tetapi tentunya untuk proses recovery akan butuh waktu
dan juga data yang ada tidak akan bisa pada state terakhir.
Database mirroring ini juga mendukung fasilitas untuk failover, dimana apabila terjadi sesuatu dengan database primary
(principal server) kita masih punya cadangan di database sekunder (mirror server). Principal dan mirror server berkomunikasi
sebagai partner dalam mirroring ini, dan masing-masing mempunyai role sebagai principal role dan mirror role, tetapi bisa saja
pada suatu saat role ini berpindah, yang tadinya mempunyai role sebagai principal bisa saja menjadi mirror dan sebaliknya.
Mirroring bisa berjalan dengan cara synchronous ataupun asynchronous, kedua cara ini masing-masing ada keuntungan dan
kerugiannya. Model synchronous akan lebih bagus dari sisi konsistensi data, karena ketika terjadi transaksi, akan disimpan
kedalam 2 partner, tetapi ini akan menyebabkan peningkatan dalam hal cost latency untuk transaksi. Sedangkan model
asynchronous transaksi akan commit tanpa menunggu server mirror selesai melakukan penulisan data ke database mirror.
Untuk modelnya operasinya sendiri mirroring di bedakan menjadi 2 jenis, yaitu high-safety mode dan high-performance mode.
High-safety mode jalan dalam model synchronous sedangkan high-performance mode jalan dalam model asynchronous.
Dalam mirroring kita bisa juga membuat suatu konfigurasi dengan membuat automatic failover, tetapi konfigurasi ini
membutuhkan satu server instance lagi yang disebut dengan witness server.
Witness server akan selalu memonitor kedua server tersebut, principal server dan mirror server, apabila terjadi sesuatu pada
principal server, maka otomatis principal server ini akan di pindahkan ke mirror server, dan mirror server akan berubah rolenya
menjadi principal
Mirroring database mempertahankan dua salinan dari sebuah database tunggal yang harus berada pada kasus server yang berbeda
dari SQL Server Database Engine. Biasanya, kasus server berada pada komputer di lokasi yang berbeda. Satu contoh server
database berfungsi untuk klien (server utama). Contoh lain bertindak sebagai server mirror, tergantung pada konfigurasi dan
keadaan dari sesi mirroring. Ketika sesi mirroring database disinkronkan, mirroring database menyediakan server siaga yang
mendukung failover yang cepat tanpa kehilangan data dari transaksi yang dilakukan. Ketika sesi tidak disinkronkan, server mirror
biasanya tersedia sebagai server siaga.
Mirroring database adalah strategi sederhana yang menawarkan keuntungan sebagai berikut:
o
Meningkatkan perlindungan data.
Mirroring database menyediakan redundansi lengkap atau hampir lengkap dari data, tergantung pada apakah modus operasi
tinggi-keamanan atau performa tinggi.
o Meningkatkan ketersediaan database.
Dalam hal terjadi bencana, dalam mode tinggi-keamanan dengan failover otomatis, failover cepat membawa salinan siaga dari
database online (tanpa kehilangan data).Dalam modus operasi lain, database administrator memiliki alternatif layanan memaksa
(dengan kehilangan data mungkin) untuk salinan database siaga.
o Meningkatkan ketersediaan database produksi selama upgrade.
Untuk meminimalkan downtime untuk database mirror.
Bagaimana Database Mirroring Bekerja
Server utama dan mirror berkomunikasi dan bekerja sama sebagai mitra dalam sesi mirroring database. Dua database melakukan
peran pelengkap dalam sesi: peran utama danperan mirror. Pada waktu tertentu, satu database melakukan peran utama, dan yang
lainnya melakukan peran mirror.
Mirroring database melibatkan mengulangi setiap insert, update, dan menghapus operasi yang terjadi pada database utama ke
database mirror secepat mungkin. Pengulangan dilakukan dengan mengirimkan aliran catatan log transaksi aktif ke server mirror,
yang berlaku catatan log ke database mirror, dalam urutan secepat mungkin. Tidak seperti replikasi, yang bekerja di tingkat logis,
mirroring database bekerja di tingkat catatan log fisik.
Memilih mode database mirroring
Tiga mode operasional yang disediakan untuk mirroring:
o
o
o
synchronous
asynchronous
asyncfullpage
Modus sinkron adalah default. Mode ini mengontrol kapan dan bagaimana transaksi dicatat pada server mirror, dan Anda
mengatur mereka dengan pilihan server-xp.
Bila memilih modus sinkronisasi untuk sistem mirroring database Anda, Anda harus menentukan apakah pemulihan kecepatan
atau keadaan data yang lebih penting ketika terjadi failover.
Anda dapat memeriksa modus mirroring database dengan query nilai dari properti database MirrorMode:
o Synchronous mode
Pada mode sinkron, transaksi berkomitmen dijamin akan direkam pada server mirror. Jika kegagalan terjadi pada server utama,
tidak ada transaksi berkomitmen hilang ketika server mirror mengambil alih. Dalam mode ini, server utama mengirimkan
halaman transaksi log untuk mirror ketika transaksi berkomitmen. Server mirror transmisi mengakui bahwa ketika telah menulis
halaman-halaman untuk menyalin nya dari log transaksi. Server utama tidak membalas aplikasi sampai menerima pengakuan ini.
Menggunakan mode sinkron menyediakan keamanan transaksi karena server operasional dalam keadaan disinkronisasi, dan
perubahan dikirim ke mirror harus diakui sebelum utama dapat dilanjutkan.
o
Asynchronous mode
Dalam modus asynchronous, transaksi yang dilakukan tidak dijamin akan direkam pada server mirror. Dalam mode ini, server
utama mengirimkan halaman transaksi log untuk mirror ketika transaksi di commit. Ia tidak menunggu pengakuan dari mirror
sebelum menjawab ke aplikasi yang COMMIT telah selesai. Jika kegagalan terjadi pada server utama, ada kemungkinan bahwa
beberapa transaksi yang dilakukan mungkin akan hilang ketika server mirror mengambil alih.
o
Asyncfullpage mode
Dalam Asyncfullpage mode, halaman tidak dikirim pada COMMIT, melainkan, mereka dikirim saat halaman penuh. Hal ini akan
mengurangi jumlah lalu lintas antara dua server database dan meningkatkan kinerja dari server primer. Jika halaman log saat ini
belum dikirim ke mirror untuk jumlah detik yang ditentukan oleh parameter pagetimeout, itu dikirim meskipun belum
penuh. Para pagetimeout default adalah 5 detik. Menggunakan mode ini memberikan batas pada berapa lama transaksi
berkomitmen terkena hilang jika server primer turun dan server mirror mengambil kepemilikan dari database. Asyncfullpage
mode menyiratkan operasi asynchronous, sehingga server primer tidak menunggu pengakuan dari mirror.
Asynchronous dan Asyncfullpage mode lebih cepat daripada mode sinkron, tetapi kurang dapat diandalkan karena alasan di
atas. Dalam modus asynchronous atau asyncfullpage, failover dari server utama ke server mirror tidak otomatis karena server
mirror mungkin tidak memiliki semua transaksi dilakukan yang diterapkan pada server primer. Untuk alasan ini, ketika
menggunakan salah satu mode asynchronous, server mirror, secara default, tidak dapat mengambil kepemilikan dari database
ketika utama gagal. Jika failover otomatis diinginkan dalam situasi ini (meskipun kemungkinan transaksi hilang), mengatur
pilihan autofailover untuk ya menggunakan pilihan server-xp.Jika tidak, ketika server gagal adalah restart, mendeteksi apakah
transaksi hilang. Jika transaksi yang hilang, menulis pesan ke log server database pesan dan menutup database. Database saat ini
dan log transaksi kemudian harus diganti menggunakan cadangan sebelum mirroring dapat melanjutkan.
demikian cerita panjang ini semoga bermanfaat jadi ilmu yah..
makasih
Download