私は新しい製品のためにしばらくの間、私たちのdevサーバで遊んでいました、そして今、それは生きていて、既存のデータを単一のマシン(mongod、ローカル)から私たちの6サーバシャードセットアップ2シャードごとに3つのレプリカセット) - リモートシャードにDBをクローンする方法はありますか?MongoDB:シングルサーバのクローン作成dev。データベースをプロダクションシャードクラスタ
(シャードキーの例と、最悪の場合、簡単なダンプ&挿入は非常にいいですね!)
感謝!
私は新しい製品のためにしばらくの間、私たちのdevサーバで遊んでいました、そして今、それは生きていて、既存のデータを単一のマシン(mongod、ローカル)から私たちの6サーバシャードセットアップ2シャードごとに3つのレプリカセット) - リモートシャードにDBをクローンする方法はありますか?MongoDB:シングルサーバのクローン作成dev。データベースをプロダクションシャードクラスタ
(シャードキーの例と、最悪の場合、簡単なダンプ&挿入は非常にいいですね!)
感謝!
あなたはシャーディングenvironementにあなたのdevのサーバーを追加する必要があります
新しいクラスタにDEVから移行されたあなたはシャードする必要はありません移行のためのデータベースが必要ですが、シャーディングの恩恵を受けるには、それを実行する必要があります。
このソリューションの利点は、あなたが取るべき最小アクションを持っている(すべてが自動的に行われます)と(操作であるが、より遅いあなたが置くより負荷、)ダウンタイムがないことである しかし、これはさslow解決策(マニュアルコピーよりも遅い)。 RAWファイルに比べ
もう一つの利点は、コピー:転送が(〜デフラグ)常に良い:-)
devserverをマスターとしてレプリカセットに追加し、他の3つのサーバーをスレーブとして追加します。 他のサーバーによってデータがコピーされたら、dev-serverを削除します。
あなたがデータベースをダンプするためにmongodump
を使用して、あなたのレプリカセットの各
man mongodump
のマスターにmongorestore
とDB-ダンプをロードすることができ、man mongorestore
参照:
http://www.mongodb.org/display/DOCS/Replica+Set+Internals
大丈夫ですので、addshardはdevサーバーです。しかし、devサーバー上の特定のDBが他のシャードですか?なぜなら、シャーディングが必要だと思っている限り、それはすべてのシャードサーバー上にあることを意味するからです。少量のデータが1つのシャード== 1つのボックス内に残っているとします...この場合、シャードdevのサーバー今...または私はここで間違って考えていますか? – Tobias
@Tobias:私が言ったように、 "dev"をクラスタに追加して、コマンドremoveShardを使用して、すべてのデータをdevから他のクラスタに移行させます。コマンドremoveeshardが「シャードを完全に削除しました」と返すと、すべてのデータが移行されました – kamaradclimber
ああ、残念です。どうもありがとうございます! – Tobias