使用innobackupex基於從庫搭建mysql主從架構,innobackupexmysql

來源:互聯網
上載者:User

使用innobackupex基於從庫搭建mysql主從架構,innobackupexmysql

       MySQL的主從搭建大家有很多種方式,傳統的mysqldump方式是很多人的選擇之一。但對於較大的資料庫則該方式並非理想的選擇。使用Xtrabackup可以快速輕鬆的構建或修複mysql主從架構。本文描述了基於現有的從庫來快速搭建主從,即作為原主庫的一個新從庫。該方式的好處是對主庫無需備份期間導致的相關效能壓力。搭建過程中使用了快速流備份方式來加速主從構建以及描述了加速流式備份的幾個參數,供大家參考。


    有關流式備份可以參考:Xtrabackup 流備份與恢複


1、備份從庫
###遠程備份期間使用了等效性驗證,因此應先作相應配置,這裡我們使用的是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"


###備份期間使用了safe-slave-backup參數,可以看到SQL thread被停止,完成後被啟動
$ 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


###複製my.cnf檔案到新從庫
$ scp -P50021 /etc/my.cnf mysql@172.16.16.10:/log/recover


2、主庫授予新從庫複製賬戶
master@MySQL> grant replication slave,replication client on *.* to repl@'172.16.%.%' identified by 'repl';


3、新從庫prepare        
###由於使用了流式壓縮備份,因此需要先解壓
###  http://www.quicklz.com/
# 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、準備從庫設定檔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


5、啟動從庫及修改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://blog.csdn.net/leshami
    -> 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、基於從庫備份相關參數及加速流備份參數

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 tool
to 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.
        ###注compress方式是一種相對粗糙的壓縮方式,壓縮為.gp檔案,沒有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. 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.