0

手作りのレプリケーションを使用している Firebird から、MySQL とその統合レプリケーション ソリューションに切り替えることを検討しています。散発的なネットワーク接続を持つ 4 つの部門があります。それぞれがデータベースのコピーを持っている必要があり、データベースを更新できる必要があるため、リングレプリケーション方式 (A->B、B->C、C->D、D-​​>A) を使用すると、最高であること (間違っていたら訂正してください!)。

ただし、部門のうち 3 つは外の世界へのパブリック接続を持っていますが、1 つは NAT の背後にあり、ポートを転送する機会がありません。したがって、基本的には外の世界にしか接続できず、着信接続を受け入れることはできません。この制限があるリング型レプリケーションを設定する方法はありますか?

4

1 に答える 1

0

リバーストンネルを使用して、NATの背後にあるホストにアクセスできます。NATの背後にあるホストがホストDであり、ホストCがhostc.comという名前でインターネットからアクセスできる場合、reversetunnelコマンドは次のようになります。

ssh -nNT -o TCPKeepAlive=yes -R <remote port>:localhost:<local port> user@hostc.com

<remote port>特権のないポートであればどれでもかまいません。<remote port>8022および22に設定した場合<local port>は、次のコマンドを実行します。

ssh localhost -p 8022

ホストCでは、ホストDのポート22(ssh)に接続できます。

同様に、任意のローカルポート(web、mysql)を任意のリモートポートにトンネリングできます。トリッキーな部分は、接続を維持し(-o TCPKeepAlive = yesが役立つはずです)、自動的に再接続することです。定期的にpingを実行できるbashスクリプト、またはsshプロセスを強制終了して再度起動するcronジョブです。

リングスタイルのレプリケーション設定の効率については、私は少しも考えていません:(

于 2009-10-08T19:05:33.810 に答える