MySQL 8.0 Dynamic Redo Log Sizing

Database


Ubah ukuran log sistem dinamisPosting blog ini membahas fitur terbaru yang tersedia di MySQL 8.0.30: mengubah ukuran log dinamis. Setelah ukuran buffer pool InnoDB, dapat dikatakan bahwa memiliki ukuran yang tepat untuk redo log sangat penting untuk kinerja MySQL. Ada banyak posting blog tentang cara menghitung ukuran repost yang baik. Salah satu posting blog klasik kami adalah yang ini dari Baron: Cara Menghitung Ukuran File Log InnoDB yang Baik ((Posting blog itu dari tahun 2008 dan masih merupakan formula yang valid untuk digunakan.)

Sekarang, masalah apa yang coba dipecahkan oleh fitur ini?

Di MySQL, buffer pool dan ukuran log adalah pengaturan yang tidak terlalu sering berubah. Biasanya pengaturan ini diatur selama instalasi database. Setelah itu, mereka dilupakan sampai muncul masalah. Masalahnya adalah bahwa mereka sebelumnya telah diperbaiki, yang berarti Anda harus me-restart MySQL agar perubahan diterapkan.

MySQL memperbaiki masalah kumpulan buffer dengan pengubahan ukuran dinamis di MySQL 5.7. Sekarang, MySQL 8.0.30 memperbaiki masalah pendaftaran ulang. Mengubah ukuran sederhana dan mudah:

Pengaturan ini berfungsi untuk mengubah ukuran ke nilai yang lebih tinggi dan lebih rendah dari nilai yang ditentukan saat ini. Untuk melakukan ini, file redo log sekarang berada di direktori baru di dalamnya datadir bernama #innodb_redo Kecuali direktori lain oleh innodb_log_group_home_dir Variabel. Ada dua jenis file redo, reguler dan cadangan. File log redo normal adalah yang digunakan. File log redo cadangan adalah file yang menunggu untuk digunakan. InnoDB memelihara total 32 file log redo, ukuran setiap file adalah 1/32 * innodb_redo_log_capacity. Namun, ukuran file dapat berubah untuk beberapa waktu setelah modifikasi innodb_redo_log_capacity setting.

Ulangi file log menggunakan a #ib_redoN konvensi penamaan, di mana N adalah nomor file redo log. File log redo cadangan ditunjukkan oleh a _tmp Akhiran. Contoh berikut menunjukkan file redo di a #innodb_redo direktori, di mana 18 file redo aktif dan 14 file redo redo diberi nomor secara berurutan.

Beberapa variabel status disediakan untuk memantau pendaftaran ulang dan operasi pengubahan ukuran kapasitas pendaftaran ulang. Misalnya, Anda dapat menanyakan Innodb_redo_log_resize_status Untuk melihat status operasi pengubahan ukuran:

ini Innodb_redo_log_capacity_resized Variabel status menunjukkan batas kapasitas login ulang saat ini:

Variabel status lainnya termasuk:

MySQL 8.0.30 juga memperkenalkan beberapa pesan kesalahan baru yang terkait dengan masalah ini. Untuk menyebutkan beberapa:

Jika Anda ingin memeriksa lebih lanjut, Anda dapat menggunakan tautan ini. Semua pesan kesalahan login ulang menggunakan program ER_IB_MSG_LOG_WRITER_ Konvensi penamaan

Perkiraan kapasitas pendaftaran ulang

Dengan variabel status baru ini, kami dapat memperkirakan ukuran relog menggunakan kueri berikut:

Dan dengan output yang disediakan oleh kueri sebelumnya, kami menjalankan yang berikut:

Jadi, dalam hal ini, menulis sekitar ~250MB/mnt ke file redo akan menjadi ukuran 250×60 (1 jam), sama dengan 15GB.

Parameter usang

Untuk melakukan ini, MySQL menghentikan dua parameter: innodb_log_files_in_group Dan innodb_log_file_size .

Jika Anda mencoba mengaturnya sebagian my.cnf file, mereka diabaikan dan peringatan dicetak di log kesalahan:

Hasil

Pengubahan ukuran dinamis memberi DBA lebih banyak fleksibilitas saat pengubahan ukuran diperlukan, dan aplikasi tidak dapat dihentikan untuk memulai ulang MySQL. Saat ini tidak ada laporan bug untuk fitur ini. Salah satu rekomendasinya adalah memeriksa apakah alat pencadangan Anda kompatibel dengan MySQL 8.0.30 dan fitur-fitur barunya. Terakhir, selalu pastikan untuk memeriksa inventaris Anda my.cnf Karena parameter usang

Sumber daya yang berguna

Anda dapat menghubungi kami melalui jejaring sosial, forum kami, atau mengakses konten kami menggunakan tautan yang disediakan di bawah ini:





Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *