MySQL的主從搭建大家有很多種方式,傳統的mysqldump方式是許多人的選擇之一。但對於較大的資料庫則該方式並非理想的選擇。使用Xtrabackup可以快速輕鬆的建置或修復mysql主從架構。本文描述了基於現有的從函式庫來快速建構主從,即作為原主庫的新從函式庫。該方式的好處是對主庫無需備份期間導致的相關效能壓力。搭建過程中使用了快速流備份方式來加速主從建置以及描述了加速串流備份的幾個參數,供大家參考。
有關串流備份可以參考:Xtrabackup 串流備份與恢復
#Xtrabackup使用了等效性驗證,因此應先作對應配置,這裡我們使用的是mysql用戶
$ 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"
##SQLthup停止,完成後啟動
$ 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
2、主庫授予新從庫複製帳戶
$ scp -P50021 /etc/my.cnf mysql@172.16.16.10:/log/recover
使用了串流壓縮備份,因此需要先解壓
http://www.php.cn/
master@MySQL> grant replication slave,replication client on *.* to repl@'172.16.%.%' identified by 'repl';
# 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备份
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.err4、準備從庫設定檔my.cnf
修改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)
🜎
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.
Warning: Make sure your slave
Warning: Make sure your slave
Warning: Make sure your slave
--compress
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-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.