Heim  >  Artikel  >  Datenbank  >  Detaillierte Einführung in den MySQL-Beispielcode für die Sicherung und Wiederherstellung einer einzelnen Tabelle

Detaillierte Einführung in den MySQL-Beispielcode für die Sicherung und Wiederherstellung einer einzelnen Tabelle

黄舟
黄舟Original
2017-03-18 13:55:351226Durchsuche

Der Redakteur unten bringt Ihnen eine kurze Diskussion über MySQL für die Sicherung und Wiederherstellung einer einzelnen Tabelle. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor, um einen Blick darauf zu werfen

A. Installation des MySQL-Backup-Tools xtrabackup

1 ;binär Die Version kann dekomprimiert und verwendet werden.

2. xtrabackup entpacken und Verbindung erstellen

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. PATH-Umgebung festlegen

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

B. Erstellen Sie einen Benutzersicherungsbenutzer und eine Autorisierung in der MySQL-Datenbank

1. Erstellen Sie einen Benutzer

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

2. Autorisierung

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. Der Hauptzweck dieses Schritts ist die spätere Wiederherstellung. Überprüfen Sie, ob die Wiederherstellung gültig ist. (Dieser Schritt ist in der Produktion nicht verfügbar.

1.

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

D. Tempdb sichern. dictmajor-Tabelle

1. Sicherungsbefehl

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

2. Unter dem Sicherungsverzeichnis (/tmp/tempdb) wird ein Verzeichnis mit dem Namen „/tmp/tempdb“ erstellt und die Sicherungsdatei

   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
darin gespeichert

E. Nachdem die Sicherung abgeschlossen ist, können Sie
die Tabelle

tempdb.dictmajor löschen (beachten Sie, dass hier eine Tabellendefinition gespeichert werden muss, die bei der Wiederherstellung verwendet wird)

F. Um einen konsistenten Sicherungssatz zu erhalten, ist vor dem Wiederherstellungsvorgang ein Protokoll-Rollforward und -Rollback erforderlich

mysql>drop table tempdb.dictmajor;

1. Roll-Forward & Roll-Back-Protokoll

2. Vergleich mit Roll-Forward & Roll-Back vorher

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

Tempdb.dictmajor-Tabelle wiederherstellen

1. Tempdb.dictmajor-Tabelle erstellen

2. Löschen Sie die Tabellenbereichsdatei von tempdb.dictmajor

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

3. Kopieren Sie die Tabellenbereichsdatei im Backup nach tempdb.dictmajor wo der Tabellenbereich sein sollte

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. Importieren Sie die Tabellenbereichsdatei



5. Überprüfen Sie den Wiederherstellungsstatus der dictmajor-Tabelle

alter table tempdb.dictmajor import tablespace;

------------------- -- ------------------------------------------
Das vorherige xtrabackup wird zum Sichern der Tabelle verwendet, da das Datenvolumen einer einzelnen Tabelle groß ist und der Schreibvorgang in die Tabelle während des Sicherungsvorgangs unterstützt werden muss ist so einfach wie

      select * from dictmajor;
        +--------------+-----------------+
        | column_value | column_mean     |
        +--------------+-----------------+
        |            1 | 汉语言文学      |
        |            2 | 精算            |
        |            3 | 生物制药        |
        |            4 | 材料化学        |
        |            5 | 商务英语        |
        |            6 | 考古            |
        |            7 | 外交            |
        |            8 | 导游            |
        +--------------+-----------------+
Backup-Tools können auch die Anforderungen erfüllen;

Die allgemeinen Schritte für die mysqldump-Sicherung sind jetzt angegeben

A: Erstellen Sie einen Backup-Benutzer

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: Die gesicherte Tabelle löschen

1.


D: Tempdb wiederherstellen. dictmajor-Tabelle

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

1.


E: Überprüfen Sie die Wirksamkeit der Wiederherstellung
mysql>drop table tempdb.dictmajor;

1.wählen Sie * aus dictmajor;

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den MySQL-Beispielcode für die Sicherung und Wiederherstellung einer einzelnen Tabelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn