MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Panduan untuk Replikasi Streaming Cluster Galera MySQL:Bagian Satu

Replikasi Streaming adalah fitur baru yang diperkenalkan dengan rilis 4.0 Galera Cluster. Galera menggunakan replikasi secara sinkron di seluruh cluster, tetapi sebelum rilis ini, set tulis yang lebih besar dari 2 GB tidak didukung. Replikasi Streaming sekarang memungkinkan Anda untuk mereplikasi set tulis besar, yang sempurna untuk penyisipan massal atau memuat data ke database Anda.

Di blog sebelumnya kami menulis tentang Menangani Transaksi Besar dengan Replikasi Streaming dan MariaDB 10.4, tetapi hingga blog ini ditulis, Codership belum merilis versi Cluster Galera baru mereka. Namun, Percona telah merilis versi biner eksperimental Percona XtraDB Cluster 8.0 yang menyoroti fitur berikut...

  • Replikasi Streaming yang mendukung transaksi besar

  • Fungsi sinkronisasi memungkinkan koordinasi tindakan (wsrep_last_seen_gtid, wsrep_last_written_gtid, wsrep_sync_wait_upto_gtid)

  • Log kesalahan yang lebih terperinci dan lebih baik. wsrep_debug sekarang menjadi variabel multi-nilai untuk membantu mengontrol logging, dan pesan logging telah ditingkatkan secara signifikan.

  • Beberapa kesalahan DML dan DDL pada node replikasi dapat diabaikan atau ditekan. Gunakan variabel wsrep_ignore_apply_errors untuk mengonfigurasi.

  • Beberapa tabel sistem membantu mengetahui lebih lanjut tentang status status cluster.

  • Infrastruktur wsrep Galera 4 lebih kuat daripada Galera 3. Ini menampilkan eksekusi kode yang lebih cepat dengan penanganan status yang lebih baik, peningkatan prediktabilitas, dan penanganan kesalahan.

Apa yang Baru Dengan Galera Cluster 4.0?

Fitur Replikasi Streaming Baru

Dengan Replikasi Streaming, transaksi direplikasi secara bertahap dalam fragmen kecil selama pemrosesan transaksi (yaitu sebelum komit sebenarnya, kami mereplikasi sejumlah fragmen ukuran kecil). Fragmen yang direplikasi kemudian diterapkan di utas budak, mempertahankan status transaksi di semua node cluster. Fragmen menahan kunci di semua node dan tidak dapat bentrok nanti.

Tabel Sistem Galera 

Administrator Database dan klien dengan akses ke database MySQL dapat membaca tabel ini, tetapi mereka tidak dapat mengubahnya karena database itu sendiri akan membuat modifikasi yang diperlukan. Jika server Anda tidak memiliki tabel ini, mungkin server Anda menggunakan Galera Cluster versi lama.

#> show tables from mysql like 'wsrep%';

+--------------------------+

| Tables_in_mysql (wsrep%) |

+--------------------------+

| wsrep_cluster            |

| wsrep_cluster_members    |

| wsrep_streaming_log      |

+--------------------------+

3 rows in set (0.12 sec)

Fungsi Sinkronisasi Baru 

Versi ini memperkenalkan serangkaian fungsi SQL untuk digunakan dalam operasi sinkronisasi wsrep. Anda dapat menggunakannya untuk mendapatkan ID Transaksi Global yang didasarkan pada transaksi terakhir tulis atau terakhir dilihat. Anda juga dapat menyetel node untuk menunggu GTID tertentu direplikasi dan diterapkan, sebelum memulai transaksi berikutnya.

Seleksi Donor Cerdas

Beberapa fitur sederhana yang telah hadir sejak Galera 3.x termasuk pemilihan donor cerdas dan pemulihan kerusakan cluster. Ini awalnya direncanakan untuk Galera 4, tetapi dibuat menjadi rilis sebelumnya sebagian besar karena kebutuhan pelanggan. Ketika datang ke pemilihan node donor di Galera 3, donor State Snapshot Transfer (SST) dipilih secara acak. Namun dengan Galera 4, Anda mendapatkan pilihan yang jauh lebih cerdas dalam memilih donor, karena akan lebih menyukai donor yang dapat memberikan Incremental State Transfer (IST), atau memilih donor di segmen yang sama. Sebagai Administrator Basis Data, Anda dapat memaksa ini melalui pengaturan wsrep_sst_donor.

Mengapa Menggunakan Replikasi Streaming Cluster Galera MySQL?

Transaksi Jangka Panjang

Masalah dan batasan Galera selalu berkisar pada cara menangani transaksi yang berjalan lama dan sering kali menyebabkan seluruh kluster melambat karena kumpulan tulis besar direplikasi. Kontrol alirannya sering menjadi tinggi, menyebabkan penulisan melambat atau bahkan menghentikan proses untuk mengembalikan cluster kembali ke keadaan normal. Ini adalah masalah yang cukup umum dengan versi Galera Cluster sebelumnya.

Codership menyarankan untuk menggunakan Replikasi Streaming untuk transaksi jangka panjang Anda guna mengurangi situasi ini. Setelah node mereplikasi dan mengesahkan sebuah fragmen, transaksi lain tidak mungkin lagi membatalkannya.

Transaksi Besar

Ini sangat membantu saat memuat data ke laporan atau analitik Anda. Membuat penyisipan massal, penghapusan, pembaruan, atau menggunakan pernyataan LOAD DATA untuk memuat data dalam jumlah besar dapat termasuk dalam kategori ini. Meskipun itu tergantung pada bagaimana Anda mengelola data Anda untuk pengambilan atau penyimpanan. Anda harus mempertimbangkan bahwa Replikasi Streaming memiliki keterbatasan sehingga kunci sertifikasi dihasilkan dari kunci rekaman.

Tanpa Replikasi Streaming, memperbarui sejumlah besar catatan akan mengakibatkan konflik dan seluruh transaksi harus dibatalkan. Budak yang juga mereplikasi transaksi besar tunduk pada kontrol aliran saat mencapai ambang batas dan mulai memperlambat seluruh cluster untuk memproses penulisan apa pun karena mereka cenderung santai menerima transaksi masuk dari replikasi sinkron. Galera akan mengendurkan replikasi hingga set tulis dapat dikelola karena memungkinkan untuk melanjutkan replikasi lagi. Periksa blog eksternal ini oleh Percona untuk membantu Anda memahami lebih lanjut tentang kontrol aliran dalam Galera.

Dengan Replikasi Streaming, node mulai mereplikasi data dengan setiap fragmen transaksi, daripada menunggu komit. Ini berarti bahwa tidak ada cara untuk transaksi yang bertentangan yang berjalan di dalam node lain untuk dibatalkan karena ini hanya menegaskan bahwa cluster telah mensertifikasi set tulis untuk fragmen khusus ini. Gratis untuk menerapkan dan melakukan transaksi bersamaan lainnya tanpa memblokir dan memproses transaksi besar dengan dampak minimal pada cluster.

Rekor Populer/Titik Populer

Catatan atau baris populer adalah baris di tabel Anda yang terus diperbarui. Data ini bisa menjadi yang paling banyak dikunjungi dan sangat mendapatkan lalu lintas dari seluruh basis data Anda (misalnya umpan berita, penghitung seperti jumlah kunjungan atau log). Dengan Replikasi Streaming, Anda dapat memaksa pembaruan penting ke seluruh cluster.

Seperti yang dicatat oleh Tim Galera di Codership

“Menjalankan transaksi dengan cara ini secara efektif mengunci hot record di semua node, mencegah transaksi lain memodifikasi baris. Ini juga meningkatkan kemungkinan transaksi akan berhasil dan klien pada gilirannya akan menerima hasil yang diinginkan.”

Ini datang dengan batasan karena mungkin tidak persisten dan konsisten bahwa Anda akan berhasil melakukan komit. Tanpa menggunakan Replikasi Streaming, Anda akan mendapatkan peluang atau kemunduran yang tinggi dan hal itu dapat menambah beban bagi pengguna akhir saat mengalami masalah ini dalam perspektif aplikasi.

Hal yang Perlu Dipertimbangkan Saat Menggunakan Replikasi Streaming

  • Kunci sertifikasi dihasilkan dari kunci rekaman, oleh karena itu kunci tersebut tidak mencakup kunci celah atau kunci kunci berikutnya. Jika transaksi menggunakan gap lock, ada kemungkinan transaksi yang dieksekusi pada node lain akan menerapkan write set yang bertemu gap log dan akan membatalkan streaming transaksi.
  • Saat mengaktifkan Replikasi Streaming, log set tulis ditulis ke tabel wsrep_streaming_log yang ditemukan di database sistem mysql untuk mempertahankan kegigihan jika terjadi kerusakan, jadi tabel ini berfungsi saat pemulihan. Dalam kasus logging yang berlebihan dan overhead replikasi yang tinggi, replikasi streaming akan menyebabkan penurunan tingkat throughput transaksi. Ini bisa menjadi hambatan kinerja ketika beban puncak tinggi tercapai. Oleh karena itu, sebaiknya Anda hanya mengaktifkan Replikasi Streaming pada tingkat sesi, lalu hanya untuk transaksi yang tidak akan berjalan dengan benar tanpanya.
  • Kasus penggunaan terbaik adalah menggunakan replikasi streaming untuk memotong transaksi besar
  • Setel ukuran fragmen menjadi ~10 ribu baris
  • Variabel fragmen adalah variabel sesi dan dapat disetel secara dinamis
  • Aplikasi cerdas dapat mengaktifkan/menonaktifkan replikasi streaming berdasarkan kebutuhan

Kesimpulan

Terima kasih telah membaca, di bagian kedua kita akan membahas cara mengaktifkan Replikasi Streaming Cluster Galera dan seperti apa hasilnya untuk penyiapan Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 8 Cara Menambahkan Mikrodetik ke Nilai Datetime di MariaDB

  2. Makan makanan anjing kita sendiri – Menjalankan JIRA di MariaDB

  3. Bagaimana DAYOFWEEK() Bekerja di MariaDB

  4. Bagaimana SPACE() Bekerja di MariaDB

  5. Menggunakan Flashback MariaDB di Server MySQL