全部产品
Search
文档中心

PolarDB:Memperoleh dan mengurai file log biner dari cluster PolarDB for MySQL secara remote

更新时间:Jul 06, 2025

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

  • Titik Akhir Utama

  • Titik Akhir Kluster Default

  • Titik Akhir Kluster Kustom yang Terkait dengan Node Utama

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:

  • 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 kluster Anda tidak memenuhi persyaratan, pesan kesalahan Only allow to dump binary log file on primary instance akan ditampilkan saat Anda mencoba 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.

Memperoleh file log biner secara remote

  1. Aktifkan pencatatan log biner untuk kluster PolarDB for MySQL. Untuk informasi lebih lanjut, lihat Aktifkan Pencatatan Log Biner.

    Catatan

    Untuk 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 logging akan ditampilkan saat Anda mencoba melakukan operasi terkait log biner.

  2. Instal klien MySQL di server lokal Anda.

  3. Sambungkan ke kluster PolarDB dari klien MySQL. Untuk informasi lebih lanjut, lihat Koneksi Database. Dalam contoh berikut, sistem operasi Linux digunakan.1

  4. 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)
  5. 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.2

    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.000005

    Parameter

    Deskripsi

    Contoh

    -u

    Nama akun database dari kluster PolarDB for MySQL. Untuk informasi lebih lanjut tentang cara membuat akun database, lihat Buat dan kelola akun database.

    test_api

    -p

    Kata sandi akun database. Jika Anda tidak menentukan kata sandi dalam perintah, Anda diminta untuk memasukkan kata sandi setelah menjalankan perintah.

    TestPwd123

    -h

    Titik akhir privat atau publik dari kluster PolarDB for MySQL.

    Catatan
    • Jika 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

    --raw

    Menentukan bahwa data dalam file log biner ditampilkan dalam format aslinya tanpa diproses.

    --raw

    mysql-bin.******

    Nama file log biner yang diperoleh saat Anda menjalankan pernyataan SHOW BINARY LOGS;. Nama tersebut ditampilkan di bidang Log_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.****** | more
    Catatan
    • -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.

    3

  • 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 logging ditampilkan setelah saya menjalankan pernyataan SHOW BINARY LOGS;?

    Secara default, pencatatan log biner dinonaktifkan untuk kluster PolarDB. Pastikan Anda mengaktifkan pencatatan log biner untuk kluster Anda.

    Catatan

    Setelah 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: 104

    Pesan 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-rows saat menggunakan mysqlbinlog untuk melihat file log biner, file log biner yang dikembalikan tidak diurai. Pastikan Anda mengonfigurasi parameter --base64-output=decode-rows saat menggunakan mysqlbinlog untuk melihat file log biner.

    3

  • Mengapa pesan kesalahan Only allow to dump binary log file on primary instance ditampilkan 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.