Saat memulai tugas migrasi data inkremental antar database MySQL, Data Transmission Service (DTS) melakukan Pemeriksaan Awal terhadap pengaturan log biner pada database sumber. Topik ini mencakup setiap item pemeriksaan log biner dan cara mengatasi kegagalannya.
Pengaktifan log biner
Memverifikasi bahwa binary logging diaktifkan pada database sumber. Jika pemeriksaan ini gagal, atasi masalah tersebut sebagai berikut.
Solusi:
-
Login ke server yang menghosting database MySQL yang dikelola sendiri Anda.
-
Gunakan
vimuntuk mengedit parameter berikut dalam file konfigurasi my.cnf.CatatanJalur default my.cnf adalah /etc/my.cnf. Jalur aktual Anda mungkin berbeda.
log_bin=mysql_bin binlog_format=row server_id=2 # Bilangan bulat lebih besar dari 1. Nilai ini hanya sebagai contoh. binlog_row_image=full # Diperlukan jika database sumber menggunakan MySQL 5.6 atau versi lebih baru. -
Restart layanan MySQL:
/etc/init.d/mysqld restartCatatanMetode restart lain mungkin berlaku tergantung pada konfigurasi Anda.
-
Login ke database sumber MySQL yang dikelola sendiri Anda dan jalankan pernyataan SQL berikut untuk memverifikasi bahwa binary logging telah diaktifkan.
show variables like '%log_bin%';Output yang diharapkan:
MariaDB [pro1]> show variables like '%log_bin%'; +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | log_bin | ON | | log_bin_trust_function_creators | OFF | | sql_log_bin | ON | +----------------------------------+-------+ 3 rows in set (0.00 sec) -
Jalankan kembali Pemeriksaan Awal DTS.
Format log biner
Memverifikasi bahwa format binary logging pada database sumber diatur ke ROW. Jika pemeriksaan ini gagal, atasi masalah tersebut sebagai berikut.
Solusi:
-
Login ke server yang menghosting database MySQL yang dikelola sendiri Anda.
-
Dalam file konfigurasi my.cnf, atur parameter binlog_format ke
ROW.CatatanJalur default my.cnf adalah /etc/my.cnf. Jalur aktual Anda mungkin berbeda.
log_bin=mysql_bin binlog_format=row # Atur format binary logging ke row. server_id=2 # Bilangan bulat lebih besar dari 1. Nilai ini hanya sebagai contoh. binlog_row_image=full # Diperlukan jika database sumber menggunakan MySQL 5.6 atau versi lebih baru. -
Restart layanan MySQL:
/etc/init.d/mysqld restartCatatanMetode restart lain mungkin berlaku tergantung pada konfigurasi Anda.
-
Login ke database sumber MySQL yang dikelola sendiri Anda dan jalankan pernyataan SQL berikut untuk mengonfirmasi bahwa format binary logging adalah
ROW.show variables like "%binlog_format%";Output yang diharapkan:
MariaDB [(none)]> show variables like "%binlog_format%"; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | binlog_format | ROW | +---------------+-------+ 1 row in set (0.01 sec) -
Jalankan kembali Pemeriksaan Awal DTS.
Ketersediaan log biner
Memverifikasi bahwa tidak ada file log biner yang telah dihapus dari database sumber. Kegagalan berarti urutan log biner tidak lengkap. Jika pemeriksaan ini gagal, atasi masalah tersebut sebagai berikut.
Solusi:
-
Pada kotak dialog Precheck, klik ikon Info di sebelah item pemeriksaan ketersediaan file log biner.
-
Pada kotak dialog View More, identifikasi penyebab kegagalan dan catat nama file log biner yang hilang.
-
Evaluasi file log biner yang hilang dan pilih aksi yang sesuai.
-
Jika file log biner yang hilang tidak kritis dan datanya dapat dibuang, login ke database sumber MySQL yang dikelola sendiri Anda dan jalankan pernyataan SQL berikut untuk purge semua file log biner sebelum file yang ditentukan:
PURGE BINARY LOGS TO '[$Binlog_Filename]';Catatan[$Binlog_Filename] adalah file log biner pertama yang akan dipertahankan. Misalnya, jika
mysql_bin.000003hilang, gunakanmysql_bin.000004. Ini akan purge semua file sebelummysql_bin.000004. -
Jika file yang hilang bersifat kritis, hubungi administrator basis data Anda untuk memulihkannya.
-
-
Jalankan kembali Pemeriksaan Awal DTS.
Pengaturan binlog_row_image
Pemeriksaan ini hanya berlaku untuk MySQL 5.6 atau versi lebih baru. Pemeriksaan ini memverifikasi bahwa parameter binlog_row_image pada database sumber diatur ke full. Kegagalan berarti log biner tidak mencatat gambar baris lengkap. Jika pemeriksaan ini gagal, atasi masalah tersebut sebagai berikut.
Solusi:
-
Login ke server yang menghosting database MySQL yang dikelola sendiri Anda.
-
Dalam file konfigurasi my.cnf, atur parameter binlog_row_image ke
full.CatatanJalur default my.cnf adalah /etc/my.cnf. Jalur aktual Anda mungkin berbeda.
log_bin=mysql_bin binlog_format=row server_id=2 # Bilangan bulat lebih besar dari 1. Nilai ini hanya sebagai contoh. binlog_row_image=full # Diperlukan jika database sumber menggunakan MySQL 5.6 atau versi lebih baru. -
Restart layanan MySQL:
/etc/init.d/mysqld restartCatatanMetode restart lain mungkin berlaku tergantung pada konfigurasi Anda.
-
Login ke database sumber dan jalankan pernyataan SQL berikut untuk memverifikasi bahwa binlog_row_image diatur ke
FULL.show variables like "binlog_row_image"; -
Jalankan kembali Pemeriksaan Awal DTS.