Comment restaurer les données du journal binaire

11

Comment restaurer mes fichiers et photos à partir de fichiers binaires?

Anto
la source

Réponses:

7

Savez-vous à partir de quels fichiers binlog vous devez restaurer et combien de fichiers binlog il y a?

En utilisant l' mysqlbinlogutilitaire, nous pouvons afficher le contenu du fichier binlog.

S'il s'agit d'un seul fichier, vous pouvez le récupérer en utilisant:

mysqlbinlog /var/lib/mysql-bin.000016 | mysql uroot pReset123

S'il s'agit de plusieurs fichiers, il suffit d'extraire tout le contenu dans un fichier .sql et de le restaurer directement:

mysqlbinlog /var/lib/mysql-bin.000016 > /logs/allbinlog.sql

Pour ajouter un deuxième contenu binlog au fichier allbinlof.sql, utilisez la commande ci-dessous:

mysqlbinlog /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql

Vous pouvez également exclure certaines déclarations en utilisant l'option de mysqlbinlog. Essayez ceci ci-dessous pour les options:

mysqlbinlog --help
Vinay
la source
4

Utilisez les étapes ci-dessous pour restaurer les données à partir des journaux binaires ou utilisez ce lien pour comprendre le processus de restauration: Restauration du journal binaire MySQL

Tout d'abord, restaurez la base de données à partir de la dernière sauvegarde

mysql -u username -ppassword database_name < dump.sql

Ensuite, effectuez l'une des opérations suivantes:

  • Restaurez le reste des données du journal binaire.

    Si vous avez plusieurs journaux binaires à exécuter sur le serveur MySQL, la méthode sûre consiste à les traiter tous en utilisant une seule connexion au serveur.

    mysqlbinlog mysql_bin.000001 | mysql -u root -ppassword database_name
    mysqlbinlog mysql_bin.000002 | mysql -u root -ppassword database_name
    

    ou:

    mysqlbinlog mysql_bin.000001 mysql_bin.000002 | mysql -u root -ppassword database_name
  • Restaurer les données en fonction du temps

    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
    
  • Restaurer les données sur la base de la position

    mysqlbinlog --start-position=368315 \
                --stop-position=368312 mysql_bin.000001 \
                | mysql -u root -ppassword database_name
    
Saharsh Shah
la source
2
Le premier exemple de restauration de plusieurs journaux binaires est particulièrement dangereux, comme indiqué dans la documentation.
Ruben
2

Vous pouvez utiliser -v option pour rendre le fichier sql dans LISIBLE format.

Par exemple

mysqlbinlog -v /var/lib/mysql-bin.000016 > /logs/allbinlog.sql

mysqlbinlog -v /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql
Ronak Vyas
la source