短期間に大量のデータを生成し、単一の MongoDB データベースに格納するソフトウェアがあります。書き込みパフォーマンスを向上させるために、受信データを処理するシャード クラスターの設定を検討しています。これはすべて amazon ec2 インスタンスで行われているため、コストを節約するためにプロセスが完了したら、シャード クラスターから単一の永続サーバーにデータを統合することをお勧めします。明らかに、完了時にクラスターからデータを移植する python スクリプトを作成できますが、よりクリーンで自動化された方法があることを願っています。データが書き込まれると、アクセスはすべて読み取り専用になり、単一のサーバーでワークロードを十分に処理できます。レプリカ セットとシャーディングを組み合わせたソリューションを探していましたが、それが機能する方法ではないようです。
1 に答える
1
ダウンタイムなしで MongoDB を移行する 1 つの方法は、古いサーバーと新しいサーバーで構成されるレプリカ セットを作成し、新しいサーバーが同期したらすぐに古いサーバーを削除することです。しかし、古いデータベースがシャード化されていて、新しいデータベースがそうでない場合、それは機能しません。シャードはレプリカ セットから構築されるためであり、その逆ではありません。つまり、昔ながらの方法でデータベースをコピーする必要があります。これを行うには、次の 2 つの方法があります。
- ネットワーク方式: 宛先でコマンド
db.copyDatabase(<remote_db_name>, <local_db_name>, <remote_host>, <remote_username>, <remote_password>)
を使用して、ネットワーク経由でソースからデータベースをコピーします。 - ファイル方式:
mongodump
ソースで a を実行して、データをファイルにエクスポートします。次にmongorestore
、新しいサーバーで a を実行してインポートします。
于 2013-10-22T15:01:46.320 に答える