Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

黄舟
Freigeben: 2017-03-18 13:55:35
Original
1184 Leute haben es durchsucht

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
Nach dem Login kopieren

3. PATH-Umgebung festlegen

export PATH=/usr/local/xtrabackup/bin/:$PATH
Nach dem Login kopieren

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';
Nach dem Login kopieren

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';
Nach dem Login kopieren

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 | 导游            |        
        +--------------+-----------------+
Nach dem Login kopieren

D. Tempdb sichern. dictmajor-Tabelle

1. Sicherungsbefehl

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

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
Nach dem Login kopieren
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;
Nach dem Login kopieren
Nach dem Login kopieren

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/
Nach dem Login kopieren

      

  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
Nach dem Login kopieren

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));
Nach dem Login kopieren

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

alter table tempdb.dictmajor discard tablespace;
Nach dem Login kopieren

 

   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/*
Nach dem Login kopieren
4. Importieren Sie die Tabellenbereichsdatei



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

alter table tempdb.dictmajor import tablespace;
Nach dem Login kopieren

------------------- -- ------------------------------------------
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 | 导游            |
        +--------------+-----------------+
Nach dem Login kopieren
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';
Nach dem Login kopieren

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
Nach dem Login kopieren

1.


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

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!