Alat Ketersediaan Tinggi di MS SQL Server

Pada artikel ini, kita akan melihat semua teknologi SQL Server yang dapat memberikan ketersediaan data tinggi dan toleransi kesalahan untuk SQL Server Anda..

Backup bagus, tetapi ketika tagihan berjalan selama beberapa menit, dan kadang-kadang detik, hanya redundansi data dan rencana failover yang jelas akan membantu. SQL Server Menyediakan Berbagai Cara untuk Melaksanakan Redundansi Data dan Ketersediaan Tinggi.

Konten:

  • Mirroring basis data dalam SQL Server
  • Log pengiriman dalam SQL Server
  • Replikasi di Microsoft SQL Server: Ikhtisar Metode
  • Grup Ketersediaan Selalu Aktif di SQL Server

Mirroring basis data dalam SQL Server

  • Tersedia dalam edisi: Standar (hanya mode sinkron), Perusahaan, Web / ekspres - Hanya mode saksi
  • Ia bekerja di tingkat: Basis data
  • Versi SQL Server: SQL Server 2005, SQL Server 2008
Catatan. Mirroring basis data dalam mode pemeliharaan dan dapat dihapus di versi SQL Server yang akan datang, sehingga tidak disarankan untuk menggunakan teknologi ini pada versi yang lebih tinggi dari SQL Server 2008.

Mirroring berfungsi pada level basis data (mungkin masih pada level objek) dan menyediakan transisi otomatis / manual antar server jika terjadi kegagalan. Basis cadangan di salah satu mode operasi mirroring akan berada dalam kondisi pemulihan berkelanjutan, oleh karena itu, itu tidak akan berfungsi.

Mirroring memiliki 2 mode operasi: Sinkron dan Asinkron..

Sinkron mode berarti server utama dan cadangan sepenuhnya disinkronkan. Sinkronisasi tercapai karena fakta bahwa data yang datang ke server utama segera dikirim ke server cadangan. Server cadangan menulis data ke log transaksi ke disk secepat mungkin. Segera setelah server cadangan selesai menulis data, server mengirimkan sinyal ke server utama, setelah itu server utama menulis data ke disk. Dalam mode ini, waktu transaksi meningkat karena fakta bahwa server utama harus menunggu sampai data ditulis ke disk di server cadangan, tetapi dengan pendekatan ini, kemungkinan kehilangan data minimal..

Dalam mode sinkron, dimungkinkan untuk menggunakan server Witness. Server dalam mode saksi memantau kinerja server mirroring dan dapat memulai failover, yaitu server siaga masuk ke status aktif.

Anda harus ingat bahwa kemacetan di server cadangan akan memengaruhi utama.

Tidak sinkron atau mode kinerja tinggi - Ini juga berfungsi, kecuali bahwa server utama setelah mengirim log transaksi tidak menunggu tanggapan dari cadangan tentang keberhasilan penulisan ke disk.

Dalam mode ini, transaksi lebih cepat dan kinerja server cadangan tidak mempengaruhi yang utama, tetapi jika server cadangan dipulihkan sebagai yang utama, ada risiko kehilangan data, karena data di server tidak disinkronkan..

Mirroring harus digunakan hanya jika Anda memiliki kecocokan untuk semua kondisi

  • SQL Server 2008 atau SQL Server 2005
  • Latensi jaringan rendah antara server utama dan siaga
  • Kehilangan bahkan satu transaksi sangat penting bagi Anda

Jika kasing Anda tidak sesuai dengan semua persyaratan, pertimbangkan opsi lain..

Log pengiriman dalam SQL Server

  • Tersedia dalam edisi: Standar, Web, Perusahaan
  • Ia bekerja di tingkat: Basis data
  • Versi SQL Server: SQL Server 2005 dan yang lebih baru

Teknologi pengiriman log memungkinkan Anda untuk secara otomatis menyalin salinan log transaksi dari database sumber ke satu atau lebih basis data penerima dan kemudian mengembalikannya ke basis data penerima. Secara opsional, mungkin ada server ketiga yang akan melakukan peran layanan pemantauan - untuk memantau pelaksanaan cadangan dan memulihkan log.

Pemantauan dan Diagnostik SQL Server dibahas dalam artikel terpisah.

Setelah mengatur pengiriman log, pekerjaan dibuat. Prinsip operasi adalah sebagai berikut:

  1. Tugas pertama bertanggung jawab untuk membuat cadangan log transaksi di server utama
  2. Tugas kedua bertanggung jawab untuk mendistribusikan cadangan ke semua server penerima
  3. Pekerjaan ketiga mengembalikan log ke semua database penerima. Pemulihan tersedia dalam mode Tanpa pemulihan atau mode Siaga.

Ini adalah teknologi yang lebih sederhana, tentang mirroring dan Always On. Pengiriman log harus digunakan ketika:

  • Perbedaan data antara server utama dan server tujuan dapat diterima. Jadwal standar untuk menyelesaikan tugas adalah setiap 15 menit. Anda dapat mengurangi, tetapi Anda harus mempertimbangkan kecepatan pengiriman data melalui jaringan dan waktu untuk memulihkan log.
  • Anda ingin mengakses database penerima untuk akses baca. Ini dimungkinkan ketika mode pemulihan diatur ke mode Siaga. Namun perlu diingat, Anda hanya dapat mengakses database antara pemulihan log.

Replikasi di Microsoft SQL Server: Ikhtisar Metode

  • Tersedia dalam edisi: Standar dan Web - Terbatas, Enterprise
  • Ia bekerja di tingkat: Objek basis data
  • Versi SQL Server: SQL Server 2000 dan yang lebih baru
Lihat ikhtisar edisi SQL Server dan fitur lisensi..

Ada berbagai jenis replikasi:

  • Replikasi transaksional
  • Replikasi transaksional peer-to-peer
  • Replikasi snapshot
  • Gabungkan Replikasi

Ada 2 topologi lagi berdasarkan replikasi transaksional:

  • Replikasi Transaksi Dua Arah
  • Langganan yang Dapat Diperbarui untuk Replikasi Transaksional (Fitur yang Didukung di SQL Server Versi 2012 hingga 2016)

Replikasi dapat digunakan untuk berbagai keperluan, tetapi ini terutama digunakan untuk membongkar server OLTP dengan pertanyaan pilih dan untuk ketersediaan tinggi. Meskipun Microsoft tidak memposisikan replikasi sebagai sarana untuk mencapai ketersediaan tinggi, itu mungkin memenuhi peran ini..

Catatan: Ada 3 jenis server dalam model replikasi SQL Server:

  • Penerbit (penerbit) - server yang menerbitkan artikel
  • Distributor (distributor) - server yang mendistribusikan artikel ke server berlangganan
  • Pelanggan (pelanggan) - server yang menerima artikel yang didistribusikan

Perubahan yang terjadi pada objek yang dipilih pada penerbit dikirim terlebih dahulu ke distributor, kemudian distributor mengirimkan perubahan ini kepada pelanggan.

Pertimbangkan 4 tipe dasar replikasi

Replikasi Transaksional

Jenis replikasi ini digunakan untuk replikasi data "hampir real time", yaitu, data pelanggan muncul segera, dengan mempertimbangkan waktu menyalin data melalui jaringan.

Transaksi dari penerbit dikirim ke distributor, distributor mengirimkan transaksi ini kepada pelanggan. Distributor dapat mengirim data ke pelanggan segera, atau sesuai dengan jadwal tertentu. Entitas pelanggan yang berpartisipasi dalam replikasi hanya boleh digunakan untuk akses hanya baca, jika tidak data akan menjadi tidak konsisten dan konflik akan terjadi.

Replikasi Transaksional Peer-to-Peer

Replikasi Transaksional Peer-to-Peer atau Peer-to-Peer mirip dengan replikasi transaksional yang normal, tetapi ia dapat bekerja dengan beberapa server sekaligus.

Replikasi rekan-ke-rekan dapat disebut replikasi master-master (untuk replikasi transaksional normal, itu akan menjadi master-budak). Pertimbangkan diagram dari dokumentasi Microsoft

Setiap contoh SQL Server yang berpartisipasi dalam replikasi peer-to-peer dapat menangani operasi baca dan tulis. Juga dalam jenis replikasi ini mekanisme resolusi konflik disediakan ketika operasi yang sama tiba di beberapa server pada saat yang sama, misalnya, permintaan pembaruan. Tetapi bahkan dengan adanya mekanisme ini, tidak disarankan untuk menulis data ke banyak instance secara bersamaan..

Jenis replikasi ini dapat digunakan untuk menyeimbangkan beban, termasuk operasi pembaruan / masukkan / hapus..

Replikasi snapshot

Ini adalah jenis replikasi khusus yang tidak melacak perubahan data pada penerbit, tetapi menurut jadwal tertentu, membuat snapshot dan mengirimkannya ke pelanggan (melalui distributor).

Replikasi snapshot tidak menerapkan semua transaksi secara berurutan, seperti halnya pengiriman log dan replikasi transaksional, tetapi menyalin data melalui bcp.

Jenis replikasi ini layak digunakan ketika:

  • Data jarang berubah
  • Perbedaan data yang valid antara penerbit dan pelanggan
  • Volume perubahan besar dalam waktu singkat

Gabungkan replikasi

Mekanisme ini mirip dengan replikasi transaksional peer-to-peer, tetapi ada beberapa perbedaan penting:

  • Penggabungan replikasi hanya dapat memiliki satu penerbit dan beberapa pelanggan ketika, seperti dalam replikasi peer-to-peer, semua contoh sama (mereka adalah penerbit dan pelanggan
  • Dalam penggabungan replikasi, pelanggan dapat menerima data yang berbeda ketika semua server memiliki data yang sama dalam replikasi peer-to-peer
  • Menggabungkan replikasi dapat menyelesaikan konflik, peer-to-peer - no
  • Replikasi rekan-ke-rekan hanya tersedia dalam edisi Perusahaan

Gabungkan replikasi harus digunakan ketika Anda perlu untuk mengkonsolidasikan data..

Replikasi Transaksional Dua Arah dan Langganan Replikasi Transaksional yang Ditingkatkan

Bidirectional Transactional adalah topologi di mana replikasi transaksional normal dikonfigurasi untuk mereplikasi data yang sama. Parameter @loopback_detection di sp_addsubscription harus disetel ke TRUE

Berlangganan replikasi transaksional mirip dengan menggabungkan replikasi. Teknologi ini telah menjadi sangat usang cukup cepat, karena praktis tidak pernah digunakan dan digantikan oleh jenis replikasi lainnya..

Grup Ketersediaan Selalu Aktif di SQL Server

  • Tersedia dalam edisi: Standar (dengan batasan), Enterprise (
  • Ia bekerja di tingkat: Basis data
  • Versi SQL Server: SQL Server 2012 dan yang lebih baru

Grup Ketersediaan Selalu Ada muncul dalam rilis SQL Server 2012. Ini adalah alternatif (walaupun lebih mungkin pengembangan) teknologi pencerminan basis data..

Grup Ketersediaan Selalu Ada berdasarkan Windows Server Failover Cluster, tetapi mulai dari versi 2017, itu menjadi mungkin untuk digunakan Selalu Aktif tanpa WSFC. Selalu aktif mirip dengan mirroring basis data (mode sinkron dan asinkron) tetapi bisa ada hingga 8 replika sekunder. Selalu Aktif mendukung failover otomatis (yaitu, ketika turunan utama gugus macet, WSCF memilih replika primer baru dan mengalihkan permintaan penulisan ke dalamnya).

Setiap instance dalam grup ketersediaan dapat berupa salah satunya utama (utama), atau sekunder (sekunder). Replika sekunder dapat berupa hanya baca, baik di Tidak ada pemulihan. Setiap contoh dalam grup ketersediaan berisi salinan dari database grup ketersediaan. Ingatlah bahwa dalam mode sinkron kecepatan transaksi akan bergantung pada anggota "paling lambat" dari grup ketersediaan.

Dalam pengaturan dasar, Selalu Aktif sederhana, setelah menginstal SQL Server semuanya dapat dikonfigurasi menggunakan wizard (WSFC melalui snap-in di Windows, dan akses grup sendiri melalui wizard di SSMS). Tetapi dengan sejumlah besar server dan infrastruktur kompleks Anda harus mempelajari dokumentasi dengan baik.

Dianjurkan untuk menggunakan Selalu Aktif dalam situasi yang sama saat mirroring, atau jika Anda perlu menyeimbangkan beban pertanyaan tertentu. Juga disarankan agar cadangan dibuat dari replika sekunder, ini adalah aplikasi lain dari grup ketersediaan.

Untuk informasi lebih lanjut tentang Grup Ketersediaan Selalu Aktif di SQL Server, lihat.

SQL Server menyediakan berbagai solusi ketersediaan data. Jika Anda memiliki edisi Enterprise dan SQL Server 2012 (dan lebih tinggi), lebih baik menggunakan Always On. Replikasi dapat digunakan untuk membongkar sistem OLTP dengan kueri pemilihan dan untuk redundansi parsial (meskipun replikasi peer-to-peer diposisikan sebagai sarana redundansi data yang lengkap). Pengiriman log transaksi dan pencerminan basis data dapat digunakan dalam versi SQL Server yang lebih lama, atau jika kondisi memaksa Anda untuk menggunakan teknologi ini..

Perlu diingat bahwa semua teknologi ketersediaan tinggi di atas di SQL Server tidak menggantikan cadangan..