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. 環境整備2. Dockerをインストールする3. MySQLマスタースレーブデータベースを...
成果を達成する要件/機能: CSS + HTML を使用してハートを描く方法。分析:正方形と 2 つ...
目次1. プロジェクト要件2. 文書の内容3. プロジェクト例4. プロジェクトコード1. プロジェ...
1. 理由新しいシステムに MySQL を再インストールする必要があったので、将来詳細を忘れた場合...
この記事では、Vueの具体的なコードを共有して、シンプルなマーキー効果を実現しています。具体的な内容...
目次1. Springbootプロジェクトを準備する2. 関連する設定を実行する3.パッケージ4.D...
HTML についてどれくらい知っていますか? 現在、基本的な HTML コードを学習している場合は、...
背景同社のサーバーはすべて Alibaba Cloud ECS ホストを購入しています。デフォルトの...
1. 背景1.1 問題点最近の製品テスト レポートでは、PKI ベースの認証方法の使用が推奨されて...
(P4) Web 標準は一連の標準で構成されています。中心となる概念は、Web ページの構造、スタイ...
テスト サーバーにログインするたびに、必ず ssh ログインのパスワードを入力する必要があります。ロ...
原因かつて私は Vultr に WordPress を設定しましたが、よく知られている理由により、こ...
目次序文1. 問題の原因2. 解決策VueはelementUIテーブルtr thの高さと背景色を変更...
以下のように表示されます。 SELECT count(DISTINCT(a.rect_id)) zc...