シャーディングの管理と維持
すべてのシャードサーバーを表示
シャーディング情報を見る
シャーディングかどうかの判断
既存のテーブルのシャーディング
テーブルtest.usersをシャーディングしたところで、ライブラリ内の既存のシャーディングされていないテーブルtest.users_2をシャーディングします。
テーブルの初期状態は以下のようになります。
テーブルの初期状態は以下のようになり、シャーディングされていないことがわかります:
セグメンテーション
再度シャーディング後のテーブルの状態を確認すると、シャーディングされていることがわかります。
シャードサーバーの追加
新しいシャード・テーブルを追加する方法を説明しましたが、次は新しいシャード・サーバーを追加する方法を説明します。
新しいシャード・サーバー・プロセスの開始
新しいシャード・サーバーの設定
スライス・テーブルのステータスを表示して、新しいシャード・サーバーを確認します。
このように、新しい Shard サーバーが追加されると、MongoDB 内部で実装されている新しい Shard にデータが自動的に振り分けられます。
これは MongoDB 内部で実装されています。
シャードサーバーの削除
ハードウェア・リソースが限られているため、リサイクル作業を実行しなければならないことがあります。
システムは、まずShard Server上のデータを他のShard Serverに均等に分配し、最終的にShard Serverをオフラインにします。
システムはまず、削除されようとしているShard Server上のデータを他のShard Serverに均等に分配し、最終的にShard Serverをオフラインにします。
db.runCommand({"removeshard" : "localhost:20002"});を常に呼び出す必要があります:
最終的な削除後、db.runCommand({"removeshard" : "localhost:20002"})を再度呼び出すと、システムはエラーを報告します。
がエラーを報告し、ポート 20002 上の Shard Server が削除されたため存在しなくなったことを通知します。
次に、表のデータの分布を見てください:
データが他の2つのシャード・サーバーに均等に分散されていることがわかります。
しかし、なぜノードがまだ存在しているのでしょうか?
この記事は"phper - a little bit every day ~"ブログからのものです。