Yanıtlar:
Hangi binlog dosyalarından geri yüklemeniz gerektiğini ve kaç binlog dosyasının olduğunu biliyor musunuz?
mysqlbinlog
Yardımcı programı kullanarak binlog dosyası içeriğini görüntüleyebiliriz.
Tek bir dosyaysa kullanarak kurtarabilirsiniz:
mysqlbinlog /var/lib/mysql-bin.000016 | mysql –uroot –pReset123
Birden fazla dosyaysa, tüm içeriği bir .sql dosyasına ayıklayın ve doğrudan geri yükleyin:
mysqlbinlog /var/lib/mysql-bin.000016 > /logs/allbinlog.sql
Allbinlof.sql dosyasına ikinci binlog içeriği eklemek için aşağıdaki komutu kullanın:
mysqlbinlog /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql
Ayrıca mysqlbinlog seçeneğini kullanarak belirli ifadeleri hariç tutabilirsiniz. Seçenekler için aşağıdakileri deneyin:
mysqlbinlog --help
İkili günlüklerden verileri geri yüklemek için aşağıdaki adımları kullanın veya geri yükleme işlemini anlamak için bu bağlantıyı kullanın: MySQL İkili Günlük Restorasyonu
İlk olarak, veritabanını en son yedeklemeden geri yükleyin
mysql -u username -ppassword database_name < dump.sql
Sonra şunlardan birini yapın:
Geri kalan verileri ikili günlükten geri yükleyin.
MySQL sunucusunda yürütülecek birden fazla ikili günlüğünüz varsa, güvenli yöntem, sunucuya tek bir bağlantı kullanarak hepsini işlemektir.
mysqlbinlog mysql_bin.000001 | mysql -u root -ppassword database_name
mysqlbinlog mysql_bin.000002 | mysql -u root -ppassword database_name
veya:
mysqlbinlog mysql_bin.000001 mysql_bin.000002 | mysql -u root -ppassword database_name
Verileri zamana göre geri yükleme
mysqlbinlog --start-datetime="2005-04-20 10:01:00" \
--stop-datetime="2005-04-20 9:59:59" mysql_bin.000001 \
| mysql -u root -ppassword database_name
Konum temelinde verileri geri yükle
mysqlbinlog --start-position=368315 \
--stop-position=368312 mysql_bin.000001 \
| mysql -u root -ppassword database_name
.Sql dosyasını READABLE biçiminde yapmak için -v seçeneğini kullanabilirsiniz .
Örneğin
mysqlbinlog -v /var/lib/mysql-bin.000016 > /logs/allbinlog.sql
mysqlbinlog -v /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql