Replikasi SQL Server adalah salah satu fitur sinkronisasi data yang digunakan untuk menyalin dan mendistribusikan objek database SQL Server dan data antara database yang terletak di instance SQL Server yang sama atau dalam instance yang berbeda dan menyinkronkannya di antara database tersebut agar tetap konsisten negara.
Komponen Replikasi SQL Server
Replikasi SQL Server terdiri dari komponen utama di bawah ini:
- Artikel :Tabel database, prosedur tersimpan, atau tampilan yang dianggap sebagai unit dasar Replikasi SQL Server.
- Distributor :Contoh SQL Server yang berisi Distribusi database, yang menyimpan metadata dan riwayat replikasi. Mempertimbangkan bahwa Penerbit hanya dapat ditugaskan ke satu Distributor, tetapi Distributor dapat melayani beberapa Penerbit.
- Penerbit :Contoh SQL Server yang berisi database sumber dan membuat data tersedia untuk didistribusikan ke lokasi lain.
- Pelanggan :Instance SQL Server yang menerima data Replikasi SQL dari Penerbit dan menerapkannya ke database target, dan meneruskan perubahan data kembali ke Penerbit dalam beberapa jenis Replikasi.
- Agen Replikasi Snapshot :Agen ini bertanggung jawab atas sinkronisasi awal di semua jenis replikasi yang menyediakan salinan lengkap artikel database Penerbit kepada Pelanggan.
- Agen Pembaca Log :Agen ini digunakan untuk mereplikasi transaksi dari Penerbit ke Pelanggan secara terus menerus dalam Replikasi Transaksional, dengan membaca log transaksi dari database sumber.
- Agen Distribusi :Agen ini digunakan untuk menerapkan snapshot awal ke database target dan melacak serta menerapkan perubahan data berkelanjutan ke database target. Agen ini digunakan dengan replikasi Transaksional dan Snapshot saja.
- Gabungkan Agen :Agen ini bertanggung jawab untuk menyalin perubahan dari Pelanggan ke Penerbit, kemudian menyalin semua perubahan dari Penerbit ke Pelanggan, dengan dua cara. Agen ini digunakan dengan replikasi Gabung saja.
Jenis Replikasi SQL Server
SQL Server memberi kami berbagai jenis replikasi yang dapat digunakan untuk distribusi data, berdasarkan persyaratan sinkronisasi data. Semua jenis Replikasi SQL memulai sinkronisasi awal antara Publisher dan Subscriber dengan menyalin snapshot seluruh data dari Publisher ke Subscriber. Jenis Replikasi SQL Server ini meliputi:
- Replikasi Transaksional :Pada tipe replikasi ini, semua perubahan yang dilakukan di sisi Publisher akan dikirimkan dan diterapkan langsung ke sisi Subscriber. Contoh Replikasi Transaksional adalah skenario integrasi data antara situs yang berbeda.
- Replikasi Snapshot :Dalam jenis replikasi ini, snapshot diambil dari Penerbit dan diterapkan ke Pelanggan satu kali, tanpa mendistribusikan perubahan berkelanjutan setelah snapshot, hingga sinkronisasi berikutnya terjadi, di mana snapshot baru akan disalin dan diterapkan ke Pelanggan lagi.
- Gabungkan Replikasi :Pada tipe replikasi ini, perubahan dapat dilakukan dan disinkronkan pada kedua sisi Publisher dan Subscriber dan disinkronkan saat pelanggan terhubung ke jaringan. Contoh penggunaan Merge Replication adalah pertukaran data antar pengguna aplikasi Point of Sale.
- Replikasi Peer to Peer :Jenis Replikasi Transaksional khusus di mana Penerbit mendistribusikan perubahan data ke beberapa Pelanggan secara bersamaan.
- Replikasi Dua Arah :Jenis Replikasi Transaksional khusus lainnya di mana kedua server bertindak sebagai Penerbit dan Pelanggan dan bertukar data antara satu sama lain.
Persyaratan Replikasi SQL Server
Sebelum kita menyiapkan dan mengonfigurasi situs replikasi SQL, kita perlu memastikan bahwa poin-poin berikut diperiksa:
- Komponen Replikasi SQL Server diinstal di semua server yang berpartisipasi, Penerbit, Pelanggan, dan Distributor. Ini harus diinstal selama instalasi contoh SQL Server atau ditambahkan ke contoh SQL yang ada nanti, menggunakan wizard Instalasi SQL Server, seperti di bawah ini:
- Ada cukup ruang di server untuk pembuatan snapshot, data database yang dipublikasikan di pelanggan, dan pertumbuhan log transaksi dari database Publisher.
- Agen SQL Server aktif dan berjalan, agar agen replikasi server SQL dapat membuat Pekerjaan Agen SQL terkait dan pekerjaan akan berjalan tanpa masalah.
- Ada bandwidth jaringan yang cukup antara instance SQL Server yang berpartisipasi.
- Instans Penerbit, Distributor, dan Pelanggan dapat menjangkau satu sama lain, dan port TCP yang didengarkan instans SQL ini dibuka dalam aturan firewall. Dengan kata lain, kami dapat terhubung ke setiap instance SQL dari instance lain tanpa masalah jaringan atau konektivitas.
- Artikel database penerbit yang akan direplikasi harus memiliki batasan Primary Key yang telah ditentukan sebelumnya, untuk menjaga keunikan data.
- Akun yang akan digunakan untuk membuat situs replikasi dan menjalankan agen replikasi setidaknya harus merupakan anggota dari peran basis data tetap db_owner di basis data Penerbit, Distributor, dan Pelanggan, selain izin Baca dan Tulis di folder snapshot.
Memulai
Dalam artikel ini, kami akan menunjukkan cara menggunakan jenis Replikasi Transaksional, untuk mereplikasi tabel database AdventureWorks2017 antara dua contoh SQL Server; SQL1 instans yang akan bertindak sebagai Distributor dan Penerbit, dan SQL2 instance yang akan bertindak sebagai Pelanggan.
Replikasi Transaksional SQL Server akan dikonfigurasi dalam tiga langkah:
- Konfigurasikan Distributor.
- Konfigurasikan Penerbit.
- Konfigurasikan Pelanggan
Mari kita bahas langkah-langkah ini secara mendetail.
Konfigurasikan Distributor
Untuk mengonfigurasi Distributor, sambungkan ke “SQL1 ” Instance SQL Server yang akan bertindak sebagai Distributor, yang merupakan instance Publisher yang sama dalam Contoh kami di sini, telusuri Replication node di SSMS Object Explorer, klik kanan pada Replication simpul dan pilih Konfigurasikan Distribusi … pilihan, seperti yang ditunjukkan di bawah ini:
Jendela pertama yang akan ditampilkan di wizard Konfigurasi Distribusi adalah wizard awal, yang akan meringkas daftar tindakan yang akan dilakukan dalam Wizard tersebut. Klik Berikutnya untuk melanjutkan:
Di jendela berikutnya, Anda akan diminta untuk memilih contoh SQL Server mana yang akan bertindak sebagai Distributor. Ini memberi Anda pilihan untuk memilih instans SQL Server saat ini sebagai Distributor, dan membuat database sistem distribusi pada instans tersebut, atau menentukan instans SQL Server lain untuk digunakan sebagai Distributor. Dalam skenario ini, kami akan menggunakan contoh SQL1 saat ini sebagai Distributor. Pilih opsi yang sesuai dengan rencana desain Anda, lalu klik Berikutnya untuk melanjutkan:
Karena layanan agen SQL Server memainkan peran penting dalam proses replikasi SQL Server, di mana pekerjaan agen SQL Server akan dibuat untuk setiap agen replikasi, disarankan untuk mengubah mode startup jika layanan agen SQL Server dari Manual (secara default ) menjadi Otomatis. Sehingga akan berjalan secara otomatis saat SQL Server di-restart, tanpa ada resiko lupa untuk memulainya secara manual. Wisaya ini memberi Anda kemampuan untuk mengubah mode mulai Layanan Agen Server SQL secara otomatis, dengan mempertimbangkan bahwa akun layanan SQL Server memiliki hak administrator di server tersebut untuk melakukan tindakan itu. Dalam kasus kami, kami akan melakukan perubahan itu secara manual. Klik Berikutnya untuk melanjutkan:
Setelah itu, wizard akan meminta Anda untuk menentukan folder tempat snapshot sinkronisasi awal akan dibuat. Tentukan folder di disk drive yang memiliki cukup ruang kemudian klik Berikutnya untuk melanjutkan:
Di jendela berikutnya, Anda akan diminta untuk menentukan nama database distribusi, dan lokasi penyimpanan data dan file log untuk database tersebut. Tentukan nama dan lokasi khusus Anda atau pertahankan setelan default, lalu klik Berikutnya untuk melanjutkan:
Setelah itu, Anda perlu memilih daftar instance SQL Server yang akan bertindak sebagai Publisher dan menyimpan metadatanya dalam database distribusi tersebut. Jika Anda memiliki topologi yang telah ditentukan, tambahkan semua calon penerbit, lalu klik Berikutnya untuk melanjutkan:
Pada jendela berikutnya, pilih tindakan yang akan dilakukan oleh wizard tersebut, apakah akan mengkonfigurasi distribusi secara langsung, menghasilkan file skrip untuk langkah-langkah konfigurasi yang disebutkan atau keduanya. Dalam skenario kami, kami akan mengonfigurasi Distribusi secara langsung. Klik Berikutnya untuk melanjutkan:
Di jendela Complete the Wizard, tinjau semua pilihan yang Anda lakukan sebelumnya dan pastikan tidak ada perubahan yang dilakukan pada pilihan ini, lalu klik Selesai untuk memulai proses konfigurasi:
Ketika proses konfigurasi Distribusi berhasil diselesaikan, wizard akan memberi tahu Anda dengan tanda centang hijau di samping setiap tindakan. Jika ada masalah yang dihadapi, pesan kesalahan yang berarti akan ditampilkan untuk memperbaikinya dan ulangi konfigurasi lagi. Karena kami telah menyelesaikan semua tindakan dengan sukses, Tutup wizard konfigurasi:
Jika Anda memperluas node System Databases, di SSMS Object Explorer, Anda akan melihat bahwa database sistem distribusi baru dibuat yang akan digunakan untuk menyimpan metadata SQL Server Replication, seperti yang ditunjukkan di bawah ini:
Konfigurasikan Penerbit
Setelah mengkonfigurasi Distributor, langkah selanjutnya adalah mengkonfigurasi Publisher yang bertindak sebagai sumber data untuk situs lain.
Untuk mengonfigurasi Publisher, sambungkan ke instance SQL Server yang berisi database yang akan diterbitkan, jelajahi node SQL Server Replication di bawah Object Explorer lalu klik kanan pada node Local Publications dan pilih New Publication … pilihan, seperti di bawah ini:
Jendela pertama di Panduan Publikasi Baru adalah halaman awal, yang menunjukkan daftar tindakan yang akan dilakukan di bawah panduan itu. Setelah membaca bagaimana wizard ini akan membantu Anda mengeklik Berikutnya untuk melanjutkan:
Pada halaman berikutnya, Anda akan diminta untuk memilih database yang akan dipublikasikan ke Subscriber, yaitu database AdventureWorks2017 dalam demo kami di sini. Klik Berikutnya untuk melanjutkan:
Setelah itu, Anda akan diminta untuk memilih jenis publikasi yang Anda kelola untuk digunakan. Kami membahas sebelumnya dalam artikel ini daftar tipe replikasi SQL Server yang disediakan di SQL Server. Dalam demo ini, kami akan menggunakan Publikasi Transaksional Tipe. Klik Berikutnya untuk melanjutkan:
Di halaman Artikel, Anda dapat memilih daftar objek database yang Anda rencanakan untuk direplikasi ke Pelanggan. Anda memiliki pilihan untuk memilih semua objek yang tersedia di bawah setiap jenis atau memperluas jenis objek dan memilih daftar objek yang akan direplikasi. Dalam demo ini, kami akan mereplikasi semua tabel database ke Pelanggan. Setelah meninjau pemilihan objek, klik Berikutnya untuk melanjutkan:
SQL Server juga memungkinkan Anda untuk menambahkan filter untuk objek database yang dipilih dan hanya mereplikasi data yang memenuhi kriteria filter yang ditambahkan. Jika Anda berencana untuk mereplikasi seluruh baris tabel, lewati halaman ini dengan mengklik Berikutnya tombol:
Di halaman Agen Snapshot, tentukan apakah Anda berencana untuk segera membuat snapshot sinkronisasi awal, menjadwalkannya untuk dijalankan nanti, atau menjalankannya secara manual saat Anda menyelesaikan penyiapan replikasi. Dalam demo ini, saya akan membuat snapshot setelah menyelesaikan pengaturan replikasi SQL Server. Klik Berikutnya untuk melanjutkan:
Setelah itu, Anda akan diminta untuk mengkonfigurasi akun yang akan digunakan untuk menjalankan Agen Snapshot dan Agen Pembaca Log. Pengguna ini harus memiliki setidaknya izin db_owner di database Publisher, Distributor, dan Subscriber, selain izin Baca dan Tulis di folder snapshot. Anda juga dapat menggunakan akun Layanan Agen SQL untuk menjalankan agen replikasi SQL Server ini, yang tidak disarankan dari segi keamanan. Berikan akun resmi dan klik Berikutnya untuk melanjutkan:
Di halaman Tindakan Panduan, pilih tindakan yang akan dilakukan setelah menyelesaikan panduan ini, yang mencakup pembuatan publikasi dan pembuatan file skrip untuk membuat publikasi nanti atau gunakan skrip ini sebagai templat untuk server lain. Dalam demo ini, kami akan memilih untuk Membuat publikasi , lalu klik Berikutnya untuk melanjutkan:
Halaman terakhir adalah Complete the Wizard, di mana Anda perlu memberikan nama Publikasi dan meninjau pilihan Anda dalam wizard ini, lalu klik Selesai untuk melanjutkan pembuatan Publikasi:
Setelah wizard pembuatan publikasi selesai, itu akan menunjukkan hasil dari proses pembuatan publikasi dan apakah proses berhasil diselesaikan dengan tanda centang hijau atau gagal pada langkah tertentu dengan pesan kesalahan yang berarti. Dalam demo ini, Publikasi berhasil dibuat tanpa masalah, seperti yang ditunjukkan di bawah ini:
Untuk memverifikasi apakah publikasi berhasil dibuat, perluas node publikasi lokal di bawah node replikasi SQL Server dari SSMS Object Explorer dan periksa publikasi yang baru dibuat. Anda juga dapat meninjau dan mengubah pengaturan Publikasi dari halaman Properti Publikasi tersebut. Publikasi akan seperti:
Konfigurasikan Pelanggan
Untuk saat ini, Penerbit dan Distributor telah berhasil dikonfigurasi, saatnya untuk mengkonfigurasi Pelanggan, yang bertindak sebagai target data dan menerima data dari Pelanggan.
Untuk mengonfigurasi Pelanggan, dari instance Publisher yang sama, perluas node Replikasi SQL Server di bawah SSMS Object Explorer, klik kanan pada node Langganan Lokal dan pilih Langganan Baru … pilihan, seperti yang ditunjukkan di bawah ini:
Jendela pertama yang ditampilkan di New Subscription Wizard adalah halaman awal, yang menunjukkan bagaimana wizard ini akan membantu Anda dalam mengonfigurasi Pelanggan. Klik Berikutnya untuk melanjutkan:
Langkah pertama dalam mengonfigurasi Pelanggan adalah memilih Penerbit tempat Pelanggan akan dibuat dan database Publikasi yang akan bertindak sebagai sumber data untuk Pelanggan tersebut. Pilih database Publikasi dari database yang terdaftar lalu klik Berikutnya untuk melanjutkan:
Setelah itu, Anda akan diminta untuk menentukan apakah akan menjalankan semua agen di sisi Distributor dan mendorong perubahan ke Pelanggan, menyediakan administrasi terpusat untuk proses sinkronisasi replikasi atau menjalankan setiap agen di Pelanggannya sendiri yang akan menarik perubahan dari Penerbit , mengurangi overhead pemrosesan di sisi Distributor dan memungkinkan setiap sinkronisasi pelanggan diadministrasikan secara terpisah. Dalam demo ini, kami akan memilih langganan push dan klik Berikutnya untuk melanjutkan:
Pada jendela berikutnya, Anda perlu menambahkan instance Subscriber SQL Server dan database target Subscription, dengan kemampuan untuk membuat database tersebut jika belum ada, seperti yang ditunjukkan di bawah ini:
Di halaman Keamanan Agen Distribusi, tentukan akun di mana Agen Distribusi akan dijalankan untuk melakukan proses sinkronisasi dan akun yang akan digunakan untuk menghubungkan ke instans SQL Server Distributor dan Pelanggan. Disarankan untuk memberikan akun domain resmi yang memiliki izin baik untuk Distributor maupun Pelanggan, dengan kemampuan untuk menggunakan akun Layanan Agen SQL untuk terhubung ke Distributor dan Pelanggan, yang tidak disarankan dari segi keamanan. Setelah memberikan akun keamanan resmi, klik Berikutnya untuk melanjutkan:
Di halaman berikutnya dari panduan Langganan Baru, tentukan jadwal sinkronisasi untuk setiap agen. Pertahankan pengaturan default jika Anda ingin sinkronisasi terus berjalan, lalu klik Berikutnya untuk melanjutkan:
Setelah itu, Anda dapat menentukan apakah akan menginisialisasi Langganan dengan snapshot dari publikasi dan kapan harus melakukan proses inisialisasi tersebut. Dalam demo ini, kami memilih untuk menginisialisasi Langganan pada sinkronisasi pertama, seperti yang ditunjukkan di bawah ini:
Di jendela Tindakan Wizard, Anda dapat memilih tindakan apa yang harus dilakukan di akhir panduan ini. Misalnya, wizard ini memberi Anda opsi untuk membuat langganan yang dikonfigurasi dan menghasilkan file skrip untuk membuat langganan nanti atau dalam contoh SQL Server lainnya, sebagai berikut:
Setelah itu, wizard akan memberi Anda ringkasan semua konfigurasi yang telah Anda pilih di wizard itu untuk memverifikasinya sebelum memulai konfigurasi berlangganan. Jika semua pilihan baik-baik saja, klik Selesai untuk memulai proses konfigurasi:
Jika operasi pembuatan langganan berhasil diselesaikan, wizard akan memberi tahu kami dengan tanda centang hijau untuk setiap tindakan yang diselesaikan atau memberi kami pesan kesalahan yang berarti jika terjadi kegagalan, seperti yang ditunjukkan di bawah ini:
Untuk memverifikasi bahwa Langganan berhasil dibuat, di bawah node Replikasi Penjelajah Objek SSMS, perluas Publikasi yang dibuat sebelumnya dan Anda akan melihat semua Langganan terhubung ke Penerbit itu dan menerima data darinya, seperti yang ditunjukkan di bawah ini:
Buat Snapshot Sinkronisasi Awal
Jika Anda tidak memilih untuk membuat snapshot sinkronisasi awal selama pembuatan Publisher, Anda masih dapat membuat snapshot setelah mengonfigurasi komponen replikasi.
Untuk membuat snapshot sinkronisasi awal, klik kanan pada Publikasi yang dibuat dan pilih Lihat Status Agen Snapshot pilihan. Dari jendela yang terbuka, klik tombol Start untuk menjalankan agen snapshot dan membuat snapshot sinkronisasi awal. Anda juga dapat memantau perkembangan proses pembuatan snapshot hingga snapshot semua artikel berhasil dibuat, seperti di bawah ini:
Pantau Sinkronisasi
Setelah snapshot dari artikel yang direplikasi dibuat, proses sinkronisasi dengan Pelanggan akan dimulai secara otomatis, dengan menulis semua artikel dari snapshot tersebut ke Pelanggan. Untuk memantau proses sinkronisasi, klik kanan Langganan di bawah Replikasi SQL Server node SSMS Object Explorer dan pilih Lihat Status Sinkronisasi pilihan, di mana ia akan menunjukkan kepada Anda jumlah transaksi dan perintah yang dilakukan pada Pelanggan, seperti yang ditunjukkan di bawah ini:
Selain itu, Anda dapat memantau status semua agen replikasi dan jumlah perintah yang tertunda di sisi Distributor dan tidak diterapkan di sisi Pelanggan, dengan mengklik kanan nama Publikasi dan memilih Launch Replication Monitor Window, seperti yang ditunjukkan di bawah ini:
Untuk memverifikasi bahwa situs replikasi berfungsi dengan baik, mari kita tambahkan catatan baru ke salah satu artikel yang direplikasi, tabel "Karyawan", di sisi Penerbit, yang tidak tersedia di sisi Pelanggan, kemudian Anda akan melihat dari monitor replikasi jendela bahwa catatan baru dikirimkan dari Penerbit ke Distributor kemudian ke Pelanggan. Setelah itu Anda akan melihat bahwa record baru tersedia di tabel Employee di sisi Subscriber, seperti terlihat jelas di bawah ini:
Dengan langkah yang jelas dan mudah, kami membangun situs Replikasi Transaksional lengkap yang tersinkronisasi dan berfungsi dengan baik. Pada artikel berikutnya, kita akan melihat cara memecahkan masalah situs replikasi SQL Server yang ada. Pantau terus.