There are many ways to build MySQL master-slave. The traditional mysqldump method is one of the choices for many people. But for larger databases, this method is not an ideal choice. Use Xtrabackup to quickly and easily build or repair mysql master-slave architecture. This article describes how to quickly build a master-slave library based on the existing slave library, that is, as a new slave library of the original master library. The advantage of this method is that there is no need for performance pressure related to the backup period on the main database. During the construction process, the fast streaming backup method was used to accelerate the master-slave construction and several parameters for accelerating streaming backup were described for your reference.
## For information on streaming backup, please refer to: Xtrabackup Streaming Backup and Recovery
#1. Backup slave library
Equivalence verification is used during remote backup, so you should do it first Corresponding configuration, here we are using the mysql user
$ 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"
The safe-slave-backup parameter is used during the backup. You can see that the SQL thread is stopped and started after completion
$ 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
##Copy the my.cnf file to the new slave library
$ scp -P50021 /etc/my.cnf mysql@172.16.16.10:/log/recover
##2. The master library grants the new slave library Copy account
master@MySQL> grant replication slave,replication client on *.* to repl@'172.16.%.%' identified by 'repl';
##3. Prepare the new slave library
Since streaming compression backup is used, it needs to be decompressed first
Download address 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. Prepare the slave configuration file my.cnf
Modify the corresponding parameters as needed. The modifications here are as follows,
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
5. Start the slave library and modify the change master
# chown -R mysql:mysql /log/recover# /app/soft /mysql/bin/mysqld_safe --defaults-file=/log/recover/my.cnf &
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)
##mysql> ; start slave;
Query OK, 0 rows affected (0.02 sec)
6. Based on slave database backup Related parameters and accelerated stream backup parameters
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.
##
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.
Warning: Make sure your slave is a true replica of the master before using it as a source for backup. A good toolto validate a slave is pt-table-checksum.
--compress
This option instructs xtrabackup to compress backup copies of InnoDB data files. It is passed directly to the xtrabackup child process.
Note that the compress method is a relatively rough compression method. It is compressed into a .gp file and does not have a high compression ratio as gzip
--compress-threads
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.
--decompress
Decompresses all files with the .qp extension in a backup previously made with the --compress option.
--parallel=NUMBER-OF-THREADS
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.
以上就是使用innobackupex基于从库搭建mysql主从架构的内容,更多相关内容请关注PHP中文网(www.php.cn)!