Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Replikasi Cloud Hybrid untuk MySQL untuk Ketersediaan Tinggi

Lingkungan hibrida, di mana sebagian infrastruktur basis data terletak di tempat dan beberapa di antaranya terletak di awan publik bukanlah hal yang tidak biasa. Mungkin ada alasan berbeda untuk menggunakan pengaturan tersebut - skalabilitas, fleksibilitas, ketersediaan tinggi, pemulihan bencana. Bagaimana menerapkan pengaturan ini dengan cara yang benar? Ini mungkin menantang karena Anda harus mempertimbangkan beberapa potongan teka-teki yang harus cocok satu sama lain. Blog ini dimaksudkan untuk memberi Anda beberapa wawasan tentang bagaimana tampilan pengaturan seperti itu.

Konektivitas

Kami tidak membahas detailnya di sini karena ada banyak cara untuk menyiapkan konektivitas antara penyiapan lokal dan cloud publik. Itu akan tergantung pada infrastruktur yang Anda miliki, cloud publik yang ingin Anda gunakan, dan banyak faktor lainnya. Rentang opsi dapat dimulai dengan router yang mendukung BGP, melalui VPN perangkat keras, VPN perangkat lunak yang berakhir di terowongan SSH sebagai cara untuk menghubungkan sementara jaringan Anda ke instans di cloud publik. Yang penting, apa pun yang akan Anda lakukan, hasil akhirnya harus berupa konektivitas penuh dan transparan dari jaringan lokal Anda ke instans yang terletak di cloud publik.

Pertimbangan Ketersediaan Tinggi

Replikasi MySQL adalah cara yang bagus untuk membangun sistem yang sangat tersedia tetapi memiliki keterbatasan yang signifikan. Hal utama yang perlu dipertimbangkan adalah penulis - Anda hanya dapat memiliki satu tempat untuk mengirim tulisan Anda - master. Tidak peduli bagaimana Anda ingin mendesain seluruh lingkungan, Anda harus mempertimbangkan penempatan master dengan cermat. Kemungkinan besar Anda ingin itu menjadi bagian dari lingkungan, yang berisi host aplikasi. Mari kita pertimbangkan penyiapan berikut:

Kami memiliki pengaturan lokal dengan tiga node MySQL dan dua budak tambahan terletak di cloud publik, bertindak sebagai sarana pemulihan bencana bagi perusahaan, cukup jelas bahwa node yang dapat ditulisi harus ditempatkan dengan host aplikasi di bagian pribadi cloud. Kami ingin menjaga latensi serendah mungkin untuk koneksi yang paling penting.

Jenis desain ini berfokus pada ketersediaan database - jika node yang terletak di prem tidak akan tersedia, host aplikasi mungkin dapat terhubung ke bagian jauh dari pengaturan - node database berada di awan publik. Idealnya, Anda akan menggunakan semacam proxy untuk ini - ProxySQL adalah salah satu solusi yang dapat melacak topologi dan mengkonfigurasi ulang sesuai kebutuhan berdasarkan rantai replikasi yang ada.

Jika Anda ingin mempertimbangkan lebih banyak penyiapan aktif-aktif di mana Anda memiliki node aplikasi baik privat maupun publik, Anda harus membuat beberapa kompromi karena penulisan harus ditransfer melalui WAN, dari cloud publik ke privat (atau sebaliknya, jika lokasi utama Anda beroperasi di cloud publik).

Sekali lagi, ProxySQL adalah proxy pilihan. Hebatnya, ProxySQL dapat dikonfigurasi sebagai ProxySQL Cluster, memastikan bahwa perubahan konfigurasi yang diperkenalkan di satu node akan direplikasi di seluruh node ProxySQL yang tersisa.

Penanganan Kegagalan

Mari kita pertimbangkan beberapa skenario kegagalan. Sebelum apa pun, kita harus ingat bahwa replikasi asinkron MySQL tidak bersifat cluster-aware oleh karena itu pemisahan jaringan adalah sesuatu yang harus ditangani secara manual - terserah pengguna untuk membuat keputusan dan menarik sakelar untuk mempromosikan salah satu budak di lingkungan yang tersedia. Pengguna juga harus memastikan bahwa lingkungan yang kehilangan konektivitas jaringan akan berperilaku sebagaimana mestinya dan tidak akan terus beroperasi.

Jika bagian pribadi awan menjadi tidak tersedia, seperti yang kami sebutkan sebelumnya, tindakan manual akan diperlukan untuk mempromosikan salah satu budak menjadi master baru. Kemudian semua server aplikasi web yang tersisa yang terletak di cloud publik, menggunakan ProxySQL lokal, lalu lintasnya akan dialihkan ke master baru dan semua slave yang tersisa. Di sisi lain, karena kami kehilangan tiga dari lima node MySQL, kami ingin memperluas penyiapan cloud publik - ClusterControl dapat membantu Anda menambahkan node tambahan ke cluster secara efisien.

Skenario lain mungkin penulis mengalami error saat konektivitas antara penyiapan lokal kami dan cloud publik berfungsi dengan baik.

Dalam skenario seperti itu, kami ingin mempromosikan salah satu budak untuk menjadi master baru. Bergantung pada persyaratan, kami mungkin juga ingin master baru dipromosikan di antara node di bagian lingkungan tertentu. ClusterControl memiliki kemampuan untuk memasukkan node ke daftar putih atau daftar hitam untuk failover, memastikan bahwa Anda memiliki kontrol penuh atas proses failover dan bahwa Anda dapat memilih node mana yang harus dipertimbangkan sebagai kandidat untuk master baru dan urutannya.

Kami harap blog ini memberi Anda gambaran tentang cara kerja hybrid cloud setup untuk replikasi MySQL dan bagaimana hal itu dapat melindungi Anda jika terjadi kegagalan database atau jaringan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DATEDIFF() Contoh – MySQL

  2. Cara Memantau Metrik HAProxy dengan ClusterControl

  3. Tautan Proyek tidak berfungsi di Server Wamp

  4. Cara Menghapus Pivot Tabel di MySQL

  5. Dapatkan nama kolom tabel di MySQL?