Saya bukan orang MySQL, jadi ini keluar dari bidang kiri.
Tapi saya pikir file log mungkin jawabannya.
Untungnya, Anda benar-benar hanya perlu mengetahui 2 hal dari log.
Anda membutuhkan record/rowid, dan Anda membutuhkan operasinya.
Di sebagian besar DB, dan saya berasumsi MySQL, ada kolom implisit di setiap baris, seperti rowid atau recordid, atau apa pun. Ini adalah nomor baris internal yang digunakan oleh database. Ini adalah kunci utama "gratis" Anda.
Selanjutnya, Anda perlu operasi. Khususnya apakah itu operasi penyisipan, pembaruan, atau penghapusan pada baris.
Anda menggabungkan semua informasi ini, dalam urutan waktu, dan kemudian menjalankannya.
Untuk setiap penyisipan/pembaruan, Anda memilih baris dari DB asli Anda, dan menyisipkan/memperbarui baris itu di DB tujuan Anda. Jika menghapus, maka Anda menghapus baris.
Anda tidak peduli dengan nilai bidang, itu tidak penting. Lakukan seluruh baris.
Mudah-mudahan Anda tidak perlu "mem-parsing" file log biner, MySQL sudah harus memiliki rutinitas untuk melakukannya, Anda hanya perlu menemukan dan mencari cara untuk menggunakannya (bahkan mungkin ada beberapa utilitas "dump log" yang berguna yang dapat Anda gunakan ).
Ini memungkinkan Anda menjaga sistem tetap sederhana, dan seharusnya hanya bergantung pada aktivitas Anda yang sebenarnya di siang hari, daripada total ukuran DB. Terakhir, Anda bisa mengoptimalkannya nanti dengan menjadikannya "lebih pintar". Misalnya, mungkin mereka menyisipkan baris, lalu memperbaruinya, lalu menghapusnya. Anda akan tahu bahwa Anda dapat mengabaikan baris itu sepenuhnya dalam tayangan ulang Anda.
Jelas ini membutuhkan sedikit pengetahuan misterius untuk benar-benar membaca file log, tetapi sisanya harus langsung. Saya ingin berpikir bahwa file log juga diberi stempel waktu, sehingga Anda dapat mengetahui untuk bekerja pada baris "mulai hari ini", atau rentang tanggal apa pun yang Anda inginkan.