残念ながら、MySQLのレプリケーションはマスターのIPアドレスによって異なります。マスターがIPアドレスを変更すると、レプリカでレプリケーションエラーが発生します。しかし、MySQLレプリケーションが非常に堅牢であるため、これはそれほど悪くありません。
しかし、インターネットに接続されていないボートでは長い時間がかかるような場合には、接続しなくても長い時間が経過してもすべてのビンログを利用できるようにするために、必ずマスターに「expire_logs_days」を設定する必要があります。もちろん、膨大な量のビンログを保存するには、巨大なディスクが必要です。エラーを避けるためには、ディスクアレイを増やす必要があります。
マスターはクラッシュすることなく実行できる必要がありますので、マスターのbinログの連続性に問題はありません。
たぶん、あなたは可能性を以下にいくつかのインスピレーションを見つける:
シナリオ1 - VPN
を使用しようと、私は教祖をネットワークではないのですが、あなたはレプリカにボートにあなたのマスターからVPNを使用することを試みることができますOpenVPNまたはZeroTierまたは両方のマシンでアクセス可能な静的アドレスを持つ他のインターネットサーバーを使用して同様のものを使用します。この方法で仮想ネットワークを作成し、このVPN内のIPでマスターにアドレスします。ダイナミックIPを移動して変更するときに、マスターからVPNを繰り返し変更する必要があるかもしれません。
シナリオ2 - 必要なレプリカ上のマスターの変更IP:私は教祖ネットワークが、のは十分な長さ続くマスターの新しい動的IPを想定してみましょうと、マスターは、外部からこのIPの下でアクセスできますないです
標準のインターネット通信を使用します。また、どちらのレプリカでも新しいIPを見つけることができます。または、マスターの新しいIPを一部のリスナーまたはWebサービスのレプリカに送信できます。
STOP SLAVE; CHANGE MASTER TO MASTER_HOST='xxx.xxx.xxx.xxx'; START SLAVE;
レプリカはビンログ内の最後の位置が正常に適用されたかを知っているので、これは動作しますので、その後たびにIPの変更とした場合、あなたは単にレプリカで次のコマンドを使用することができますレプリカのレプリケーションエラーが発生します。したがって、マスターIPのみを変更してレプリケーションを再開すると、レプリカはそのまま続行されます。
もちろん、マスターが外部からの動的IPの下でアクセスできない場合、レプリカはそれに接続できません。
シナリオ3 - データファイルのバッチ出荷が
あなたが外から船でVPNやアクセスのMySQLマスターを開くか、十分な長持続インターネット接続を確保するか、十分な大きさのディスクを使用することはできません場合は、すべてのアーカイブのためにPercona XtraBackupを使用して、実行中のマスターで常にホットバックアップを実行できます。
このツールは、バックアップ中に加えられたすべての変更を適用して、すべてのデータファイルを一貫してバックアップします。タールしてgzipして、いくつかのクラウドストレージに送信することができます。この方法でデータを失うことはなく、一貫してバックアップが取れます。
このソリューションの利点は、単にmysqlを停止し、既存の古いデータファイルを削除し、新しいデータファイルをuntar/unzipしてmysqlを起動するだけです。ダンプファイルを通常非常に時間のかかるリストアにする必要はありません。
これまでに何を試しましたか? – Taegost
私はホストアドレスに依存しない試しに何も見つけられませんでしたが、この回答を見つけました:[link](https://dba.stackexchange.com/a/65354)ホストからスレーブまでのファイルですが、私はどのように@Taegost –
私はクロス投稿の罪を犯したと信じています。誰も私がデータベース管理者のstackoverflowフォーラムで行った投稿とこれをマージする方法について助言してください。私は解決策に近づいています。 –