はじめに
クラウドコンピューティングでは、マスタースレーブデータレプリケーションとは、同じ情報を複数のサーバーに保存することを指します。 1台のサーバーがグループを制御し、他のデバイスが同じノード内で作業を処理します。
レプリケーションが必要になります:
- ストレージが誤動作した場合にマスターMySQLデータベースを復元できる定期的な毎日のバックアップが必要な場合。
- 情報を複数の人が複数のコンピューターに保存、調査、および変更する必要がある場合は常に。グループメンバーが変更の必要性を特定した場合は、ノードの指定されたマスターに移動する必要があります。
このガイドでは、MySQLでマスタースレーブレプリケーションを設定する方法について説明します。
前提条件
- CentOSなどのLinuxベースのシステム
- sudoのユーザーアカウント 特権
- yumなどのパッケージインストーラー またはapt 、通常はデフォルトで含まれています
- クラウドサーバーのプライベートIP(構成中のパブリックIPの帯域幅の課金を回避するため)
MySQLでマスター/スレーブデータベースレプリケーションを設定する手順
うん (Yellowdog Updater、Modified)は、RedHat PackageManagerLinuxシステム用のパッケージ管理ツールです。 .deb内 パッケージ、 yum ツールは通常、 aptに置き換えられます 道具。したがって、特定のコマンドで apt-get 通常、 yumを置き換えることができます 。
たとえば、インストールコマンドは yum install [package_name]
のいずれかです。 またはapt-get install [package_name]
同じ結果になります。この記事は、RPMベースのLinuxディストリビューションを使用していることを前提としています。したがって、 yum
コマンドが使用されます。
マスターMySQLデータベースは読み取り/書き込みモードで実行されます。その間、スレーブサーバーは読み取り専用として実行されます。さて、レプリケーションへ。
ステップ1:レプリケーション用にMySQLデータベースを構成する
mysqldump
を使用します スレーブデータベースへの情報のダンプと復元を実行するコマンド。このコマンドは、データをファイルにダンプして転送し、スレーブノードに復元します。
ステップ2:2つの別々のクラウドサーバーを作成する
このステップでは、特権ユーザーはクラウドコントロールにログインする必要があります。 CentOSでは、これはCentOS6ベースイメージを介して可能です。
適切なRAMを備えた2つのLinuxクラウドサーバーを作成し、それらに個別の名前を割り当てます。
ステップ3:すべてのソフトウェアパッケージを現在のバージョンに更新する
ユーザーとシステム管理者は、次のコマンドを使用して、RPMベースのLinuxシステム上のすべてのソフトウェアパッケージを更新できます。
yum update
ステップ4:MySQLをインストールする
RedHat Package Managerに基づくLinuxシステムの場合、次のコマンドを使用して、両方のクラウドサーバーにMySQLサーバーパッケージをインストールします。
yum install mysql-server
次のコマンドを使用して、システムが起動するたびに実行するようにサービスを設定します。
chkconfig mysqld on
ステップ5:MySQLを起動する
ここで、MySQLが正しくインストールされているかどうかを確認します。そうであった場合は、次のコマンドでサービスを開始できるはずです:
service mysqld start
ステップ6:MySQLサーバーのルートパスワードを設定する
MySQLの管理ユーザーパスワードを設定することをお勧めします。パスワードを設定するには、MySQLパッケージに付属する安全なインストールのスクリプトを実行し、すべてのY/nプロンプトにYで応答します。
または、 /usr/bin/mysqladmin -u root password
を使用します スペースと新しいパスワードが続きます。および/usr/bin/mysqladmin -u root -h web01 password
その後にスペースが続き、ここでも新しいパスワードが続きます。
ステップ7:データベースアクセス用にファイアウォールを構成する
TCPポート3306ルールの適用 ポート3306でのトラフィックを許可するファイアウォールポリシーを追加します。このルールにより、デバイス間の適切な通信が可能になります。
ファイアウォール構成を保存するには、次のコマンドを使用します:
service iptables save
ハッキングを避けるために、ポートを開くときは常に注意してください。
ステップ8:レプリケーション用にサーバーを構成する
各スレーブサーバーには、マスターサーバーに接続する方法が必要です。接続を確立するには、MySQLのユーザー名とパスワードが必要です。これには、マスターサーバーでMySQLユーザーアカウントを設定する必要があります。
レプリケーション専用のアカウントを確立することをお勧めします。この機能では、任意のアカウントにレプリケーションスレーブ特権を付与します。スレーブごとに同じアカウントまたは異なるアカウントを作成できます。アカウントのユーザー名とパスワードは、マスターリポジトリにプレーンテキストでいつでも見つけることができます。
レプリケーションという新しいユーザーアカウントを設定するには 、 yoursite.com上の任意のホストからレプリケーションの目的で接続できるようにします ドメインの場合、マスターサーバーで次のコマンドを実行します:
mysql> CREATE USER 'replication'@'%.yoursite.com' IDENTIFIED BY [space followed by password]; then: mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%.yoursite.com';
ステップ9:サーバー上のデータが一致することを確認する
マスターからスレーブサーバーにダンプしてデータを複製します。
フラッシュテーブルは、読み取りロックで設定する必要があります。マスターサーバーのデータベースはしてはいけません このステップで新しい変更を取り入れます。レプリケーションプロセスを開始する前にマスターサーバーにスレーブサーバーと調整するための情報がある場合は、次のアクションを実行します。
- マスターサーバーでのコマンドの処理を停止します。
- バイナリログ内のマスターサーバーのファイル名と現在の座標をコピーします(以下の手順10を参照)。これは、後でレプリケーション構成を完了するときに必要になります。
- マスターサーバーがコマンドの実行を続行できるようにする前に、データをダンプしてください。
これらのすべてのアクションを慎重に実行して、データダンプがマスターサーバーの現在のデータと一致するようにします。そうしないと、スレーブデータベースが一致しないか破損します。
ステップ10:マスターデータベースのスナップショットを作成する
次のアクションを実行するときは、スナップショットを1つだけにしてください。 複数のスレーブサーバーを構成するために必要なのは、マスターデータベースの数だけです。
server-idをまだ構成していない場合 マスターサーバーでバイナリログを開始するには、サーバーをシャットダウンする必要があります。今すぐデータベースのスナップショットを撮ることができます。
データファイルをスレーブサーバーのディレクトリに移動します:
shell> tar xvf dbdump.tar
必要に応じて、ファイルの所有権とアクセス許可を確立します。スレーブサーバーへのアクセスと変更を許可する必要がある場合があります。 --skip-slave-start
でスレーブを開始します レプリケーションの開始を回避するため。
マスターサーバーのホスト名とログイン資格情報を使用してスレーブサーバーを構成します。スレーブデータベースのマスターサーバーのレプリケーション座標を使用します。バイナリログファイルと位置を使用して、レプリケーションが開始するポイントにスレーブを誘導しています。
構成済みのマスターサーバーの場合、 mysqldump
を使用できます スナップショットを撮ります。
これで、スレーブ構成を更新できます。繰り返しになりますが、必ず --skip-slave-start
でスレーブを起動してください。 レプリケーションの開始を回避するため。
次のコマンドでダンプをインポートします:
shell> mysql < fulldb.dump
ステップ11:スレーブスレッドを開始する
スレーブサーバーの更新をすぐに確認するには、次を使用します。
mysql> START SLAVE;