1. はじめにMySQL にはレプリケーション ソリューションが付属しており、次のような利点があります。 データのバックアップ。 負荷分散。 分散データ。 コンセプト紹介: マスター: 複製されるデータベース。 スレーブ: マスターのデータを複製するデータベース。 再現手順: このプロセスを説明する典型的な図を以下に示します。 2. レプリケーションの実装レプリケーションを実装するには、次の手順が必要です。 1. MySQLマスターライブラリのバイナリログとサーバーIDを設定する MySQL設定ファイルは通常/etc/my.cnfに保存されます。 # [mysqld] の下に設定オプション [mysqld] を追加する サーバーID=1 ログ bin = mysql-bin.log server-id は、データベース クラスター全体におけるデータベースの一意の識別子であり、一意である必要があります。 注: このファイルがすでに MySQL 構成ファイルで構成されている場合には、この手順をスキップできます。 2. 新しいコピーアカウントを作成する データベースからマスター データベース データをコピーするための新しいアカウントをマスター データベースに作成し、コピー権限を付与します。 mysql> GRANT REPLICATION SLAVE、REPLICATION CLIENT ON *.* TO user_name@'host' IDENTIFIED BY 'password'; 3. MySQLマスターデータベースのサーバーIDを設定する 2 番目のステップの構成と同様に、注意すべき点が 2 つあります。 スレーブ ライブラリを他のスレーブ ライブラリのマスター ライブラリとして使用する必要がない場合は、バイナリ ロギングを構成する必要はありません。多くの場合、レプリケーションでは、マスター データベース内のすべてのデータベース (特に MySQL 情報構成データベース) のレプリケーションは必要ありません。したがって、replicate_do_dbを設定してレプリケートされたデータベースを指定することができます。4.データベースからマスターデータベースのデータを初期化します。 データ量が多くない場合は、mysqldump ツールを使用してマスター データベースのデータをエクスポートし、スレーブ データベースにインポートできます。 mysqldump --single-transaction --triggers --master-data データベース名 > data.sql データ量が多い場合は、ここでは紹介されていない Xtrabackup を使用してデータベースをエクスポートする必要があります。 マスター データベースが長時間実行されている場合、バイナリ ログに従ってスレーブ データベースを使用してデータをコピーするのは適切ではありません。バイナリ ログを直接使用してスレーブ データベースを初期化すると、時間がかかり、パフォーマンスが低下します。ほとんどの場合、マスター データベースのバイナリ ログ構成項目はオンになっていないため、以前の操作のバイナリ ログは存在しません。 5. レプリケーションを有効にする ライブラリから次のコマンドを実行します mysql> MASTERをMASTER_HOST='host'に変更します。 -> MASTER_USER='ユーザー'、 -> MASTER_PASSWORD='パスワード', -> MASTER_LOG_FILE='mysql-bin.000001', -> MASTER_LOG_POS=0; 最後の 2 つのコマンド、MASTER_LOG_FILE と MASTER_LOG_POS に注意してください。これらは、ライブラリから読み取りを開始するバイナリ ファイルとオフセットの開始位置を示します。これらの 2 つのパラメーターは、インポートした SQL にあります。 レプリケーションを有効にする スレーブを起動します。 この時点でレプリケーションは完了です。マスター データベースでデータが更新されたり、新しいデータが追加されたりすると、その結果をスレーブ データベースで照会できます。 レプリケーション スレッドのステータスは、マスター データベースで照会することもできます。 3. レプリケーションログの形式マスター データベースがデータを保存する方法に応じて、MySQL レプリケーションには 3 つのログ形式があります。
MySQL 5.7 より前では、ステートメント形式がデフォルトで使用されていました。 設定方法は構成ファイルで設定できます (推奨): binlog_format=行 または、一時的にグローバル変数を設定します (現在の MySQL 接続は有効です)。 ログ形式を表示します。mysql > show variables like 'binlog_format'; ログ形式を設定するmysql> set binlog_format='row'; 通常、マスターサーバーとスレーブサーバーの 2 つは同じコンピュータルームに配置されるため、2 つのサーバー間の同期速度は速くなります。強力な一貫性を確保するには、行ログ形式 (行) を優先する必要があります。転送速度を確保するには、混合モード (混合) を選択できます。
|
<<: Dockerイメージをプルしてバージョンを確認する方法
>>: JS Canvas インターフェースとアニメーション効果
目次落とし穴充填方法何の穴ですか?要約する落とし穴最近、仕事で商品の割引価格を計算すると、いつも1セ...
この記事の例では、カウントダウンプロンプトボックスを実装するためのJavaScriptの具体的なコー...
目次Vuex環境を構築する要約するVuex環境を構築するsrcディレクトリにフォルダstoreを作成...
この記事では、ネイティブ JS で実装されたデジタル時計エフェクトを紹介します。エフェクトは次のとお...
Centos7 と Centos6 では、GRUB パスワードの設定手順に大きな違いがあります。これ...
目次DockerコンテナのエクスポートDockerコンテナのインポートこの記事では主に、コンテナ...
目次ERR 1067による殺人事件2番目の問題の原因はsql_modeです3. sql_modeを設...
目次クラスコンポーネントイベントバインディング関数コンポーネントイベントバインディング要約するRea...
目次序文解決:ステップ1ステップ2序文環境: VMware Workstation 上に Linux...
Web ページには、非常に複雑な HTML 構造があります。CSS を使用して関連するスタイルを定義...
いわゆるスライディングドアテクノロジーとは、さまざまな長さのテキストに合わせてボックスの背景を自動的...
このセクションでは、テキストの変更の詳細から始めます。これにより、読者はさまざまな HTML フォン...
目次過去1週間の時間を取得する過去1か月の時間を取得する過去3か月分を取得新しい Date() と ...
目次序文1. リクエストをキャンセルする方法2. 重複リクエストの判定方法3. 繰り返しリクエストを...
Spring jdbc のデータベース操作オブジェクト モデルの詳細な例Spring Jdbc デー...