通过Mysql-bin日志恢复还原数据
提取出来后,里面就是所有对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表的数据数量有没有一样,然后再叫部门同事验证一下数据正确性。
到此,数据成功恢复还原。一次难忘的经历啊,也同时告诫自己,细心细心再细心!!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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.

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

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

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.

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.

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

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 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).
