Maison  >  Article  >  base de données  >  Introduction détaillée à l'exemple de code MySQL pour la sauvegarde et la restauration d'une seule table

Introduction détaillée à l'exemple de code MySQL pour la sauvegarde et la restauration d'une seule table

黄舟
黄舟original
2017-03-18 13:55:351221parcourir

L'éditeur ci-dessous vous apportera une brève discussion sur mysql pour la sauvegarde et la restauration d'une seule table. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur pour jeter un œil

A. Installation de l'outil de sauvegarde MySQL xtrabackup

1 La version binaire du xtrabackup officiel de percona. ;binaire La version peut être utilisée après décompression.

2. Décompressez xtrabackup et créez une connexion

tar -xzvf percona-xtrabackup-2.3.4-
Linux
-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/percona-xtrabackup-2.3.4 /usr/local/xtrabackup

3. Définissez l'environnement PATH variable

export PATH=/usr/local/xtrabackup/bin/:$PATH

B. Créer un utilisateur de sauvegarde et une autorisation dans base de données mysql

Créer un utilisateur

    create user backuper@'localhost' ident
if
ied by 'backup123';
        create user backuper@'127.0.0.1' identified by 'backup123';

2. Autorisation

grant reload,lock tables,replication client,process,
super
 on *.* to 'backuper'@'localhost';
        grant create,insert,select on percona_schema.xtrabackup_history to 'backuper'@'localhost';
        grant reload,lock tables,replication client,process,super on *.* to 'backuper'@'127.0.0.1';
        grant create,insert,select on percona_schema.xtrabackup_history to 'backuper'@'127.0.0.1';

C. vérifiez si la restauration est valide (Cette étape n'est pas disponible en production,

1.

select * from tempdb.dictmajor;   
select * from dictmajor;
        +--------------+-----------------+        
        | column_value | column_mean     |        
        +--------------+-----------------+        
        |            1 | 汉语言文学      |        
        |            2 | 精算            |        
        |            3 | 生物制药        |        
        |            4 | 材料化学        |        
        |            5 | 商务英语        |        
        |            6 | 考古            |        
        |            7 | 外交            |        
        |            8 | 导游            |        
        +--------------+-----------------+

D. Sauvegarde tempdb . table dictmajor

1 Commande de sauvegarde

innobackupex --host=127.0.0.1 --user=backuper --password=backup123 --port=3306 --include='tempdb.dictmajor' /tmp/tempdb

2. le répertoire A nommé avec l'heure actuelle est généré sous le répertoire de sauvegarde (/tmp/tempdb), et le fichier de sauvegarde

   tree /tmp/tempdb/
        /tmp/tempdb/
        └── 2016-09-10_18-25-16
            ├── backup-my.cnf
            ├── ibdata1
            ├── tempdb
            │   ├── dictmajor.frm
            │   └── dictmajor.ibd
            ├── xtrabackup_binlog_info
            ├── xtrabackup_checkpoints
            ├── xtrabackup_info
            └── xtrabackup_logfile
y est stocké

E. Une fois la sauvegarde terminée, vous pouvez
supprimer la table

tempdb.dictmajor (notez qu'une définition de table doit être enregistrée ici, qui sera utilisée lors de la restauration)

F. Afin d'obtenir un ensemble de sauvegarde cohérent, une restauration et une restauration du journal sont nécessaires avant l'opération de restauration

mysql>drop table tempdb.dictmajor;

1. Journal de restauration en avant et en arrière

2. Comparaison avec la restauration en avant et en arrière avant

innobackupex --apply-log --export /tmp/tempdb/2016-09-10_18-25-16/

      

  tree /tmp/tempdb/
        /tmp/tempdb/
        └── 2016-09-10_18-25-16
            ├── backup-my.cnf
            ├── ibdata1
            ├── ib_logfile0
            ├── ib_logfile1
            ├── tempdb
            │   ├── dictmajor.cfg
            │   ├── dictmajor.exp
            │   ├── dictmajor.frm
            │   └── dictmajor.ibd
            ├── xtrabackup_binlog_info
            ├── xtrabackup_binlog_pos_innodb
            ├── xtrabackup_checkpoints
            ├── xtrabackup_info
            └── xtrabackup_logfile

G. Restaurer la table tempdb.dictmajor

1. Créer la table tempdb.dictmajor

2. Supprimez le fichier d'espace table de tempdb.dictmajor

  create table dictmajor(
        column_value tinyint not null,
        column_mean varchar(32) not null,
        constraint pkdictmajor primary key (column_value));

3. Copiez le fichier d'espace table dans la sauvegarde dans tempdb.dictmajor. où doit être l'espace table

alter table tempdb.dictmajor discard tablespace;

 

   cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.ibd /usr/local/mysql/data/tempdb/
        cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.exp /usr/local/mysql/data/tempdb/
        cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.cfg /usr/local/mysql/data/tempdb/
        chown -R mysql:mysql /usr/local/mysql/data/tempdb/*
4. Importez le fichier d'espace table



5. Vérifiez l'état de récupération de la table dictmajor

alter table tempdb.dictmajor import tablespace;

------------------- -- -----------------------------------------
L'ancien xtrabackup est utilisé pour sauvegarder la table. Son scénario d'application est que le volume de données d'une seule table est important et que l'opération d'écriture sur la table doit être prise en charge pendant le processus de sauvegarde ; est aussi simple que

      select * from dictmajor;
        +--------------+-----------------+
        | column_value | column_mean     |
        +--------------+-----------------+
        |            1 | 汉语言文学      |
        |            2 | 精算            |
        |            3 | 生物制药        |
        |            4 | 材料化学        |
        |            5 | 商务英语        |
        |            6 | 考古            |
        |            7 | 外交            |
        |            8 | 导游            |
        +--------------+-----------------+
Les outils de sauvegarde peuvent également répondre aux exigences ;

Les étapes générales de la sauvegarde mysqldump sont maintenant données

A : Créer un utilisateur de secours

1.  

                          


1.

  create user dumper@'127.0.0.1' identified by 'dumper123';
        grant select on *.* to dumper@'127.0.0.1';
        grant show view on *.* to dumper@'127.0.0.1';
        grant lock tables on *.* to dumper@'127.0.0.1';
        grant trigger on *.* to dumper@'127.0.0.1';


C : Supprimer la table sauvegardée1.


mysqldump --host=127.0.0.1 --port=3306 --user=dumper --password=dumper123 --quick tempdb dictmajor >/tmp/tempdb.dictmajor.sql

D : Restaurer tempdb. dictmajor table

1.


mysql>drop table tempdb.dictmajor;

E : Vérifier l'efficacité de la restauration

1.

sélectionnez * dans le dictmajor ;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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