itroducing sql server 2008 feature: mirroring

27
INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Upload: suherman-stp

Post on 09-Mar-2016

274 views

Category:

Documents


6 download

DESCRIPTION

This eBook contains guidelines for the implementation of Mirroring in SQL Server 2008 from mirroring preparation until Configure Database Mirroring wizard. In the examples in this eBook using SQL Server 2008 Developer and AdventureWorks database.

TRANSCRIPT

Page 1: Itroducing SQL Server 2008 Feature: Mirroring

INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

Page 2: Itroducing 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

Page 3: Itroducing SQL Server 2008 Feature: Mirroring

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

Page 4: Itroducing SQL Server 2008 Feature: Mirroring

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

Page 5: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 6: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 7: Itroducing SQL Server 2008 Feature: Mirroring

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 :

Page 8: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 9: Itroducing SQL Server 2008 Feature: Mirroring

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

Page 10: Itroducing SQL Server 2008 Feature: Mirroring

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

Page 11: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 12: Itroducing SQL Server 2008 Feature: Mirroring

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

Page 13: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 14: Itroducing SQL Server 2008 Feature: 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

Page 15: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 16: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 17: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 18: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 19: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 20: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 21: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 22: Itroducing SQL Server 2008 Feature: Mirroring

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.

Page 23: Itroducing SQL Server 2008 Feature: 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.

Page 24: Itroducing SQL Server 2008 Feature: Mirroring

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

Page 25: Itroducing SQL Server 2008 Feature: Mirroring

INTRODUCING SQL SERVER 2008 FEATURE : MIRRORING

partnernya. Sehingga tidak perlu lagi melakukan coding ulang untuk merubah

connectionstring.

Page 26: Itroducing SQL Server 2008 Feature: Mirroring

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

Page 27: Itroducing SQL Server 2008 Feature: Mirroring

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.