Cara Database Mirroring Pada MS SQL Server

Diposting pada

Cara Database Mirroring Pada MS SQL Server Management Studio di Windows, cara ini saya kopas dari web-blog lain sudah saya terapkan dan berhasil, namun ada sedikit-sedikit yang harus di rubah, silahakn di sesuaikan lagi ada perintah-perintah yang tidak sesuai di sql server versi lebih baru seperti 2012 2014 2012 2019 atau lebih baru lagi, solusi tersebut bisa dicari di google lagi, namun prinsipnya sama seperti artikel dibawah ini. ini saya publish lagi karena agar memudahkan saya pribadi dalam pencarian. terimakasih.

Mirror. Salah satu kata yang mungkin sudah biasa terdengar untuk kalangan profesional di bidang SQL Server. Ya, Database Mirroring lebih tepatnya.

Database Mirroring adalah proses duplikasi database ke lokasi lain (server lain) dengan tujuan agar database tersebut terhindar dari hal yang dapat mengganggu kestabilan database tersebut. Misalnya crash, data tidak bisa di akses, ataupun data tersebut mengalami corrupt.

Dengan adanya fitur Mirror dari SQL Server ini, kita bisa mengantisipasi terjadinya hal-hal tersebut di atas. Karena dengan menjalankan Database Mirroring, kita bisa menjalankan proses Failover (baik secara otomatis maupun manual).

Failover adalah proses mengambil alih fungsi dari server yang mati (principal) ke server backup (mirror), sehingga komputer client tidak mengetahui jika terjadi kegagalan pada server, karena proses yang dilakukan pada server yang gagal atau mati akan dilanjutkan oleh server backup.

Pada dasarnya, jika kita ingin menjalankan Failover secara manual, kita hanya butuh 2 server saja yaitu server yang di sebut Principal dan Mirror.

Namun jika menginginkan Failover secara otomatis, dibutuhkan satu server lagi yang biasa disebut Witness yang berfungsi sebagai monitor terhadap Principal dan Mirror.

Pada pembahasan kali ini, kita akan membahas Database Mirroring dengan metode Failover secara manual. Berarti kita hanya menggunakan dua server saja (Principal dan Mirror). Berikut ini langkah-langkah proses Database Mirroring.

1. Langkah yang pertama adalah kita harus set recovery database tersebut secara full (dari server principal) dengan script dibawah ini :

Use master;
GO
ALTER DATABASE NamaDatabase
SET Recovery FULL;
GO

Contoh :

USE master;
GO
ALTER DATABASE Ax_2009_Live
SET RECOVERY FULL;
GO

2. Kemudian melakukan backup database yang akan di mirror. Ada baiknya, proses backup ini di lakukan pada saat database tersebut sedang offline atau tidak di akses oleh server production. Berikut adalah script untuk menjalankan backup database. Dalam hal ini, kita backup database ke folder sharing.

BACKUP DATABASE NamaDatabase
TO DISK = ‘Lokasi directory database\NamaDatabase.bak’
WITH FORMAT
GO

Contoh :

BACKUP DATABASE Ax_2009_Live
TO DISK = ‘\\10.1.1.28\BACKUP_DB\DATA\Ax_2009_Live.bak’
WITH FORMAT
GO

3. Selanjutnya database log perlu kita backup juga, dengan script di bawah ini :

BACKUP LOG NamaDatabase
TO DISK = ‘Lokasi directory database\NamaDatabase.bak’
GO

Contoh :

BACKUP LOG Ax_2009_Live
TO DISK = \\10.1.1.28\BACKUP_DB\LOG\Ax_2009_Live.bak’
GO

4. Jika proses backup database dan log sudah selesai, selanjutnya restore database dan log tersebut ke server yang di jadikan sebagai Mirror. Berikut script untuk restore database :

RESTORE DATABASE NamaDatabase
FROM DISK = ‘Lokasi directory database\NamaDatabase.bak’
WITH NORECOVERY,
MOVE ‘NamaDatabase’ TO
‘Lokasi directory database\NamaDatabase_Data.mdf’,
MOVE ‘NamaDatabase_Log’ TO
‘Lokasi directory database\NamaDatabase_Log.ldf’;
GO

Contoh :

RESTORE DATABASE Ax_2009_Live
FROM DISK = ‘G:\MSSQL\SQL\BACKUP\DATA\Ax_2009_Live.bak’
WITH NORECOVERY,
MOVE ‘Ax_2009_Live’ TO
‘G:\MSSQL\SQL\DATA\Ax_2009_Live_Data.mdf’,
MOVE ‘Ax_2009_Live_Log’ TO
‘G:\MSSQL\SQL\LOG\Ax_2009_Live_Log.ldf’;
GO

Perlu diketahui, untuk proses mirror, database yang di restore memang berstatus “Restoring…” dan tidak bisa dipakai karena berfungsi untuk mirror database dari principal.

5. Selanjutnya restore sekali lagi database log dengan script dibawah ini

RESTORE LOG NamaDatabase
FROM DISK = ‘Lokasi directory database\NamaDatabase.bak’
WITH FILE=1, NORECOVERY
GO

Contoh :

RESTORE LOG Ax_2009_Live
FROM DISK = ‘G:\MSSQL\SQL\BACKUP\LOG\Ax_2009_Live.bak’
WITH FILE=1, NORECOVERY
GO

6. Selanjutnya kita akan menjalankan langkah-langkah Database Mirroring. Pada server Principal klik kanan database yang akan di mirror -> Pilih Task -> Mirror.

7. Dari langkah tersebut diatas, maka akan tampil menu mirroring.

8. Dari menu mirror ini, pilih “Configure Security”.

9. Karena kita menjalankan failover secara manual, maka kita tidak perlu memakai server Witness. Pada tampilan ini, pilih No.

10. Tentukan server yang akan dijadikan sebagai server Principal

11. Selanjutnya pilih server yang akan dijadikan sebagai server Mirror.

12. Hal penting yang perlu diperhatikan adalah service account pada tiap masing-masing server, tentunya kita harus menggunakan service account yang memang digunakan untuk SQL Server.

13. Proses Configure Security untuk mirror selesai.

14. Selanjutnya akan tampil dialog box yang akan menanyakan proses eksekusi Database Mirroring, Pilih Start Mirroring.

15. Jika statusnya “Synchronized: the database are fully synchronized”, maka database dari server Principal ke server Mirror sudah Synchronize.

16. Untuk memastikan lagi database tersebut sudah synchronize, kita bisa menggunakan Mirror Monitoring seperti gambar berikut.

17. Selanjutnya kita akan melakukan Failover, dimana dilakukan perpindahan database dari server principal ke server mirror. Sehingga kedua server tersebut akan berubah dari Principal ke Mirror begitu juga sebaliknya. Untuk melakukan Failover manual, masuk ke menu mirror dan pilih tombol Failover. Maka akan tampil dialog box peringatan mengenai perpindahan setelah proses Failover.

18. Jika proses Failover berjalan sukses, maka database akan berpindah ke server yang sebelumnya sebagai Mirror.

19. Untuk memastikan lagi, jalankan Mirror Monitoring.

Proses Database Mirroring dan Failover selesai. Semoga bermanfaat 

Sumber : https://infrasolutions.wordpress.com/2013/07/17/database-mirroring-di-sql-server-2008/