suchen
HeimDatenbankMySQL-TutorialXtraBackup与InnoBackupex 联机备份

专注于InnoDB、XtraBackup的热备工具,是C语言开发的程序,专用于备份InnoDB及XtraDB引擎对象

XtraBackup联机备份:

[root@mysql1 /]# rpm -ivh percona-xtrabackup-2.2.3-4982.el6.x86_64.rpm

[mysql@mysql1 ~]$ echo "export PATH=/usr/bin:\$PATH" >> /home/mysql/.bash_profile

(system@localhost) [(none)]> create user xtrabk@'localhost' identified by 'onlybackup';

(system@localhost) [(none)]> grant reload,lock tables,Replication client,super on *.* to xtrabk@'localhost';

[mysql@mysql1 ~]$ xtrabackup -help

使用xtrabackup命令进行备份

xtrabackup命令有两种模式,--backup(备份模式)和--prepara(恢复准备模式)

--backup指定当前的操作模式,backup就是说要创建备份集

--target-dir指定备份集的存储路径

--defaults-file从MySQL的选项文件中读取参数

[mysql@mysql1 ~]$ xtrabackup --defaults-file=/data/mysqldata/3306/my.cnf --backup --target-dir=/data/mysqldata/backup/full_bak

 

使用innobackupex命令进行备份,还能备份非InnoDB对象,innobackupex内部调用xtrabackup进行备份

[mysql@mysql1 ~]$ innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=xtrabk --password='onlybackup' /data/mysqldata/backup/

创建增量备份:

在上一步全量备份完成后,修改InnoDB表的数据,进行第一次增量备份

[mysql@mysql1 ~]$ innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=xtrabk --password='onlybackup' --incremental --incremental-basedir=/data/mysqldata/backup/2014-07-10_09-29-32 /data/mysqldata/backup_inc

1)在做完第一次增量备份后,继续修改InnoDB表的数据,进行第二次增量备份

[mysql@mysql1 ~]$ innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=xtrabk --password='onlybackup' --incremental --incremental-basedir=/data/mysqldata/backup/2014-07-10_09-29-32 /data/mysqldata/backup_inc

此种方式对应Oracle的累积增量备份

2)在做完第一次增量备份后,继续修改InnoDB表的数据,进行第二次增量备份

[mysql@mysql1 ~]$ innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=xtrabk --password='onlybackup' --incremental --incremental-basedir=/data/mysqldata/backup_inc/2014-07-10_09-31-36 /data/mysqldata/backup_inc

此种方式对应Oracle的差异增量备份

--incremental:告诉xtrabackup这次是要创建增量备份

--incremental-basedir:指定一个全量备份的路径,作为增量备份的基础

--incremental-lsn:指定备份开始时的LSN

 

InnoDB的Log Sequence Number日志序列号LSN。InnoDB的每个页(Page)都保存有LSN,这个序号能够标识该页最后修改时间,增量备份正是根据这个LSN来的,因为每次备份(含xtrabackup和innobackupex),XtraBackup都会在备份集中创建一个xtrabackup_checkpoints文件,这个文件中的内容就记录了最后修改的LSN序号。创建增量备份集时,只需要从上次的备份集中找到xtrabackup_checkpoints文件,读取最新的LSN,而后在创建增量是,选择LSN大于这个序号的页,以及这期间产生的二进制日志就可以了,甚至不需要对比全量备份集和当前数据库的数据文件

 

XtraBackup备份工作机制:

XtraBackup本质是基于InnoDB的故障恢复(crash-recovery)机制,先复制InnoDB的数据文件,复制的时候数据仍有可能正在读写,复制出的文件可能是不一致的状态,所以在备份过程中,需要定时扫描日志并作记录,而后通过备份的日志文件执行故障恢复,使文件恢复到一个一致的状态,使数据库达到可用状态。核心就是InnoDB维护的重做日志(redo log)。XtraBackup会在启动时先记录下当前的日志序列号(LSN),然后开始复制数据文件,同时XtraBackup运行一个后台进程,监控着事务日志,并复制新发生的修改。这项操作会在XtraBackup备份执行过程中一直执行,就是log scanned up to信息,以确保记录下所有备份期间数据库发生的修改。接下来是准备进程(prepare process),在这一步中,XtraBackup对复制的数据文件执行故障恢复,将数据库恢复到可用状态

 

执行恢复:全量恢复和增量恢复:

准备恢复(prepare):就是为恢复做准备。备份集没有办法直接拿来用,所有需要一个对备份集做准备的过程

对于xtrabackup对应的参数是--prepare,对于innobackupex对应的参数是--apply-log

执行恢复(copy-back):备份集准备好以后,可以执行恢复了

对于xtrabackup没有特殊说明,简单cp/mv过程,对于innobackupex对应的参数是--copy-back,它的功能是将制定的备份集,恢复到指定的路径下

 

首先对全量备份做恢复的准备工作

[mysql@mysql1 ~]$ innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --apply-log --redo-only /data/mysqldata/backup/2014-07-10_09-29-32/

--apply-log从指定的选项文件中读取配置信息并应用日志等,表示要做的是对备份集做恢复的准备工作

--redo-only如果进行准备工作的备份集操作完成后,还有其他增量备份集待处理,那么就必须指定本参数

 

继续执行innobackupex命令,应用增量备份,这次要操作的备份集不是最后一份,需要再指定--redo-only参数

[mysql@mysql1 ~]$ innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --apply-log /data/mysqldata/backup/2014-07-10_09-29-32/ --incremental-dir=/data/mysqldata/backup_inc/2014-07-10_09-31-36 /

 

继续执行innobackupex命令,,应用增量备份,这次要操作的备份集就是最后一份,不需要再指定--redo-only参数

[mysql@mysql1 ~]$ innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --apply-log /data/mysqldata/backup/2014-07-10_09-29-32/ --incremental-dir=/data/mysqldata/backup_inc/2014-07-10_09-35-13/

注意在备份集进行恢复的准备过程中,不要随意中断该任务,否则有可能导致备份集处于不一致状态。由于XtraBackup是直接在备份集中进行准备,一旦有异常,搞不好想恢复都没办法。建议操作之前,将备份集备份一次。

建议再执行一遍innobackupex --apply-log

[mysql@mysql1 ~]$ innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --apply-log  /data/mysqldata/backup/2014-07-10_09-29-32/

执行文件的恢复

[mysql@mysql1 ~]$ innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --copy-back /data/mysqldata/backup/2014-07-10_09-29-32/

 

恢复操作可以在任意机器上执行,只要您拥有完整备份集,可以把XtraBackup当做数据库迁移工具

 

打包和压缩备份集

XtraBackup支持流(stream)模式,能够直接将备份输出到指定的格式进行处理,比如tar或xbstream

 

[mysql@mysql1 ~]$ innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=xtrabk --password=onlybackup --stream=tar /tmp | gzip -> /data/mysqldata/backup/xtra_fullbackup.tar.gz

全备

innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=xtrabk --password='onlybackup' /data/mysqldata/backup/

 

修改数据

(system@localhost) [mysql]> create table mytable(a int);

Query OK, 0 rows affected (0.06 sec)

(system@localhost) [mysql]> insert into mytable values (1);

Query OK, 1 row affected (0.04 sec)

(system@localhost) [mysql]> insert into mytable values (2);

Query OK, 1 row affected (0.01 sec)

(system@localhost) [mysql]> insert into mytable values (3);

Query OK, 1 row affected (0.00 sec)

(system@localhost) [mysql]> insert into mytable values (4);

Query OK, 1 row affected (0.00 sec)

(system@localhost) [mysql]> insert into mytable values (5);

Query OK, 1 row affected (0.01 sec)

 

进行第一增量备份

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
Wie identifizieren und optimieren Sie langsame Abfragen in MySQL? (Langsames Abfrageprotokoll, Performance_schema)Wie identifizieren und optimieren Sie langsame Abfragen in MySQL? (Langsames Abfrageprotokoll, Performance_schema)Apr 10, 2025 am 09:36 AM

Um die MySQL -Abfrage zu optimieren, müssen SlowQuerylog und Performance_Schema verwendet werden: 1. Aktivieren Sie SlowQuerylog und setzen Sie Schwellenwerte, um langsame Abfragen aufzuzeichnen; 2. Verwenden Sie Performance_Schema, um die Details zur Ausführung von Abfragen zu analysieren, Leistungs Engpässe zu finden und zu optimieren.

MySQL und SQL: Wesentliche Fähigkeiten für EntwicklerMySQL und SQL: Wesentliche Fähigkeiten für EntwicklerApr 10, 2025 am 09:30 AM

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Beschreiben Sie den asynchronen Master-Slave-Replikationsprozess von MySQL.Beschreiben Sie den asynchronen Master-Slave-Replikationsprozess von MySQL.Apr 10, 2025 am 09:30 AM

MySQL Asynchronous Master-Slave-Replikation ermöglicht die Datensynchronisation durch Binlog, die die Leseleistung und die hohe Verfügbarkeit verbessert. 1) Der Master -Server -Datensatz ändert sich am Binlog; 2) Der Slave -Server liest Binlog über E/A -Threads; 3) Der Server -SQL -Thread wendet BinLog an, um Daten zu synchronisieren.

MySQL: Einfache Konzepte für einfaches LernenMySQL: Einfache Konzepte für einfaches LernenApr 10, 2025 am 09:29 AM

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

MySQL: Eine benutzerfreundliche Einführung in DatenbankenMySQL: Eine benutzerfreundliche Einführung in DatenbankenApr 10, 2025 am 09:27 AM

Die Installation und die grundlegenden Vorgänge von MySQL umfassen: 1. MySQL herunterladen und installieren, das Stammbenutzerkennwort festlegen. 2. Verwenden Sie SQL -Befehle, um Datenbanken und Tabellen zu erstellen, wie z. 3. Ausführen von CRUD -Operationen, verwenden Sie Einfügen, auswählen, aktualisieren, Befehle löschen; 4. Erstellen Sie Indizes und gespeicherte Verfahren, um die Leistung zu optimieren und komplexe Logik zu implementieren. Mit diesen Schritten können Sie MySQL -Datenbanken von Grund auf neu erstellen und verwalten.

Wie funktioniert der InnoDB Puffer Pool und warum ist es für die Leistung von entscheidender Bedeutung?Wie funktioniert der InnoDB Puffer Pool und warum ist es für die Leistung von entscheidender Bedeutung?Apr 09, 2025 am 12:12 AM

InnoDbbufferpool verbessert die Leistung von MySQL -Datenbanken durch das Laden von Daten und Indexseiten in den Speicher. 1) Die Datenseite wird in das Bufferpool geladen, um die Festplatten -E/A zu reduzieren. 2) Schmutzige Seiten sind regelmäßig markiert und auf der Festplatte aktualisiert. 3) LRU -Algorithmusverwaltungsdatenseite Eliminierung. 4) Der Lese-Out-Mechanismus lädt die möglichen Datenseiten im Voraus.

MySQL: Die einfache Datenverwaltung für AnfängerMySQL: Die einfache Datenverwaltung für AnfängerApr 09, 2025 am 12:07 AM

MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

Wann könnte ein vollständiger Tabellen -Scan schneller sein als einen Index in MySQL?Wann könnte ein vollständiger Tabellen -Scan schneller sein als einen Index in MySQL?Apr 09, 2025 am 12:05 AM

Die volle Tabellenscannung kann in MySQL schneller sein als die Verwendung von Indizes. Zu den spezifischen Fällen gehören: 1) das Datenvolumen ist gering; 2) Wenn die Abfrage eine große Datenmenge zurückgibt; 3) wenn die Indexspalte nicht sehr selektiv ist; 4) Wenn die komplexe Abfrage. Durch Analyse von Abfrageplänen, Optimierung von Indizes, Vermeidung von Überindex und regelmäßiger Wartung von Tabellen können Sie in praktischen Anwendungen die besten Auswahlmöglichkeiten treffen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen