1. 背景
- 既存のメイン ライブラリは正常に実行されており、これを A という名前とします。
- 既存のスレーブライブラリ(旧スレーブライブラリ)が正常に動作しているものをB、ビルドして動作しているスレーブライブラリ(旧スレーブライブラリ)をBとする。
- 新しいスレーブ ライブラリ C を構築し、引き続き A からデータ同期を実行したいと考えています。
2. 前提
- 前提 1: 新しいスレーブ ライブラリ C に、まず MySQL をインストールしてデプロイして、実行できることを確認します。
- 前提2: すでに正常に動作しているマスター(A)とスレーブ(B)が存在します。
3. 導入手順
- 古いスレーブ ライブラリ B を閉じ、新しいスレーブ ライブラリ C を閉じます。
- 古いスレーブ データベースの操作: すべてのデータ ファイルとログ ファイル (
ibdata*
InnoDB トランザクション ログ ファイルib_logfile*
、master.info ファイル、relay-log.info ファイルなどのデータ ファイルを含む) を新しいスレーブ データベースが配置されているホストにパッケージ化します。スレーブ データベースのデータ ディレクトリが /home/mysql などに別個にあり、2 つのスレーブ データベース間のネットワーク接続が非常に簡単な場合は、次のコマンドを実行するだけです。
- 次のコマンドは、古いスレーブ ライブラリが配置されているサーバー B で実行されます。
- 新旧のスレーブ ライブラリのデータ ディレクトリが両方とも /home/mysql であると仮定します。
- 新しいスレーブ ライブラリが配置されているサーバー C の IP アドレスは 192.168.124.173 です。
scp -r /home/mysql/ [email protected]:/home/
- コピー後、新しいスレーブライブラリサーバーCにログインします。
- 新しいスレーブ ライブラリの操作: root ユーザーがコピーに使用されるため、新しいスレーブ ライブラリのディレクトリ権限を変更する必要があります。
chown -r mysql /home/mysql
chgrp -r mysql /home/mysql
- 古いスレーブ ライブラリの my.cnf を新しいスレーブ ライブラリの my.cnf ディレクトリにコピーし、同じことが繰り返されないようにサーバー ID を変更します。
- 新しいスレーブ ライブラリと古いスレーブ ライブラリを開始して、ビルドを完了します。
4. まとめ
- 既存のスレーブ ライブラリの場合、新しいスレーブ ライブラリを構築する場合は、古いスレーブ ライブラリのデータ ファイル、ログ ファイル、構成ファイルを新しいスレーブ ライブラリにコピーし、ファイルのアクセス許可を変更し、 server-id を指定してコピーを開始する 新しいスレーブ ライブラリの構築が完了しました。