Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa Tujuan Replikasi Data?

Ada aplikasi toko buku perguruan tinggi online di mana banyak siswa dapat membeli buku. Setiap kali seorang siswa masuk, itu menunjukkan daftar saran berdasarkan riwayat pembelian mereka sebelumnya. SQL Server yang menyimpan data pelanggan ada di Seattle, tetapi siswa ini masuk dari seluruh dunia. Oleh karena itu, kinerja mungkin terganggu dan mereka yang berada lebih jauh di WAN mungkin mengalami jeda waktu untuk kueri.

Alih-alih membuat siswa yang lebih jauh mengalami waktu pemuatan halaman yang lambat, replikasi dapat digunakan untuk menyalin dan memelihara objek database di beberapa situs dan menyinkronkan nanti sehingga konsistensi dipertahankan. Setiap situs menyimpan bagian database yang berisi data yang paling relevan dan paling sering digunakan. Sekarang, setiap siswa dapat membeli buku di situs web, dan datanya akan disinkronkan nanti.

Cara Kerja Replikasi Data

Ada beberapa komponen server, dan mereka mengambil peran yang berbeda untuk mengimplementasikan replikasi. Peran penerbit adalah contoh database tempat sumber data berada, dan berisi objek yang dirancang sebagai artikel replikasi. Artikel-artikel ini dikelompokkan bersama dan diterbitkan dalam suatu publikasi sehingga datanya direplikasi sebagai satu kesatuan. Penerbit dapat memiliki beberapa publikasi.

Peran distributor adalah instance database yang menyimpan database distribusi. Setiap penerbit dipetakan ke database distribusi tunggal yang menyimpan data yang direplikasi dari penerbit yang akan diteruskan ke pelanggan. Distributor dapat diatur sebagai distributor lokal, artinya satu server dapat berperan sebagai penerbit dan distributor. Jika distributor dikonfigurasi pada server terpisah, ini disebut sebagai distributor jarak jauh.

Peran pelanggan adalah contoh yang menerima data yang direplikasi dengan berlangganan publikasi. Pelanggan tidak terbatas dan memenuhi syarat untuk menerima data dari beberapa penerbit, dan objek dapat diperbarui tergantung pada jenis replikasi. Jika berlaku, penerbit akan menerima perubahan ini dari pelanggan dan memublikasikan ulang data.

Secara umum, pelanggan menerima perubahan data dalam dua cara:melalui langganan push atau langganan tarik. Perbedaannya terletak pada komponen server mana yang melakukan pembaruan. Dengan push, distributor mendorong atau langsung memperbarui database pelanggan. Dengan tarik, pelanggan memeriksa dengan distributor untuk melihat apakah ada perubahan, dan itu akan melakukan pembaruan sendiri.

Tiga Jenis Replikasi Data

Untuk menerapkan replikasi, beberapa agen digunakan untuk melakukan pekerjaan yang terkait dengan menyalin perubahan, melacak perubahan, dan mendistribusikan data. Agen apa yang dibutuhkan tergantung pada jenis replikasi yang digunakan. Ada tiga jenis utama replikasi.

1. Replikasi Cuplikan

Replikasi snapshot adalah jenis replikasi data yang paling sederhana dan digunakan jika data tidak sering diubah atau jika sejumlah kecil data perlu direplikasi. Misalnya, jika ada tabel yang tidak banyak diperbarui, maka Snapshot Agents dapat digunakan untuk menyalin seluruh database sekali atau berulang kali sesuai jadwal. Kemudian, Agen Distribusi bertanggung jawab untuk mentransfer file-file ini ke pelanggan.

Teknik ini membutuhkan sedikit perawatan karena yang didistribusikan adalah snapshot data pada saat tertentu. Juga, tidak perlu memantau perubahan karena setiap kali pelanggan menerima pembaruan, itu menimpa seluruh salinan data.

Sayangnya, menyalin seluruh database dapat menyebabkan latensi tinggi atau lebih banyak menunggu daripada yang diinginkan. Menghasilkan snapshot membutuhkan menahan kunci pada objek. Tidaklah nyaman jika data sering diubah dan cenderung memengaruhi kinerja—misalnya, jika penerbit memiliki banyak aktivitas penyisipan, pembaruan, dan penghapusan.

Selain menggunakan Agen Snapshot untuk membuat snapshot, replikasi transaksional juga memanfaatkan Agen Pembaca Log yang berjalan di distributor. Agen Pembaca Log membaca log transaksi dari database penerbit dan hanya mengirimkan perubahan yang ditandai alih-alih menunggu di seluruh database. Ini memberikan fleksibilitas karena memberi Anda ruang untuk memutuskan berapa banyak database yang akan diterbitkan (misalnya, kolom). Kemudian, Agen Distribusi memindahkan transaksi ke pelanggan, dan di mana ia berjalan akan mengakomodasi strategi berlangganan push dan pull masing-masing.

2. Replikasi Transaksional

Replikasi transaksional standar menyiratkan bahwa data pada pelanggan hanya-baca. Namun, ada berbagai jenis publikasi yang memungkinkan modifikasi dilakukan di pelanggan. Jika perubahan ini dibuat, perubahan tersebut dapat diteruskan kembali ke penerbit untuk dipublikasikan ulang. Agen Pembaca Antrian digunakan untuk replikasi transaksional dua arah, dan akan membaca perubahan dari antrean dan menerapkannya di penerbit.

Replikasi transaksional sangat bermanfaat dalam lingkungan server-ke-server di mana perubahan dapat dilakukan di penerbit dan pelanggan secara real-time—misalnya, data real-time yang berkaitan dengan penerbangan apa yang saat ini tersedia untuk sebuah maskapai penerbangan. Tidak masuk akal untuk menggunakan replikasi snapshot dalam kasus ini karena pembaruan biasanya disinkronkan sekali per hari atau menurut jadwal.

3. Gabungkan Replikasi

Menggabungkan replikasi seperti replikasi transaksi, tetapi memungkinkan pembaruan pada pelanggan dan penerbit untuk digabungkan bersama. Banyak pelanggan dapat offline, melakukan pembaruan data pada waktu yang berbeda, lalu kembali online dan menyinkronkan perubahan tersebut nanti.

Jenis replikasi ini kemungkinan akan digunakan di lingkungan server-ke-klien seperti klien seluler. Seperti snapshot dan replikasi transaksi, snapshot awal dibuat oleh Agen Snapshot, tetapi kemudian Agen Gabung akan melacak perubahan dan menyelesaikan konflik dengan pemicu. Jika beberapa pelanggan memperbarui baris yang sama, mereka dapat menyebabkan masalah. Oleh karena itu, resolusi konflik perlu dipertanggungjawabkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klien SQL untuk Mac OS X yang bekerja dengan MS SQL Server

  2. Bisakah saya menetapkan skema default untuk dalam prosedur tersimpan?

  3. Teknik Optimasi Kueri di SQL Server:5 Praktik Terbaik untuk Meningkatkan Kinerja Kueri

  4. Apa cara tercepat untuk menyisipkan banyak data secara massal di SQL Server (klien C#)

  5. ADO.NET memanggil Prosedur Tersimpan T-SQL menyebabkan SqlTimeoutException