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
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_logfiledarin gespeichert
E. Nachdem die Sicherung abgeschlossen ist, können Sie
die Tabelle
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.
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!