Maison  >  Article  >  base de données  >  Explication détaillée de la sauvegarde et de la récupération MySQL

Explication détaillée de la sauvegarde et de la récupération MySQL

黄舟
黄舟original
2017-03-01 13:43:041142parcourir

Sauvegarde des données MySQL

Dans MySQL, il existe des sauvegardes logiques et des sauvegardes physiques. Le plus grand avantage de la sauvegarde logique est que la même méthode peut être utilisée pour sauvegarder différents moteurs de stockage. La sauvegarde physique est différente et différents moteurs de stockage ont des méthodes de sauvegarde différentes.

Sauvegarde et récupération logiques

Sauvegarde

Dans MySQL, la sauvegarde logique utilise mysqldump pour sauvegarder les données de la base de données sous forme de fichier texte. Le fichier sauvegardé peut être visualisé. et édité. Selon l'étendue de la sauvegarde, la sauvegarde peut être divisée en trois types de sauvegarde suivants.

  • Sauvegarder une base de données spécifiée ou certaines tables de la base de données
    mysqldump [options] nom de la base de données [nom de la table] > data.sql

  • Sauvegarder plusieurs bases de données spécifiées
    mysqldump [options] –database > data.sql base de données 1 base de données 2 base de données 3...

  • Sauvegarder toutes les bases de données
    mysqldump [options] –all-database > data.sql
    Analyse : [options] Lors de la sauvegarde, informations d'autorisation requises, etc. Mysqldump propose de nombreuses options, qui peuvent être consultées via mysqldump –help. Afin d'assurer la cohérence de la sauvegarde des données, lorsque le moteur de stockage MySQL est au nord, vous devez ajouter le paramètre -l, ce qui signifie ajouter des verrous en lecture à toutes les tables. Pendant la période de sauvegarde, toutes les tables seront uniquement lues. , pas écrit. Mais pour le moteur InnoDB, une transaction unique peut être utilisée. Fichier de données
    Paramètres sauvegardés par data.sql :
    l : représente le verrouillage de toutes les tables
    f : représente la génération d'un nouveau fichier de date

L'instance sera xxpt Toutes les tables de la base de données sont sauvegardées dans la table dequan.sql. La commande est la suivante :
mysqldump -uroot -p xxpt >dequan.sql
Explication détaillée de la sauvegarde et de la récupération MySQL
Comme je n'ai pas spécifié le chemin de sauvegarde ci-dessus, par défaut, il sera sauvegardé dans le chemin actuel chemin, donc la sauvegarde est vers D:wampbinmysqlmysql5 .6.17bin le chemin est en panne.

Restaurer

Restauration complète

La récupération de MySQLdump est également très simple, utilisez simplement la sauvegarde comme entrée. Les résultats sont les suivants :
mysql -uroot -p dbname

Récupération incomplète

La récupération incomplète inclut la récupération basée sur un point dans le temps et la récupération basée sur l'emplacement. Le point temporel et la position correspondent au point temporel et à la position dans le journal binaire (binlog log).
Explication détaillée de la sauvegarde et de la récupération MySQL

En fonction du moment précis

Si la salle de données est configurée comme étant erronée entre 16h00 et 17h00, elle doit être ignorée pendant la récupération . Jetons d'abord un coup d'œil au journal binlog. Par exemple, la mise à jour des données après 16 heures est incorrecte et doit être ignorée lors de la récupération. La suppression des données après 17 heures est correcte et doit être conservée.
Explication détaillée de la sauvegarde et de la récupération MySQL
1. Via mysql -uroot -p dbname

Récupération basée sur l'emplacement

Lors de l'utilisation de la récupération d'emplacement, nous devons d'abord vérifier le fichier journal binlog pour déterminer le numéro d'emplacement, puis utilisez la commande suivante pour restaurer :
mysqlbinlog D:wampbinmysqlmysql5.6.17datamybinlog.000012 –stop-position=716406|mysql -uroot -p
Restaurer les opérations après 5 points
D : wampbinmysqlmysql5.6.17datamybinlog .000012 –start-position=723613|mysql -uroot -p
Explication détaillée de la sauvegarde et de la récupération MySQL

Sauvegarde et restauration physiques

La sauvegarde physique est divisée en sauvegarde à froid et sauvegarde à chaud . Par rapport à la sauvegarde logique, son plus grand avantage est la vitesse rapide de sauvegarde et de récupération. Car le principe de la sauvegarde physique repose sur le fichier cp.

Sauvegarde et récupération à froid

La sauvegarde à froid est en fait une méthode d'arrêt du service de base de données et de copie des fichiers de données. Cette méthode convient à la fois à MyISAM et à InnoDB.
Restaurer : arrêtez d'abord le service Mysql, restaurez les fichiers de données MySQL au niveau du système d'exploitation, puis redémarrez le service Mysql et utilisez l'outil Mysqlbinlog pour restaurer tous les binlogs depuis la sauvegarde.

Sauvegarde à chaud

La sauvegarde à chaud des différents moteurs de stockage dans MySQL est différente.

Moteur de stockage MyISAM

Le principe de sauvegarde du moteur de stockage MyISAM est d'ajouter un verrou en lecture à la table à sauvegarder, puis de cp le fichier de données dans le répertoire de sauvegarde. Méthodes courantes

  • Méthode 1 : Utiliser mysqlhotcop
    mysqlhotcop db_name [répertoire]

  • Méthode 2 : Verrouiller manuellement la copie de la table
    Ajoutez d’abord des verrous en lecture à toutes les tables de la base de données, puis cp les données.
    Verrouillez toutes les tables avec verrouillage en lecture
    Explication détaillée de la sauvegarde et de la récupération MySQL

Moteur de stockage InnoDB

Apprentissage...

Importation et exportation de tables

Exportation

  • Utilisez la commande SELECT …INTO OUTFILE … [options] pour implémenter
    Les paramètres des options sont les suivants
    Explication détaillée de la sauvegarde et de la récupération MySQL
    Le chemin par défaut est le chemin correspondant aux données :
    Explication détaillée de la sauvegarde et de la récupération MySQL
    Explication détaillée de la sauvegarde et de la récupération MySQL

  • Utiliser mysqldump
    mysqldump - u username -T targetDir dbname tableName[options]
    Par exemple :
    mysqldump -uroot -p -T D:/wamp/bin/mysql/mysql5.6.17/ xxpt t1
    Deux fichiers sont générés, comme indiqué ci-dessous :
    Explication détaillée de la sauvegarde et de la récupération MySQL
    Les informations sur les données sont enregistrées dans t1.txt Le contenu du fichier t1.sql est le suivant

-- MySQL dump 10.13  Distrib 5.6.17, for Win32 (x86)
---- Host: localhost    Database: xxpt
-- ------------------------------------------------------
-- Server version   5.6.17-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
---- Table structure for table `t1`--DROP TABLE IF EXISTS `t1`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (  `id1` int(11) NOT NULL DEFAULT '0',  
`id2` int(3) unsigned zerofill NOT NULL DEFAULT '000') ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2016-04-18 19:30:51

Importer

Méthode 1 :

charger le fichier de données
par exemple :
charger le fichier de données 'D:/wamp/bin/mysql/mysql5.6.17/t1.txt' dans la table t1

Explication détaillée de la sauvegarde et de la récupération MySQL
Méthode 2 : Utiliser mysqlinport

Ce qui précède est l'explication détaillée de la sauvegarde et de la récupération MySQL. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn). )!



Déclaration:
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