マスター/スレーブ MySQL を構築するには多くの方法があり、従来の mysqldump メソッドは多くの人にとって選択肢の 1 つです。ただし、大規模なデータベースの場合、この方法は理想的な選択ではありません。 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 スレッドが停止され、完了後に開始されたことがわかります
$ 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. 新しいスレーブ ライブラリを準備するには、まず解凍する必要があります
###ダウンロードアドレス
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. ライブラリから始める準備をする設定ファイル my.cnf
### ここでの変更は次のとおりです。から開始ライブラリと変更マスター# 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
クエリ OK、影響を受ける行は 0 (0.02 秒)
6. スレーブ データベース バックアップ関連パラメータと高速ストリーム バックアップ パラメータに基づく
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)
警告: table-checksum のソースとして使用する前に、スレーブがマスターの真のレプリカであることを確認してください。
--compress
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.###compress メソッドは比較的大まかな圧縮方法であり、gzip 圧縮率ほど高くはなく、.gp ファイルに圧縮されることに注意してください
--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)!