Use innobackupex to build mysql master-slave architecture based on slave database

黄舟
Release: 2017-02-15 10:43:20
Original
1559 people have browsed it



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"
Copy after login



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 after login


##Copy the my.cnf file to the new slave library

$ scp -P50021 /etc/my.cnf mysql@172.16.16.10:/log/recover
Copy after login


##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';
Copy after login



##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备份
Copy after login


##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
Copy after login


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 : //m.sbmmt.com/ -> 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)
Copy after login

##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.
Copy after login



##

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.
Copy after login



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.
Copy after login

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.
Copy after login



--decompress

Decompresses all files with the .qp extension in a backup previously made with the --compress option.
Copy after login



--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.
Copy after login


以上就是使用innobackupex基于从库搭建mysql主从架构的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!