All Products
Search
Document Center

ApsaraDB RDS:Binlog dalam Redo

Last Updated:Nov 10, 2025

Fitur Binlog dalam Redo memungkinkan sistem untuk secara sinkron menulis log biner ke dalam file redo log ketika transaksi dikomit. Hal ini mengurangi operasi I/O pada disk dan meningkatkan kinerja database.

Prasyarat

  • Instans RDS Anda menjalankan MySQL 8.0.

  • Versi mesin minor dari instans RDS Anda adalah 20200430 atau lebih baru. Untuk informasi lebih lanjut tentang cara memperbarui versi mesin minor sebuah instans, lihat Tingkatkan Versi Kernel Minor.

  • Parameter sync_binlog dari instans RDS Anda diatur ke 1, dan parameter binlog_order_commits diatur ke OFF. Untuk informasi lebih lanjut, lihat Atur Parameter Instans.

  • Mode replikasi data dari instans diatur ke replikasi asinkron. Untuk informasi lebih lanjut, lihat Kueri dan Ubah Mode Replikasi Data.

Informasi latar belakang

Untuk memastikan keamanan data dalam skenario bisnis MySQL yang penting, sistem secara sinkron menyimpan baik log biner maupun redo log ketika transaksi dikomit. Dalam hal ini, pengaturan parameter berikut harus dikonfigurasi:

sync_binlog = 1;
innodb_flush_log_at_trx_commit = 1;

Setiap kali transaksi dikomit, sistem melakukan dua operasi I/O. Satu untuk menulis log biner ke disk, dan yang lainnya untuk menulis redo log ke disk. Meskipun Group Commit diaktifkan untuk log biner, sistem harus menunggu kedua operasi I/O selesai. Hal ini memengaruhi efisiensi pemrosesan transaksi, terutama ketika menggunakan disk cloud. Kinerja penggabungan I/O bervariasi berdasarkan jumlah transaksi bersamaan yang dikomit. Ketika jumlah transaksi bersamaan kecil, kinerjanya rendah. Sebagai contoh, ketika sejumlah kecil transaksi tulis dikomit, respons sistem lambat.

Untuk meningkatkan efisiensi komitmen transaksi, AliSQL menyediakan fitur Binlog dalam Redo. Anda dapat mengaktifkan fitur ini dengan mengatur parameter persist_binlog_to_redo menjadi on. Ketika transaksi dikomit, sistem secara sinkron menulis log biner ke file redo log dan hanya menyimpan file redo log ke disk. Ini mengurangi konsumsi I/O. File log biner disimpan secara asinkron ke disk menggunakan thread terpisah pada interval tertentu. Jika operasi restart dipicu oleh pengecualian, sistem menggunakan log biner dalam file redo log untuk melengkapi file log biner. Dengan cara ini, kinerja database ditingkatkan dan respons sistem lebih cepat. Selain itu, jumlah penyimpanan file log biner berkurang, yang secara signifikan mengurangi tekanan pada sistem file dan meningkatkan kinerja. Tekanan tersebut dihasilkan dari panggilan fungsi fsync yang dipicu oleh pembaruan file secara real-time.

Fitur Binlog dalam Redo tidak mengubah format log biner. Replikasi dan alat pihak ketiga yang memerlukan log biner tidak terpengaruh.

Catatan penggunaan

Jika Anda mengaktifkan fitur Binlog dalam Redo untuk instans RDS yang menggunakan Premium Local SSDs dan ingin memulihkan data instans RDS ke database yang dikelola sendiri menggunakan file cadangan fisik, Anda harus menggunakan alat XtraBackup yang disediakan oleh ApsaraDB RDS. Untuk informasi lebih lanjut, lihat Persiapan Alat.

Parameter

  • persist_binlog_to_redo

    Parameter ini menentukan apakah akan mengaktifkan fitur Binlog dalam Redo. Parameter ini adalah variabel sistem global. Nilai valid: on dan off. Jika Anda mengubah nilai parameter ini, perubahan tersebut langsung berlaku tanpa perlu me-restart instans RDS Anda.

    Catatan

    Untuk mengaktifkan fitur Binlog dalam Redo, Anda harus mengatur parameter persist_binlog_to_redo menjadi on, mengatur parameter binlog_order_commits menjadi off, dan mengatur mode replikasi data menjadi replikasi asinkron.

    Fitur Binlog dalam Redo hanya dapat diaktifkan jika parameter sync_binlog dari instans diatur ke 1. Jika tidak, fitur ini tidak akan diaktifkan meskipun pengaturan sebelumnya telah dikonfigurasi. Dalam hal ini, kami sarankan Anda menggunakan fitur Binlog Parallel Flush untuk mengoptimalkan kinerja instans. Untuk informasi lebih lanjut tentang fitur tersebut, lihat Gunakan Fitur Binlog Parallel Flush.

  • sync_binlog_interval

    Interval di mana log biner disimpan secara asinkron. Parameter ini adalah variabel sistem global dan hanya berlaku ketika parameter persist_binlog_to_redo diatur ke on. Nilai default: 50. Unit: milidetik (ms). Dalam kebanyakan kasus, nilai default direkomendasikan. Jika Anda mengubah nilai parameter ini, perubahan tersebut langsung berlaku tanpa perlu me-restart instans RDS Anda.

Pengujian stres

  • Lingkungan Pengujian

    • Server aplikasi: sebuah instans Alibaba Cloud Elastic Compute Service (ECS)

    • Spesifikasi instans RDS: 32 core CPU, 128 GB memori, dan ESSD (Enhanced SSD)

    • Edisi RDS: Edisi Ketersediaan Tinggi RDS dengan replikasi data asinkron

  • Kasus Pengujian

    Sysbench menyediakan kasus pengujian berikut:

    • oltp_update_non_index

    • oltp_insert

    • oltp_write_only

  • Hasil Pengujian

    • oltp_update_non_index

      Setelah fitur Binlog dalam Redo diaktifkan, permintaan per detik (QPS) meningkat secara signifikan dan latensi rendah ketika jumlah query bersamaan kecil.

      oltp_update_non_index-QPSoltp_update_non_index-laterncy

    • oltp_insert

      Setelah fitur Binlog dalam Redo diaktifkan, QPS meningkat secara signifikan dan latensi rendah ketika jumlah query bersamaan kecil.

      oltp_insert-QPSoltp_insert-latency

    • oltp_write_only

      Setelah fitur Binlog dalam Redo diaktifkan, QPS sedikit meningkat dan latensi rendah ketika jumlah query bersamaan kecil.

      oltp_write_only-QPSoltp_write_only-latency

    • Jumlah Panggilan Fungsi fsync untuk Log Biner

      Setelah fitur Binlog dalam Redo diaktifkan, jumlah panggilan berkurang secara signifikan.

      Binlog Fsync

Kesimpulan pengujian

  • Kasus pengujian oltp_update_non_index dan oltp_insert menguji transaksi satu pernyataan, dan transaksi tersebut dikomit secara sering. Kasus pengujian oltp_write_only menguji transaksi multi-pernyataan, dan transaksi tersebut dikomit secara kurang sering. Jenis transaksi ini berisi dua pernyataan UPDATE, satu pernyataan DELETE, dan satu pernyataan INSERT. Peningkatan kinerja dalam kasus pengujian oltp_update_non_index dan oltp_insert lebih mencolok dibandingkan dengan kasus pengujian oltp_write_only.

  • Ketika jumlah transaksi bersamaan kurang dari 256, fitur Binlog dalam Redo secara signifikan meningkatkan kinerja database dan mengurangi latensi. Dalam sebagian besar skenario, fitur Binlog dalam Redo memberikan manfaat yang signifikan.

  • Fitur Binlog dalam Redo secara signifikan mengurangi jumlah panggilan fungsi fsync untuk log biner, yang meningkatkan kinerja sistem file.