私は「適格」なDBAではありませんが、そうです。ソーシャルアプリで使用する自分のDBを担当しています。
最近、明らかな理由により、データベースにマスター/スレーブレプリケーションを実装しました。
私が知りたいのは、マスターDBに書き込むすべてのユーザーがスレーブDBに追加の書き込みを作成するため、MySQLレプリケーションが私のDBのパフォーマンスを停止するかどうかです(ここでは間違っているかもしれません)。
私のスレーブとマスターの間に遅れはありません。したがって、レプリケーションはほぼ瞬時に行われます。
レプリケーション設定のためにマスターが処理しなければならない2つの主要な事柄があります
マスターは、完了したすべてのSQLトランザクションをバイナリログに書き込む必要があります。
スレーブが接続されている場合、マスターはトラフィック警官を再生する必要があります。
忙しいマスターがSeconds_Behind_Master : 0
、単に素晴らしい。
これらのメトリックのいずれかが顕著になった場合、特定のことを行う必要がある場合があります。
レプリケーショントポロジの設定に関する他の投稿は次のとおりです
Aug 20, 2012
: クロスデータセンターMySQLマスタースレーブレプリケーションの最適なソリューションAug 20, 2012
: GeoIPレプリケーションにMySQL Server 5.6を使用する方法Jun 25, 2012
: 異なるvlan /サブネット/別のサイトでのMySQLデータベースレプリケーションDec 19, 2011
: マスターからマルチマスターへのレプリケーションをセットアップする最良の方法Dec 17, 2011
: 2台以上のマシンでのMySQLマスター-マスターレプリケーショントポロジAug 18, 2011
: MySQLレプリケーションでは、どのレベルの復元力が可能ですか?Jun 01, 2011
: MySQL 5.0レプリケーションで帯域幅の問題に対処するにはどうすればよいですか?Mar 29, 2011
: MySQLの高可用性、フェイルオーバー、および待ち時間のあるレプリケーション「いいえ、レプリケーションによってマスターのパフォーマンスが低下することはありません」という質問に簡単に答えると、
マスターがレプリケーション環境で重要なことを2つ実行するだけでよいため、レプリケーションによるマスターへの影響は、通常、マスターが実行する必要がある他のすべてのことと比較して非常に小さくなります。
常にレプリケーションを行わない場合でもバイナリログを有効にする必要があるため、バイナリログの書き込みはレプリケーションのコストとは見なしません。これは、非常に貴重なトラブルシューティングおよび回復ツールです。
スレーブにレプリケーションイベントを送信するコストもごくわずかです。スレーブはマスターへの永続的なTCP接続を維持する責任があるため、マスターとしてソケットにデータをコピーするだけです。イベントが発生します。それを超えて、マスターはスレーブがそれらを実行するために移動するかどうか、またはいつそれを気にしません。
最後のステートメントの部分的な例外は semi-synchronous レプリケーションで、これはデフォルトではありません。このモードでは、マスターは少なくとも1つのスレーブが各トランザクションからのバイナリログイベントの受信と永続ストレージ(実際の実行ではありません)を確認するのを待ってから、マスターが各コミットで制御をクライアントに返します。
しかし、どの場合でも、マスターはスレーブで更新を実際に実行する責任はない-スレーブに次の2つのうちの1つを送信するだけです。 (ステートメントベースモードで)実行された実際の入力クエリのコピー、または各クエリによって実際に挿入/更新/削除された行のデータ(行ベースモード)。混合モードでは、クエリオプティマイザーはイベントごとに使用する形式を決定します。