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 インターフェースとアニメーション効果
今日の Web デザインでは、非常に大きなフォントが表示される傾向があります。これらのオープンソース...
目次1. fill() 構文2. fill() の使用3. まとめ序文:配列の初期化方法についてはよ...
前回の記事では、docker compose を使用して FastDfs ファイル サーバーをインス...
目次1. クロージャとは何ですか? 2. クロージャの役割2.1) メモリ2.2) プライベート変数...
MySQL 5.7.21 winx64無料インストールバージョンの設定方法、参考までに、具体的な内容...
1. HttpとHttpsの違いHTTP: インターネットで最も広く使用されているネットワーク プロ...
コードをコピーコードは次のとおりです。 <div contenteditable="...
以下のように表示されます。 test コマンドはファイルが存在するかどうかを判断します。 ssh u...
この記事では、シャトルボックス効果を実現するためのjQueryの具体的なコードを参考までに紹介します...
1. HTMLページの文字セットを指定する2つの方法方法1: <メタ文字セット="u...
yum install httpd php mariadb-server –yランプの動作環境を設定...
1. テーブル構造テーブル人id名前1あなた2あなた(スペース) 3あなた(スペース2つ) 2. ク...
面接官から「NodeJS で複数のプロセスを開始する方法を教えてください」と尋ねられることがあります...
目次概要1. コンポジションAPI 1. ref と reactive の違いは何ですか? 2. 周...
この記事では、全選択または選択を反転する機能を実現するためのJavaScriptの具体的なコードを参...