Maison base de données tutoriel mysql 通过Mysql-bin日志恢复还原数据

通过Mysql-bin日志恢复还原数据

Jun 07, 2016 pm 05:22 PM
binlog

提取出来后,里面就是所有对terminfo的sql语句了,把这些数据导入到测试库terminfo0730表中

事情是这样的:由于个人粗心,在7月30号那天协助其它部门批量更新一些数据,谁知道全局更新了,而这个问题竟然在9月26号才发现告知我。他们要求把更新有误的数据恢复到7月30号之前状态,并且7月30号到9月26号这段时间所做的增删改的操作也要更新进去。由于之前没啥经验,心里也没底,但是没办法,自己做错事自己承担。

做法思路:把备份的数据导到测试库里面去,然后把7月30号到9月26号之间的binlog日志提取出对这个表进行操作的sql语句,然后再导进去。

苦逼的还原过程开始了.........

1.幸好本人养成了个好习惯,无论改动的大小我都会先备份一份数据

-rw-r--r-- 1 root root 2473664 07-30 09:38 terminfo-bak0730.sql

找到了,果然是7月30号早上09点38分左右备份的,幸好有备份啊,要不然就悲催了.......先把备份的导到测试数据库上,表名改为terminfo0730,然后再把当前生产的数据导到,表名改为terminfo0926,这样的做法是在还原数据后匹配一下数据有没有对得上。






+----------------+

2.最重要的一步来了,,就是提取binlog日志。因为7月30号备份的,所以要找7月30号之后到9月26号的binlog。





利用mysqlbinlog命令先进行第一轮的sql语句提取

#mysqlbinlog --no-defaults --database=ecard --start-datetime='2012-07-30 09:38:00' mysql-bin.000086 > log86.txt  # 这里要设置起始时间
#mysqlbinlog --no-defaults --database=ecard  mysql-bin.000087 > log87.txt
#mysqlbinlog --no-defaults --database=ecard  mysql-bin.000088 > log88.txt
#mysqlbinlog --no-defaults --database=ecard  mysql-bin.000089 > log89.txt
#mysqlbinlog --no-defaults --database=ecard  mysql-bin.000090 > log90.txt

#ls -l




提取出来后是全部的sql语句,而我需要的是只对terminfo操作的sql语句,所以要进行第二轮提取

#grep terminfo log86.txt > log86-terminfo.txt #依次grep出来





提取出来后,里面就是所有对terminfo的sql语句了,把这些数据导入到测试库terminfo0730表中

mysql > source log86-terminfo.txt; #依次source进去,务必要注意顺序问题!!!

导进去之后再比较一下terminfo0730和terminfo0926表的数据数量有没有一样,然后再叫部门同事验证一下数据正确性。

到此,数据成功恢复还原。一次难忘的经历啊,也同时告诫自己,细心细心再细心!!

linux

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser le binlog, le redo log et le undo log de MySQL Comment utiliser le binlog, le redo log et le undo log de MySQL Jun 03, 2023 pm 12:59 PM

1. Binlog Binlog est utilisé pour enregistrer les informations sur les opérations d'écriture (hors requêtes) effectuées par la base de données et les sauvegarder sur le disque sous forme binaire. Binlog est le journal logique de MySQL et est enregistré par la couche serveur. Les bases de données Mysql utilisant n'importe quel moteur de stockage enregistreront les journaux binlog. Journal logique : peut être simplement compris comme une instruction SQL ; journal physique : les données dans MySQL sont stockées dans la page de données et le journal physique enregistre les modifications sur la page de données ; insérez le morceau de code ici et le journal binaire est écrit en ajoutant l'entrée, vous pouvez définir la taille de chaque fichier binlog via le paramètre max_binlog_size lorsque la taille du fichier atteint la valeur donnée.

Quelles sont les différences entre redo log et binlog dans MySQL ? Quelles sont les différences entre redo log et binlog dans MySQL ? Jun 03, 2023 pm 06:53 PM

Préface Il existe six types de fichiers journaux dans MySQL, à savoir : journal redo (redolog), journal de restauration (undolog), journal binaire (binlog), journal des erreurs (errorlog), journal des requêtes lentes (slowquerylog), journal des requêtes générales (generallog) ), journal de relais (relaylog). 1. Qu'est-ce que le redolog ? Redolog, également connu sous le nom de fichier redo log, est utilisé pour enregistrer les modifications dans les opérations de transaction. Il enregistre la valeur après la modification des données. Elle sera enregistrée, que la transaction soit soumise ou non. Les fichiers Redolog peuvent s'avérer utiles en cas de panne d'instances et de médias (panne de média), telle qu'une panne de courant de la base de données, Inn

Comment sauvegarder le script pour binlog dans MySQL Comment sauvegarder le script pour binlog dans MySQL Jun 03, 2023 pm 06:53 PM

Concernant le journal binaire MySQL (binlog), nous savons tous que le journal binaire (binlog) est très important, surtout lorsque vous avez besoin d'une reprise après sinistre point à point, nous devons donc le sauvegarder. Concernant la sauvegarde du journal binaire (binlog), vous pouvez d'abord changer le binlog en fonction de la méthode flushlogs, puis le copier et le compresser sur un autre stockage sur le serveur distant ou le serveur local, tel qu'un stockage NAS monté. Vous pouvez également utiliser mysqlbinlog. pour sauvegarder le journal binaire. Implémentez une sauvegarde locale ou une sauvegarde à distance du journal binaire MySQL (binlog). Enfin, le journal binaire MySQL (binlog

Que sont les journaux MySQL Binlog et la réplication maître-esclave ? Que sont les journaux MySQL Binlog et la réplication maître-esclave ? May 27, 2023 pm 08:40 PM

1. Introduction au journal Binlog Binlog est l'abréviation de Binarylog, c'est-à-dire journal binaire. Binlog a trois fonctions principales : convertir les E/S aléatoires en E/S séquentielles pendant la persistance, la réplication maître-esclave et la récupération de données. Cet article se concentre sur les problèmes liés à la réplication maître-esclave. Le journal Binlog se compose d'un fichier d'index et de nombreux fichiers journaux. Chaque fichier journal se compose d'un nombre magique et d'un événement. Chaque fichier journal se termine par un événement de type Rotate. Pour chaque événement, il peut être divisé en deux parties : en-tête d'événement et corps d'événement : La structure de l'en-tête d'événement est la suivante : La structure du corps d'événement comprend deux parties : de taille fixe et de taille variable. Pour le format du journal Binlog, vous pouvez avoir une compréhension simple. Les étudiants intéressés peuvent approfondir.

Quelle est la différence entre une validation lente dans une requête lente MySQL et une transaction lente dans binlog ? Quelle est la différence entre une validation lente dans une requête lente MySQL et une transaction lente dans binlog ? May 30, 2023 am 08:07 AM

1. Source du problème Lors de l'analyse des problèmes de performances, les requêtes lentes et les transactions lentes binlog sont des méthodes couramment utilisées. Récemment, j'analysais une requête lente et j'ai découvert qu'elle contenait un grand nombre d'instructions de validation lentes, mais la correspondance n'a pas pu être complétée lors de l'analyse des transactions lentes du binlog. Par exemple, il peut y avoir 1 000 déclarations de validation au cours de cette période, mais il peut y avoir seulement 100 transactions lentes. C'est trop différent. Alors pourquoi ce phénomène se produit-il ? 2. Les méthodes de détermination respectives des transactions lentes sont généralement les suivantes pour une transaction explicitement soumise (insertion) : GTID_LOG_EVENT et XID_EVENT sont l'heure à laquelle la commande « COMMIT » est lancée.

Comment utiliser Docker pour ouvrir le binlog MySQL afin de résoudre les problèmes de volume de données Comment utiliser Docker pour ouvrir le binlog MySQL afin de résoudre les problèmes de volume de données May 27, 2023 pm 01:34 PM

Préface Pendant le développement, il est nécessaire de surveiller la table de données en surveillant le fichier journal binlog de mysql. Puisque mysql est déployé dans un conteneur docker, le problème des volumes de données doit également être résolu 1. Ouvrez une image mysql via les données. volume dockerrun- p3307:3306--namemyMysql-v/usr/docker/mysql/data:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=123456-dmysql:5.7.25 Remarque : vous devez créer un fichier dans le répertoire hôte au préalable pour enregistrer l'ensemble de données MySQL, le répertoire que j'ai créé ici est /u

Comment utiliser mysql binlog pour restaurer des données Comment utiliser mysql binlog pour restaurer des données May 31, 2023 am 08:40 AM

Si vous souhaitez restaurer des données via le binlog de MySQL, vous devez d'abord activer binlog. Configurez un environnement de test ici pour savoir comment mysqlbinlog restaure la base de données. Le principe est relativement simple. Binlog stockera les données modifiées dans MySQL. Par exemple, si vous créez une base de données et écrivez des données, celles-ci seront stockées dans le binlog de MySQL. Lorsque vous avez besoin de récupérer, trouvez deux positions, une position de départ et une position d'arrivée. La moitié de la position finale est la position avant la destruction ou la suppression des données. mysql8 a binlogmysql>showvariableslike'%l activé par défaut

Quelle est la différence entre binlog/redolog/undolog dans MySQL ? Quelle est la différence entre binlog/redolog/undolog dans MySQL ? May 27, 2023 am 08:29 AM

Quelle est la différence entre MySQLbinlog/redolog/undolog ? Si je veux vous parler du mécanisme de verrouillage dans InnoDB, cela impliquera inévitablement le système de journalisation MySQL, binlog, redolog, undolog, etc. J'ai vu que ces trois logs résumés par certains amis ne sont pas mauvais, alors je les ai rapidement apportés pour discuter avec vous. Le journal est une partie importante de la base de données MySQL, enregistrant diverses informations d'état pendant le fonctionnement de la base de données. Les journaux MySQL incluent principalement les journaux d'erreurs, les journaux de requêtes, les journaux de requêtes lentes, les journaux de transactions et les journaux binaires. En tant que développeur, nous devons nous concentrer sur le journal binaire (binlog) et le journal des transactions (y compris redolog et und).

See all articles