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 つがクラッシュすると、他のスレッド (プロセス全体) ...
この記事は共有および集約することを歓迎します。全文を転載する必要はありません。著作権を尊重してくださ...
1. mysqlbackup の紹介mysqlbackup は、MySQL Enterprise B...
1. はじめに:ウェブページにフラッシュ コンテンツを正常に表示したい場合は、ページ上のフラッシュ ...
mysqlslap共通パラメータの説明–auto-generate-sql システムはテスト用のSQ...
1. MySQLは現在の日付と時刻を取得する関数1.1 現在の日付 + 時刻 (日付 + 時刻) ...
数秒後に広告が表示されて消えることがよくあります。この機能を実装するには、JQuery フレームワー...
1 つのサーバー上で 3 つの MySQL インスタンス プロセスが開始され、それぞれ異なるポート ...
序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...
1. 関連概念1.1 Jenkins の概念: Jenkins は、使用されるプラットフォームに関係...
面接の経験によっては、CSS に関する質問がよく見られ、CSS を使用して三角形を描画する方法につい...
ファイル操作に関連するシステムコール作成するint creat(const char *ファイル名,...
ソングティ: SimSun太字: SimHeiマイクロソフト YaHei: マイクロソフト YaHe...
nginx でファイルサーバーを構築することもありますが、これは一般に公開されていますが、サーバーが...
背景PNG 画像は jpg 画像よりも多くのストレージスペースを占有しますが、PNG 画像の品質は大...