Maison base de données tutoriel mysql 基于Innobackupex的完全恢复

基于Innobackupex的完全恢复

Jun 07, 2016 pm 04:12 PM
mysql basé sur 恢复

对于MySQL的完全恢复,我们可以借助于Innobackupex的多重备份加上binlog来将数据库恢复到故障点。这里的完全恢复是相对于时点恢复(也叫不完全恢复)。本文主要演示了基于Innobackupex如何做一个完全恢复,供大家参考。 1、完全恢复的概念 完全恢复是指使用备份

对于MySQL的完全恢复,我们可以借助于Innobackupex的多重备份加上binlog来将数据库恢复到故障点。这里的完全恢复是相对于时点恢复(也叫不完全恢复)。本文主要演示了基于Innobackupex如何做一个完全恢复,供大家参考。
1、完全恢复的概念

 

完全恢复是指使用备份加上binlog日志将数据库恢复到最新的时间点。
2、演示备份过程

 

a、创建演示环境
robin@localhost[(none)]> show variables like 'version';  --当前MySQL版本
+---------------+------------+
| Variable_name | Value      |
+---------------+------------+
| version       | 5.6.12-log |
+---------------+------------+

robin@localhost[(none)]> use tempdb;  
 
robin@localhost[tempdb]> create table tb(id smallint,val varchar(20));  
 
robin@localhost[tempdb]> insert into tb  values(1,'fullbak');  

--创建一个全备
SHELL> innobackupex --user=robin -password=xxx --port=3606 --socket=/tmp/mysql3606.sock --defaults-file=/etc/my3606.cnf \   
> /hotbak/full --no-timestamp   

b、创建一个增备
--在创建增备前插入一条记录到tb
robin@localhost[tempdb]> insert into tb values(2,'Incbak');  
 
SHELL> innobackupex --user=robin -password=xxx --port=3606 --socket=/tmp/mysql3606.sock --defaults-file=/etc/my3606.cnf \   
> --incremental /hotbak/inc --incremental-basedir=/hotbak/full --no-timestamp 
Copier après la connexion
3、演示恢复过程
--再次新增一条记录,该记录在保存在binlog,而不会存在于任何备份,这条记录用于验证完全恢复 robin@localhost[tempdb]> insert into tb values(3,'Inbinlog'); Query OK, 1 row affected (0.01 sec) --当前的binlog位置 robin@localhost[(none)]> show master status; +--------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +--------------------+----------+--------------+------------------+-------------------+ | inst3606bin.000014 | 1200 | | | | +--------------------+----------+--------------+------------------+-------------------+ --使用binlog events命令来查看我们最后insert的一条记录 robin@localhost[(none)]> show binlog events in 'inst3606bin.000014' limit 7,10; +--------------------+------+------------+-----------+-------------+---------------------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +--------------------+------+------------+-----------+-------------+---------------------------------------------------+ | inst3606bin.000014 | 668 | Query | 3606 | 751 | BEGIN | | inst3606bin.000014 | 751 | Query | 3606 | 862 | use `tempdb`; insert into tb values(2,'Incbak') | | inst3606bin.000014 | 862 | Xid | 3606 | 893 | COMMIT /* xid=449096 */ | | inst3606bin.000014 | 893 | Query | 3606 | 973 | FLUSH ENGINE LOGS | | inst3606bin.000014 | 973 | Query | 3606 | 1056 | BEGIN | | inst3606bin.000014 | 1056 | Query | 3606 | 1169 | use `tempdb`; insert into tb values(3,'Inbinlog') | | inst3606bin.000014 | 1169 | Xid | 3606 | 1200 | COMMIT /* xid=449997 */ | +--------------------+------+------------+-----------+-------------+---------------------------------------------------+ --查看binlog的位置 robin@localhost[(none)]> show variables like 'log_bin_basename'; +------------------+------------------------------------+ | Variable_name | Value | +------------------+------------------------------------+ | log_bin_basename | /data/inst3606/log/bin/inst3606bin | +------------------+------------------------------------+ a、先做基于全备的apply,注意,此时使用了--redo-only SHELL> innobackupex --apply-log --redo-only --user=robin -password=xxx --port=3606 \ > --defaults-file=/etc/my3606.cnf /hotbak/full b、基于增备的apply, --此时没有--redo-only,如果有多个增备,仅仅最后一个增备无需指定--redo-only SHELL> innobackupex --apply-log --user=robin -password=xxx --port=3606 --defaults-file=/etc/my3606.cnf \ > /hotbak/full --incremental-dir=/hotbak/inc c、进行copy back SHELL> mysqldown -P3606 --copy back前关闭实例 SHELL> netstat -nltp|grep mysql|grep 3606 SHELL> mv /data/inst3606/data3606 /data/inst3606/data3606bk SHELL> mkdir -p /data/inst3606/data3606 SHELL> innobackupex --user=robin -password=xxx --port=3606 --copy-back /hotbak/full --defaults-file=/etc/my3606.cnf SHELL> chown -R mysql:mysql /data/inst3606/data3606 d、启动恢复后的实例 SHELL> mysqld_safe --defaults-file=/etc/my3606.cnf & SHELL> sql -P3606 robin@localhost[(none)]> use tempdb; --如下,我们可以看到记录3, 'Inbinlog'记录并没有被恢复 robin@localhost[tempdb]> se【本文来自鸿网互联 (http://www.68idc.cn)】lect * from tb; +------+---------+ | id | val | +------+---------+ | 1 | fullbak | --Author: Leshami | 2 | Incbak | --Blog : http://blog.csdn.net/leshami +------+---------+ 2 rows in set (0.00 sec) e、使用binlog做完全恢复 SHELL> cd /hotbak/inc/ SHELL> more xtrabackup_binlog_info --从innobackupex获得binlog的位置 inst3606bin.000014 893 --使用mysqlbinlog 追加的最新 SHELL> mysqlbinlog /data/inst3606/log/bin/inst3606bin.000014 --start-position=893 \ > |mysql -urobin -pxxx -P3606 -S /tmp/mysql3606.sock --验证,可以看到第3条记录以及被恢复 SHELL> mysql -urobin -pxxx -P3606 -S /tmp/mysql3606.sock -e "select * from tempdb.tb" Warning: Using a password on the command line interface can be insecure. +------+----------+ | id | val | +------+----------+ | 1 | fullbak | | 2 | Incbak | | 3 | Inbinlog | +------+----------+ 4、小结
f、使用mysqlbinlog方式将日志追加到最新时刻

 

 

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)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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)

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Comment ouvrir phpmyadmin Comment ouvrir phpmyadmin Apr 10, 2025 pm 10:51 PM

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

Comment créer Navicat Premium Comment créer Navicat Premium Apr 09, 2025 am 07:09 AM

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

MySQL: une introduction à la base de données la plus populaire au monde MySQL: une introduction à la base de données la plus populaire au monde Apr 12, 2025 am 12:18 AM

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

Comment créer une nouvelle connexion à MySQL dans Navicat Comment créer une nouvelle connexion à MySQL dans Navicat Apr 09, 2025 am 07:21 AM

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

Comment utiliser un seul fileté redis Comment utiliser un seul fileté redis Apr 10, 2025 pm 07:12 PM

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

Pourquoi utiliser MySQL? Avantages et avantages Pourquoi utiliser MySQL? Avantages et avantages Apr 12, 2025 am 12:17 AM

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

MySQL et SQL: Compétences essentielles pour les développeurs MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

See all articles