web-dev-qa-db-ja.com

MySQLレプリケーションマスタースレーブ

私はMySQLでマスタースレーブレプリケーションを学習しています。それを機能させ、Perconaバックアップツールを使用してスレーブを復元することもできます。私はこのプロジェクトから学びました https://github.com/vbabak/docker-mysql-master-slave

2つの別個のmysqlインスタンスを必要とするのではなく、2つのデータベース間でのみマスター/スレーブレプリケーションを構成できる場合、マスター/スレーブレプリケーションは2つの別個のmysqlインスタンスでなければならないのでしょうか。それは不可能だと思います。

知りたい理由は、フェイルオーバーと復元のシナリオを自動化したいためです。私の環境では、インフラストラクチャの自動化により、新しいmysqlインスタンスは常にデフォルトのポートで実行されるため、現在2つのmysqlインスタンスを同じインスタンスで起動することはできません。ホストマシンサーバー。したがって、テストを実行するためだけに1つのマスターと1つのスレーブを持つ2つのVMを作成する必要があるように見えます。

1
Niklas R.

VMはテストには問題ありませんが、パフォーマンスのオーバーヘッドは存在しますが、高負荷では桁違いではなく最大30%です。

同じマシンで複数のデータベースインスタンスを実行する場合、探しているのはmysqld_multiです。あなたはおそらくそれを避けるべきですが、それはひどい、厄介な解決策です。 VMはより良いアプローチです。または、VMをすべてのコストで回避する必要があると本当に感じている場合は、コンテナ。

2
Gordan Bobic
  • 前述のVM
  • 各インスタンスのDocker、ポート転送あり
  • コマンドラインで-P 4567を使用する場合の異なるポート

MHAを検索します。

フェイルオーバーを自動化しようとするときは、「スプリットブレイン」の問題に注意してください。

1
Rick James