Artikel ini menjelaskan cara memperoleh file log biner dari PolarDB for MySQL cluster secara remote serta menggunakan mysqlbinlog untuk melihat dan mengurai file tersebut.
Kebijakan untuk memperoleh file log biner
Metode Koneksi | Kebijakan untuk Memperoleh File Log Biner |
| File log biner diperoleh dari node utama. Catatan Untuk informasi lebih lanjut tentang konfigurasi titik akhir kluster, lihat Konfigurasi PolarProxy. |
Titik Akhir Kluster Kustom yang Hanya Terkait dengan Node Baca-Saja | File log biner diperoleh dari salah satu node baca-saja. Catatan Untuk memastikan kebijakan ini berlaku, pastikan kluster Anda menjalankan salah satu versi mesin database berikut:
Jika kluster Anda tidak memenuhi persyaratan, pesan kesalahan Untuk informasi lebih lanjut tentang cara melihat dan memperbarui versi mesin database kluster, lihat Manajemen Versi Revisi. |
Memperoleh file log biner secara remote
Aktifkan pencatatan log biner untuk kluster PolarDB for MySQL. Untuk informasi lebih lanjut, lihat Aktifkan Pencatatan Log Biner.
CatatanUntuk mengakses dan memperoleh file log biner dari kluster PolarDB for MySQL, Anda harus terlebih dahulu mengaktifkan pencatatan log biner untuk kluster tersebut. Jika pencatatan log biner dinonaktifkan, pesan kesalahan
You are not using binary loggingakan ditampilkan saat Anda mencoba melakukan operasi terkait log biner.Instal klien MySQL di server lokal Anda.
Sambungkan ke kluster PolarDB dari klien MySQL. Untuk informasi lebih lanjut, lihat Koneksi Database. Dalam contoh berikut, sistem operasi Linux digunakan.

Jalankan pernyataan berikut pada klien MySQL untuk melihat file log biner dari kluster PolarDB:
show binary logs;Contoh hasil:
+------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000005 | 2639 | +------------------+-----------+ 1 row in set (0.00 sec)Jalankan perintah berikut pada klien MySQL untuk memperoleh file log biner dan menyimpannya ke server Anda:
Dalam contoh ini, klien MySQL berjalan pada sistem operasi Linux. Sebelum menjalankan perintah berikut untuk memperoleh file log biner dan menyimpannya ke server lokal, jalankan perintah exit untuk keluar dari MySQL.

mysqlbinlog -u<Username> -p<Password> -h<Endpoint> --read-from-remote-server --raw mysql-bin.******Contoh perintah:
mysqlbinlog -utest_api -p -htest-polardb.rwlb.rds.aliyuncs.com --read-from-remote-server --raw mysql-bin.000005Parameter
Deskripsi
Contoh
-uNama akun database dari kluster PolarDB for MySQL. Untuk informasi lebih lanjut tentang cara membuat akun database, lihat Buat dan kelola akun database.
test_api-pKata sandi akun database. Jika Anda tidak menentukan kata sandi dalam perintah, Anda diminta untuk memasukkan kata sandi setelah menjalankan perintah.
TestPwd123-hTitik akhir privat atau publik dari kluster PolarDB for MySQL.
CatatanJika titik akhir kluster Anda menggunakan nomor port default, Anda tidak perlu menentukan nomor port. Jika tidak, Anda harus menentukan nomor port setelah titik akhir.
Jika kluster PolarDB for MySQL berjalan di wilayah dan virtual private cloud (VPC) yang sama dengan server Anda, pilih titik akhir privat. Misalnya, jika server Anda dan kluster yang ingin Anda akses berada di wilayah China (Hangzhou) dan berjalan di VPC yang sama, kami sarankan Anda menggunakan titik akhir privat untuk koneksi. Ini memastikan pengalaman akses yang aman dan efisien.
Dalam skenario lain, gunakan titik akhir publik. Untuk informasi lebih lanjut tentang cara mengajukan titik akhir publik, lihat Kelola titik akhir kluster.
test-polardb.rwlb.rds.aliyuncs.com--rawMenentukan bahwa data dalam file log biner ditampilkan dalam format aslinya tanpa diproses.
--rawmysql-bin.******Nama file log biner yang diperoleh saat Anda menjalankan pernyataan
SHOW BINARY LOGS;. Nama tersebut ditampilkan di bidangLog_name.mysql-bin.000005
Gunakan mysqlbinlog untuk melihat dan mengurai file log biner
Jalankan perintah berikut untuk melihat file log biner menggunakan mysqlbinlog:
mysqlbinlog -vv --base64-output=decode-rows mysql-bin.****** | moreCatatan-vv: Menampilkan informasi rinci tentang pernyataan SQL yang dieksekusi dan perubahan lainnya.--base64-output=decode-rows: Mengurai file log biner.Disarankan untuk menggunakan versi MySQL yang sama dengan versi mesin database dari kluster PolarDB for MySQL untuk menghindari masalah seperti kegagalan dalam mengurai file log biner.
Contoh yang disediakan dalam gambar berikut menunjukkan informasi rinci dari file log biner.

Mengurai File Log Biner
Untuk informasi tentang cara mengurai file log biner, lihat Mengurai File Log Biner.
FAQ
Mengapa pesan kesalahan
You are not using binary loggingditampilkan setelah saya menjalankan pernyataanSHOW BINARY LOGS;?Secara default, pencatatan log biner dinonaktifkan untuk kluster PolarDB. Pastikan Anda mengaktifkan pencatatan log biner untuk kluster Anda.
CatatanSetelah Anda mengaktifkan atau menonaktifkan pencatatan log biner, kluster akan otomatis restart agar konfigurasi dapat diterapkan. Disarankan untuk mengaktifkan atau menonaktifkan pencatatan log biner selama jam-jam sepi dan memastikan aplikasi Anda dapat terhubung kembali ke kluster secara otomatis.
Mengapa saya gagal memperoleh file log biner secara remote? Mengapa salah satu pesan kesalahan berikut ditampilkan?
ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 151, event_type: 35 ERROR: Could not read entry at offset 120: Error in log format or read error. ERROR: Goterrorreadingpacketfromserver: 'Slave can not handle replication events with the checksum that master is configured to log;Jika versi mysqlbinlog lebih lama dari versi yang diperlukan, salah satu pesan kesalahan di atas mungkin ditampilkan. Periksa versi mysqlbinlog. Sebelum mencoba memperoleh file log biner secara remote, disarankan untuk memperbarui mysqlbinlog ke versi yang lebih baru. Misalnya, jika salah satu pesan kesalahan di atas dikembalikan saat Anda menggunakan V3.3, Anda dapat meningkatkan mysqlbinlog ke V3.4.
Mengapa saya gagal memperoleh file log biner secara remote? Mengapa pesan kesalahan berikut ditampilkan?
ERROR: Failed on connect: Lost connection to MySQL server at 'reading initial communication packet', system error: 104Pesan kesalahan ini biasanya menunjukkan bahwa koneksi ke server MySQL tidak dapat dibuat. Anda dapat menganalisis masalah dari aspek-aspek berikut:
Konektivitas jaringan. Disarankan untuk memeriksa apakah koneksi jaringan normal dan memastikan Anda dapat mengakses kluster PolarDB Anda.
Pengaturan daftar putih kluster. Disarankan untuk memeriksa apakah alamat IP lokal telah ditambahkan ke daftar putih kluster Anda. Untuk informasi lebih lanjut tentang cara memeriksa apakah alamat IP lokal telah ditambahkan ke daftar putih kluster, lihat Konfigurasikan Daftar Putih IP.
Pengaturan database. Disarankan untuk memeriksa apakah server MySQL lokal Anda dapat terhubung ke database dan memastikan Anda dapat berhasil mengakses database.
Mengapa file log biner yang saya peroleh tidak diurai?
Jika Anda tidak mengonfigurasi parameter
--base64-output=decode-rowssaat menggunakan mysqlbinlog untuk melihat file log biner, file log biner yang dikembalikan tidak diurai. Pastikan Anda mengonfigurasi parameter--base64-output=decode-rowssaat menggunakan mysqlbinlog untuk melihat file log biner.
Mengapa pesan kesalahan
Only allow to dump binary log file on primary instanceditampilkan saat saya mencoba memperoleh file log biner dari node baca-saja?Anda dapat memperoleh file log biner dari node baca-saja hanya jika kluster Anda menjalankan salah satu versi mesin database berikut:
PolarDB for MySQL 8.0 dengan versi revisi 8.0.1.1.12 atau lebih baru.
PolarDB for MySQL 5.7 dengan versi revisi 5.7.1.0.12 atau lebih baru.
Jika tidak, Anda tidak dapat memperoleh file log biner dari node baca-saja. Untuk informasi lebih lanjut tentang cara melihat dan memperbarui versi mesin database kluster, lihat Manajemen Versi Revisi.
Mengapa log biner yang diperoleh dari node baca-saja kadang-kadang tidak konsisten dengan log biner yang diambil dari node utama?
Dalam kluster PolarDB yang terdiri dari node utama dan node baca-saja, node utama mensinkronkan file log biner ke node baca-saja untuk memastikan konsistensi data. Jika terjadi latensi sinkronisasi, node baca-saja mungkin tidak dapat membaca file log biner yang baru saja ditulis ke node utama. Dalam banyak kasus, latensi sinkronisasi rendah ketika ukuran data sumber kecil.
Mengapa file log biner tidak dihapus setelah periode retensi file yang ditentukan oleh parameter binlog_expire_logs_seconds berakhir?
Jika file log biner kedaluwarsa saat sedang dibaca oleh thread dari node baca-saja, file log biner tersebut tidak langsung dihapus. Setelah file log biner baru ditulis ke node utama, sistem memeriksa apakah ada file log biner yang kedaluwarsa. Jika file log biner yang kedaluwarsa tidak diakses oleh thread dari node baca-saja, file log biner yang kedaluwarsa tersebut dihapus.