Anda di halaman 1dari 27

INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

KATA PENGANTAR

Saya panjatkan kehadirat ALLAH SWT yang telah memberikan nikmat sehat dan
kelapangan hati serta kelapangan pikiran sehingga ebook ini dapat saya tulis.
Terimakasih saya ucapkan kepada yang tercinta Istri dan putri ku, yang telah sabar
menemani saya dan memberi semangat untuk terus berkarya. Juga untuk rekan-rekan
team software PDAM Bandarmasih atas masukan dan supportnya. Terimakasih juga atas
izin yang diberikan oleh rekan saya M Reza Faisal MVP yang telah memperbolehkan
menggunakan photo karya beliau sebagai cover buku ini.

EBook ini berisi panduan untuk implementasi Mirroring di SQL Server 2008 dari
mulai persiapan mirroring sampai penggunaan Configure Database Mirroring wizard.
Dalam contoh-contoh di EBook ini menggunakan SQL Server 2008 Developer dan
menggunakan database AdventureWorks.

Saya persembahkan buku ini ebook ini kepada komunitas. Rekan-rekan dapat
dengan bebas untuk menyebarluaskan ebook ini dengan mencantumkan
sumber/alamat aslinya.

Semoga ebook yang singkat ini dapat memberikan manfaat bagi yang akan
menerapkan atau mengenal SQL Server 2008 Mirroring.

[Juni 2010]
Semangat Berbagi,

Suherman STP, MVP


INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

TENTANG PENULIS

Suherman adalah seorang professional yang saat ini bekerja di Perusahaan


Daerah Air Minum Bandarmasih Kota Banjarmasin provinsi Kalimantan Selatan,
menjabat sebagai Software Development Division Head. Beliau juga telah dianugrahi
sebuah award oleh Microsoft sebagai Microsoft Most Valuable Professional Windows
Desktop Experience.

Dilahirkan di kota Bogor pada tahun 1978 dan mulai aktif dengan komuntas
Microsoft User Group Indonesia (MUGI) sejak tahun 2008 di kota Banjarmasin. Sampai
saat ini masih terus aktif baik untuk aktivitas online maupun offline.

Berikut ini profile beliau :


Profile : https://mvp.support.microsoft.com/profile/suherman
Blog : http://mugi.or.id/blogs/suherman
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

I. DATABASE MIRRORING

Fitur Mirroring sudah diperkenalkan di SQL Server semenjak edisi SQL Server
2005. Namun kali ini saya menjelaskan untuk lingkup lingkungan SQL Server 2008. Fitur
ini hanya ada pada SQL Server versi Enterprise dan standard, sedangkan versi yang lain
(workgroup, web, express) dapat dijadikan Witness dalam mekanisme Database
Mirroring ( http://www.microsoft.com/sqlserver/2008/en/us/editions-compare.aspx ).

Berdasarkan dari namanya (Mirror = cermin), tentu kita sudah dapat


membayangkan apa yang dimaksud dengan Database Mirroring. Tentu di pikiran kita
akan muncul sebuah bayangan adanya 2 buah database yang benar-benar mirip seperti
bercermin dan kemiripan ini terjadi setiap saat tanpa ada waktu untuk berbeda.

Benar sekali bayangan anda. SQL Server 2008 memiliki kemampuan untuk
melakukan mirror pada level database, namun tidak pada level instance. Tujuan dari
fitur ini adalah adanya 2 buah database yang sama dan selalu dalam kondisi
tersinkronisasi dimana satu database menjadi principal-nya dan database lainnya
menjadi copy-nya atau cerminannya.

Karena Mirroring ini merupakan fitur pengamanan untuk level database, maka
teknis pengerjaannya bisa dilakukan dalam satu mesin namun berbeda Instance.
Namun direkomendasikan untuk melakukan Mirroring dengan menggunakan beda
mesin. Sehingga apabila terjadi disk failure atau machine failure pada principal database
tidak membahayakan database mirror nya.

Beberapa manfaat menggunakan Fitur Mirroring adalah :

1. Automatic Failover
Kemampuan ini membuat implementasi Mirroing dapat dibuat secara automatic
failover, sehingga apabila Database principal mengalami failure, maka mirror nya
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

akan segera menggantikan posisi principal. Untuk memungkinkan automatic failover


dibutuhkan satu buah instance witness.
2. Manual Failover
Selain Automatic Failover, implementasi Mirroring pun dapat kita kondisikan
menjadi manual Failover, dengan demikian apabila terjadi failure pada principal,
maka admin harus secara manual merubah mirror menjadi principal. Dalam hal ini
tidak dibutuhkan instance witness.
3. Tidak diperlukan hardware khusus
Yang dimaksud disini adalah tidak ada persyaratan khusus untuk implementasi
Mirroring mengenai kebutuhan hardwarenya. Apabila implementasi nanti
menggunakan 2 atau 3 mesin yang berbeda, mesin-mesin tersebut tidak harus
indentik spesifikasi hardwarenya, namun pertimbangan-pertimbangan performance
harus tetap diperhitungkan.
4. Memperkecil Kemungkinan kehilangan Data
Seperti dijelaskan diatas bahwa fitur mirror ini mengkondisikan adanya copy dari
database principal yang tersinkronisasi setiap saat, sehingga kemungkinan
kehilangan data pada saat terjadi failure di sisi database principal dapat dihindari.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

II. OPERATING MODES

Sebelum melangkah ke teknik implementasi mirroring, ada baiknya kita pahami


lebih dahulu hal-hal dasar yang berkenaan dengan fitur Mirroring, diantaranya adalah
mengenai Operating Modes.

Operating Modes adalah bentuk operasional mirrong yang ada di implementasi


Mirroring. Ada 2 jenis Operating Modes yaitu :

1. High-Safety Mode

Pada High-Safety Mode, transaksi data yang terjadi harus ter-commit dulu di
database mirror, baru kemudian transaksi ter-commit di database principal
(synchronous). Aplikasi harus menunggu terlebih dahulu transaksi ter-commit
dikedua database sebelum transaksi selanjutnya dapat dijalankan. High-Safety Mode
menawarkan 2 buah opsi untuk mekanisme failovernya yaitu High-Safety without
Automatic Failover dan High-Safety with Automatic Failover. High-safety Mode
dapat diterapkan dengan menggunakan SQL Server versi Standard atau versi
Enterprise. Di dalam penerapannya antara Principal dan Mirror nya harus
menggunakan edisi SQL Server yang sama. Misalkan bila server principalnya
menggunakan SQL Server versi Enterprise maka server Mirrornya pun harus
menggunakan SQL Server Enterprise.
2. High-Performance Mode

Pada High-Performance Mode, Transaksi dapat langsung ter-commit di database


principal tanpa harus menunggu ter-commit terlebih dahulu di database mirror
(Asynchronous). High-Performance Mode hanya dapat diterapkan dengan
menggunakan SQL Server versi Enterprise saja.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Dari penjelasan operating Modes diatas, tentunya perlu ditimbang-timbang


konsekuensinya dan kecocokan dengan lingkungan trafik data yang ada diperusahaan
anda..
Penentuan Operating Mode Database Mirroring anda akan mempengaruhi nilai
dari Transaction Safety Setting database.

Bila anda menggunakan SQL Server Management Studio pada saat sedang
mengerjakan setup Mirroring dengan memanfaatkan wizard yang ada, Transaction
Safety Setting akan berubah secara otomatis menjadi OFF atau FULL tergantung dari
Operating Modes yang dipilih. Namun bila anda mengerjakan setup mirroring dengan
menggunakan T-SQL, Transaction Safety Setting harus dilakukan dengan manual dan
harus mengerti pemberlakuan OFF atau FULL dari settingnya.

Pengertian-pengertian diatas mengenai Operation Modes dapat kita


sederhanakan dengan melihat diagram berikut :
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Beberapa catatan sebelum menerapkan Mirroring :


1. Mirroring tidak dapat diterapkan pada database yang mengaktifkan fitur
filestream. Silahkan kunjungi blog saya untuk mengetahui mengenai filestream
http://mugi.or.id/blogs/suherman/archive/tags/FILESTREAM/default.aspx
2. Mirroring tidak dapat diterapkan pada database master, msdb, tempdb, dan
model.
3. Mirroring hanya bekerja pada level database saja, tidak sampai pada level
Instances.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

4. Antara database Principal dan database Mirror harus menggunakan edisi SQL
Server yang sama, sedangkan database Witness dapat menggunakan Edisi SQL
Server Enterprise, standard, web, workgroup atau Express sekalipun.

Apabila beberapa catatan diatas dianggap telah anda penuhi, kita dapat
melangkah ke kegiatan berikutnya yaitu melakukan mirroring di SQL Server 2008.

Jika anda kesulitan untuk mendapatkan software SQL Server 2008, anda dapat
menggunakan versi trial 180 hari yang dapat didownload disini
http://www.microsoft.com/sqlserver/2008/en/us/trial-software.aspx
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

III. DATABASE MIRRORING SETUP

Berikut ini adalah langkah-langkah untuk melakukan Database Mirroring :

1. Cek Versi SQL Server untuk mirroring menggunakan versi yang sama di sisi Principal
server dan mirrornya. Mirroring dapat diterapkan bila menggunakan SQL Server
2005 SP1 atau SQL Server 2008. Pada buku ini saya menggunakan SQL Server 2008.
SQL Server 2008 edisi Standard hanya bisa menerapkan High-Safety Operating
Mode (synchronous), sedangkan SQL Server 2008 edisi Enterprise dapat
menerapkan High-Safety Operating Mode (synchronous) atau High-Performance
Operating Mode (Asynchronous).
Cara mencek versi SQL Server dapat menggunakan T-SQL berikut :
SELECT @@VERSION
2. Pastikan database principal tidak menerapkan fitur FILESTREAM didalamnya.
Silahkan kunjungi blog saya untuk mengetahui mengenai filestream
http://mugi.or.id/blogs/suherman/archive/tags/FILESTREAM/default.aspx.
3. Pastikan Database Recovery Model yang digunakan adalah FULL. Untuk merubah
Recovery Model menjadi FULL dapat menggunakan T-SQL Berikut :
alter database adventureworks set recovery full
Pada buku ini saya menggunakan database adventureworks sebagai contoh. Sample
database adventureworks tidak disertai dalam DVD Installer SQL Server, namun
harus didownload terpisah. Lokasi download dapat ditemukan disini :
http://msftdbprodsamples.codeplex.com/releases/view/37109
4. Terapkan Compatibility Level database Adventureworks ke angka 100 (karena
menggunakan SQL Server 2008). Berikut T-SQLnya :
Alter Database AdventureWorks Set Compatibility_Level = 100
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

5. Dalam langkah-langkah mirroring ini saya akan menerapkan High-Safety Operating


Mode With Automatic Failover. Berarti dalam prakteknya harus menggunakan 3
buah instances. Yaitu untuk principal, mirror dan witness.
Best Practices untuk ini sebenarnya antara principal, mirror dan witness berada di
mesin yang berbeda. Namun dalam contoh ini saya letakkan ketiga instances
tersebut didalam satu buah mesin (CPU) yang sama.
Database AdventureWorks Principal saya berada pada instance PDI-APLIKASI-1,
Database AdventureWorks Mirror saya berada pada instance PDI-APLIKASI-1\DB2,
witness saya berada pada instance PDI-APLIKASI-1\DB3.

Untuk principal dan mirror saya menggunakan edisi SQL Server 2008 Developer,
sedang untuk witness saya menggunakan edisi SQL Server 2008 Express with
Advanced Services.
6. Selanjutnya lakukan FullBackup pada database Adventureworks yang ada di
Principal Server. Sebelum melakukan backup, buat sebuah folder Backup tempat
meletakkan file hasil backup. Misalkan kita letakkan di C:\Backup. Berikut ini T-
SQLnya :
USE MASTER
GO
BACKUP DATABASE [AdventureWorks] TO DISK =
N'C:\Backup\AdventurewoksForMirroring.bak'
GO

7. Selanjutnya adalah kita akan melakukan aktivitas restore ke Database Server


Mirrornya. Karena pada server mirror belum ada database AdventureWorks, maka
kita buat dahulu database tersebut.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Arahkan Microsoft Sql Server Management Studio anda ke server mirrornya. Pada
demo saya ini, saya arahkan ke server PDI-APLIKASI-1\DB2. Kemudian saya buat
dulu database AdventureWorksnya. Dapat menggunakan T-SQL berikut :
USE master
GO
CREATE DATABASE [AdventureWorks]
ON ( NAME = AdventureWorks_Data, FILENAME = N'C:\Program
Files\Microsoft SQL
Server\MSSQL10.DB2\MSSQL\DATA\AdventureWorks_Data.mdf')
LOG ON ( NAME = AdventureWorks_Log, FILENAME =
N'C:\Program Files\Microsoft SQL
Server\MSSQL10.DB2\MSSQL\DATA\AdventureWorks_Log.ldf')
GO
8. Langkah selanjutnya adalah merestore backup yang telah kita buat ke database
AdventureWorks yang ada di server Mirror. Proses Backup dapat menggunakan T-
SQL berikut :
USE MASTER
GO
RESTORE DATABASE [AdventureWorks] FROM
DISK = N'C:\Backup\AdventurewoksForMirroring.bak'
with NORECOVERY, REPLACE
GO
9. Untuk memastikan bahwa kita telah membackup semua aktivitas database principal
yang terekam di log files. Kita akan melakukan backup log pada database
AdventureWorks di server Principal. Proses backupnya dapat kita lakukan dengan
menggunakan T-SQL berikut :
USE MASTER
GO
BACKUP LOG [AdventureWorks] TO DISK =
N'C:\Backup\AdventurewoksForMirroring_Log.bak'
GO
10. Lalu hasil backup log tersebut kita akan restore ke server Mirror-nya. Restore
backup log dapat kita lakukan dengan menggunakan T-SQL berikut :
USE MASTER
GO
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

RESTORE LOG [AdventureWorks] FROM


DISK = N'C:\Backup\AdventurewoksForMirroring_Log.bak'
with NORECOVERY
GO
11. Sampai saat ini, kita berarti telah selesai melakukan setup sebelum melakukan
pembuatan Mirroring.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

IV. CREATE DATABASE MIRRORING

Setelah kita selesai melakukan database mirroring setup, langkah selanjutnya


adalah melakukan pembuatan mirroringnya. Dalam buku ini saya akan mencontohkan
menggunakan operating modes mirroring yang high-safety mode.

Dalam pembuatan mirroring ini saya akan mencontohkan pembuatannya


menggunakan wizard yang sudah disediakan.

Pertama kita buka properties dari database AdventureWorks di server


principalnya dan buka page mirroring, maka akan tampak seperti gambar dibawah ini
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Lalu dilanjutkan dengan melakukian configuring database mirroring security


dengan menggunakan wizard yang sudah disediakan yaitu dimulai dengan mengklik
tombol Configure Security pada page Mirroring di database properties.

Lalu akan dimunculkan step pertama dari configuring database mirroring security
wizard yaitu penentuan Witness Server seperti pada gambar dibawah ini

Bila hendak menerapkan automatic failover, maka keberadaaan witness server


diperlukan dan dipilih jawaban Yes.

Witness Server akan memantau terus menerus keberadaan dari server principal
dan mirror. Apabila terdeteksi server principal mengalami down operation, maka
automatic failover akan diaktifkan sehingga server mirror akan berubah perannya
menjadi server principal. Selanjutnya klik tombol Next.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Karena pilihan penggunaan Witness Server adalah Yes, maka step selanjutnya
adalah penentuan Witness Server Instance. Untuk penggunaan Witness Server Instance
dapat menggunakan SQL Server 2008 Express. Wizard dibawah adalah menentukan
bahwa security Configuration nya diletakkan pada Witness Server. Selanjutnya klik
tombol Next.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Langkah wizard selanjutnya adalah setting konfigurasi security untuk server


principalnya. Disini dilakukan penetapan port komunikasi dan nama endpoint serta
penetapan enkripsi penyampaian data endpoint. Ikuti sesuai default yang ada, lalu klik
Next. Lihat seperti gambar dibawah ini.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Langkah selanjutnya adalah konfigurasi security untuk server mirrornya. Pada


langkah ini anda diminta untuk menentukan server mirror instance nya, port komunikasi
dan nama endpoint serta penetapan enkripsi penyampaian data endpoint. Pilih lah
server mirror instancenya, lalu biarkan port komunikasi dan nama endpoint serta
penetapan enkripsinya sesuai defaultnya. Kemudian klik tombol Next.

Langkah selanjutnya adalah konfigurasi security untuk Witness Server. Pada


langkah ini anda diminta untuk menentukan Witness Server instance nya, port
komunikasi dan nama endpoint serta penetapan enkripsi penyampaian data endpoint.
Pilih lah Witness Server instancenya, lalu biarkan port komunikasi dan nama endpoint
serta penetapan enkripsinya sesuai defaultnya. Kemudian klik tombol Next.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Langkah selanjutnya adalah menentukan Service account untuk principal, witness


dan mirror instance.Gunakan Service account yang sama untuk ketiga instances
tersebut. Setelah itu klik tombol Next.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Setelah itu wizard pun selesai, ditutup dengan konfirmasi dari konfigurasi yang
sudah ditentukan. Apabila telah setuju dengan konfigurasi yang ditentukan, klik tombol
Finish untuk mengakhiri Configure Database Mirroring Security Wizard.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Setelah tombol Finish di klik, maka proses penerapan konfigurasi database


mirroring Security pun berlangsung. Prosesnya dapat dilihat seperti gambar dibawah ini.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Kemudian mirroring pun dapat dimulai dengan munculnya dialog box database
properties. Klik tombol Start Mirroring untuk menjalankan proses Mirroring.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Sampai disini proses pembuatan mirroring di SQL Server 2008 telah berhasil
dilakukan, bisa diperhatikan pada status mirroring yang menginformasikan bahwa
Synchronized: the database are fully synchronized.

Microsoft telah meningkatkan kemampuan fitur Mirroring di SQL Server 2008,


yaitu adanya Log Stream Compression.

Dengan adanya Log Stream Compression maka log yang dikirimkan oleh principal
ke mirror akan dikompresi terlebih dahulu, tentunya ini akan mengoptimalkan bandwith
yang terpakai.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Bila proses mirroring telah kita terapkan, maka pada server principal database
AdeventureWork yang kita gunakan penerapan mirroring akan tampak Mirroring States
Synchronized seperti gambar dibawah ini

Dan pada Server mirroring, akan tampak seperti gambar dibawah ini.

Lalu bagaimana dengan aplikasi yang terhubung dengan SQL Server yang
menggunakan Mirroring ? apa yang terjadi bila automatic failover di terapkan ?

Tentunya perlu ada perubahan pada connectionstring di aplikasi sehingga aplikasi


pun dapat dengan cepat beradaptasi bila automatic failover diterapkan. Berikut ini
adalah connectionstring yang harus diterapkan diaplikasi yang terhubung dengan SQL
Server yang menerapkan mirroring :

"Data Source=NamaServerPrincipal;Failover Partner=NamaServermirror;Initial


Catalog=AdventureWorks;Integrated Security=True;"

Dengan menggunakan Connectionstring diatas, maka pada saat aplikasi tidak dapat
menemukan Database Server Principal, maka aplikasi akan mencari ke Server Failover
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

partnernya. Sehingga tidak perlu lagi melakukan coding ulang untuk merubah
connectionstring.
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

V. DATABASE MIRRORING MONITOR

Aktivitas database mirroring dapat kita monitor melalui tools yang sudah ada di
SSMS (SQL Server Management Studio). Caranya adalah :

1. Klik kanan pada database Adventureworks yang kita jadikan sebagai principal.
Pilih tasks, kemudian pilih menu Lounch Database Mirroring Monitor
seperti gambar berikut

2. Kemudian akan muncul jendela Database Mirroring Monitor seperti gambar


dibawah ini
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Pada grid Status, terlihat status dari principal dan mirror serta witness servernya.
Disini juga dapat dilihat Mirorring state yang ada. Ada 4 Mirroring state yang
perlu diketahui :
a. Synchronized, ini menandakan bahwa server principal dan mirror dalam
kondisi sama dan akan tetap demikian selama mirror terus menerapkan
segala perubahan yang terjadi di principal
b. Synchronizing, ini menandakan bahwa server mirror sedang berusaha
melakukan kesamaan perubahan yang terjadi di principal.
c. Suspended, ini menandakan bahwa server principal dalam kondisi normal
namun tidak melakukan pengiriman log ke server mirror.
d. Disconnected, kedua server (principal dan mirror) tidak dapat berkomunikasi.

Anda mungkin juga menyukai