Heim >Datenbank >MySQL-Tutorial >Verwenden Sie innobackupex, um eine MySQL-Master-Slave-Architektur basierend auf einer Slave-Datenbank zu erstellen
Es gibt viele Möglichkeiten, Master-Slave-MySQL zu erstellen, und die traditionelle mysqldump-Methode ist für viele Menschen eine der Möglichkeiten. Für größere Datenbanken ist diese Methode jedoch nicht die ideale Wahl. Verwenden Sie Xtrabackup, um schnell und einfach eine MySQL-Master-Slave-Architektur zu erstellen oder zu reparieren. In diesem Artikel wird beschrieben, wie Sie schnell einen Master-Slave basierend auf der vorhandenen Slave-Bibliothek erstellen, dh als neue Slave-Bibliothek der ursprünglichen Master-Bibliothek. Der Vorteil dieser Methode besteht darin, dass kein Leistungsdruck aufgrund des Sicherungszeitraums auf die Hauptdatenbank erforderlich ist. Während des Konstruktionsprozesses wurde die schnelle Streaming-Backup-Methode verwendet, um den Master-Slave-Aufbau zu beschleunigen, und mehrere Parameter zur Beschleunigung des Streaming-Backups wurden als Referenz beschrieben.
Informationen zum Streaming-Backup finden Sie unter: Xtrabackup-Streaming-Backup und -Wiederherstellung
1. Backup-Slave-Datenbank
###Die Gleichwertigkeitsüberprüfung wird während der Remote-Sicherung verwendet, daher sollte dies der Fall sein zuerst gemacht werden Entsprechende Konfiguration, hier verwenden wir den MySQL-Benutzer
$ innobackupex --user=root --password=xxx --slave-info --safe-slave-backup \--compress-threads=3 --parallel=3 --stream=xbstream \--compress /log | ssh -p50021 mysql@172.16.16.10 "xbstream -x -C /log/recover"
###Der Parameter „safe-slave-backup“ wird während der Sicherung verwendet. Sie können sehen, dass der SQL-Thread nach Abschluss gestoppt und gestartet wird
$ mysql -uroot -p -e "show slave status \G"|egrep 'Slave_IO_Running|Slave_SQL_Running' Enter password: Slave_IO_Running: Yes Slave_SQL_Running: No Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
###Kopieren Sie die my.cnf-Datei auf den neuen Slave Bibliothek
2. Die Master-Bibliothek gewährt das neue Replikationskonto der Slave-Bibliothek
$ scp -P50021 /etc/my.cnf mysql@172.16.16.10:/log/recover
3. Bereiten Sie die neue Slave-Bibliothek vor
###Da Streaming-Komprimierungssicherung verwendet wird, muss sie zuerst dekomprimiert werden
master@MySQL> grant replication slave,replication client on *.* to repl@'172.16.%.%' identified by 'repl';
http://www.php.cn/
# tar -xvf qpress-11-linux-x64.tar qpress# cp qpress /usr/bin/ $ innobackupex --decompress /log/recover ###解压$ innobackupex --apply-log --use-memory=2G /log/recover ###prepare备份
4 Konfigurationsdatei my.cnf
### Ändern Sie die entsprechenden Parameter nach Bedarf . Die Änderungen hier sind wie folgt:
5 und Änderungsmaster ändern# chown -R mysql:mysql /log/recover# /app/soft/mysql/bin/mysqld_safe --defaults-file=/log/recover/my.cnf &
skip-slave-start datadir = /log/recover port = 3307 server_id = 24 socket = /tmp/mysql3307.sock pid-file=/log/recover/mysql3307.pid log_error=/log/recover/recover.err
Abfrage OK, 0 Zeilen betroffen (0,02 Sek.)
mysql> system more /log/recover/xtrabackup_slave_info CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000658', MASTER_LOG_POS=925384099 mysql> CHANGE MASTER TO -> MASTER_HOST='172.16.16.10', ### Author: Leshami -> MASTER_USER='repl', ### Blog : http://www.php.cn/ -> MASTER_PASSWORD='repl', -> MASTER_PORT=3306, -> MASTER_LOG_FILE='mysql-bin.000658', -> MASTER_LOG_POS=925384099; Query OK, 0 rows affected, 2 warnings (0.31 sec)
6. Basierend auf Slave-Datenbank-Backup-bezogenen Parametern und beschleunigten Stream-Backup-Parametern
The --slave-info option This option is useful when backing up a replication slave server. It prints the binary log position and name of the master server. It also writes this information to the xtrabackup_slave_info file as a CHANGE MASTER statement. This is useful for setting up a new slave for this master can be set up by starting a slave server on this backup and issuing the statement saved in the xtrabackup_slave_info file.
Warnung: Stellen Sie sicher, dass Ihr Slave eine echte Nachbildung des Masters ist, bevor Sie ihn als Quelle für die Sicherung verwenden.
um einen Slave zu validieren pt-table-checksum.
The --safe-slave-backup option In order to assure a consistent replication state, this option stops the slave SQL thread and wait to start backing up until Slave_open_temp_tables in SHOW STATUS is zero. If there are no open temporary tables, the backup will take place, otherwise the SQL thread will be started and stopped until there are no open temporary tables. The backup will fail if Slave_open_temp_tables does not become zero after --safe-slave-backup-timeout seconds (defaults to 300 seconds). The slave SQL thread will be restarted when the backup finishes. Using this option is always recommended when taking backups from a slave server.
--compress
###Beachten Sie, dass die Komprimierungsmethode relativ grob ist. Komprimierungsmethode, komprimiert in .gp-Dateien, nicht so hoch wie die Gzip-Komprimierungsrate
--compress-threads --decompress --parallel=NUMBER-OF-THREADS 以上就是使用innobackupex基于从库搭建mysql主从架构的内容,更多相关内容请关注PHP中文网(www.php.cn)!
This option specifies the number of worker threads that will be used
for parallel compression. It is passed directly to the xtrabackup
child process. Try 'xtrabackup --help' for more details.
Decompresses all files with the .qp extension in a backup previously
made with the --compress option.
On backup, this option specifies the number of threads the
xtrabackup child process should use to back up files concurrently.
The option accepts an integer argument. It is passed directly to
xtrabackup's --parallel option. See the xtrabackup documentation for
details.
On --decrypt or --decompress it specifies the number of parallel
forks that should be used to process the backup files.