MongoDBのフラグメント
成長しているデータへの解決策
垂直方向の拡張:増加のCPU、ハードディスクや他のストレージリソース容量を拡大します
水平拡張:複数のサーバーに分散されたデータ、すなわちスライスを使用します
MongoDBは何フラグメンテーションこと?
すべてのデータが別のサーバーに分散させる過程で保存され、データベースを分割することです
なぜMongoDBの断片化を実現する必要がありますか?
利点:
1.抽象クラスタ、クラスタ「見えない」ので、MongoDBのは、mongosのルーティングと呼ばれる独自のプロセスが付属しています
ディスク・ストレージ・スペースの問題を解決し、データ処理のパフォーマンスを向上させる2。
3.クラスタは常に、MongoDBのフラグメンテーションとレプリケーションの組み合わせを読んで、複数のサーバーにスライス内のデータを保証するだけでなく、それぞれが対応するサブデータのバックアップを持っていることを確認できることを保証するために、データのセキュリティを向上させますサーバーを交換する時間があることを確認することができるように、他のはすぐに、ライブラリから壊れ継続作業の一部を引き継ぐことができます
簡単に拡張すること4.メイククラスター
スライスクラスタの主要コンポーネント:
ルータ:データのルーティング、およびクライアントモジュールを扱います
設定サーバーのすべての預金のためのいくつかの構成情報を、データを撤回、すべてのノードの情報は、のフラグメンテーション機能をシャード:
シャード:実データの格納場所、チャンク単位で格納されたデータ
展開のMongoDBクラスタの断片化
図・デプロイメント環境に示すように、
1. インストールMongoDBは、8の設定例
2. データを保存するためにディレクトリを作成します。
ます。mkdir -pは/ usr / local /のMongoDB /データ/ shard11
ます。mkdir -pは/ usr / local /のMongoDB /データ/ shard12
ます。mkdir -pは/ usr / local /のMongoDB /データ/ shard21
ます。mkdir -pは/ usr / local /のMongoDB /データ/ shard22
ます。mkdir -pは/ usr / local /のMongoDB /データ/ CONFIG1
ます。mkdir -pは/ usr / local /のMongoDB /データ/ CONFIG2
ます。mkdir -pは/ usr / local /のMongoDB /データ/ CONFIG3
3. ログディレクトリを作成し、ファイルを記録し、権限を追加
ます。mkdir -pは/ usr / local / MongoDBの/ログ
タッチ/usr/local/mongodb/logs/router.log
タッチ/usr/local/mongodb/logs/shard11.log
タッチ/usr/local/mongodb/logs/shard12.log
タッチ/usr/local/mongodb/logs/shard21.log
タッチ/usr/local/mongodb/logs/shard22.log
タッチ/usr/local/mongodb/logs/config1.log
タッチ/usr/local/mongodb/logs/config2.log
タッチ/usr/local/mongodb/logs/config3.log
chmodの-R 777 /usr/local/mongodb/logs/router.log
chmodの-R 777 /usr/local/mongodb/logs/shard11.log
chmodの-R 777 /usr/local/mongodb/logs/shard12.log
chmodの-R 777 /usr/local/mongodb/logs/shard21.log
chmodの-R 777 /usr/local/mongodb/logs/shard22.log
chmodの-R 777 /usr/local/mongodb/logs/config1.log
chmodの-R 777 /usr/local/mongodb/logs/config2.log
chmodの-R 777 /usr/local/mongodb/logs/config3.log
4. プロファイルの編集
シャードのプロフィール
vimの/usr/local/mongodb/bin/shard11.conf
vimの/usr/local/mongodb/bin/shard12.conf
比較するとshard11.confは、ポート番号とDBPATHとログパスを変更します
vimの/usr/local/mongodb/bin/shard21.conf
vimの/usr/local/mongodb/bin/shard22.conf
比較するとshard21.confは、ポート番号とDBPATHとログパスを変更します
コンフィグ設定ファイル
vimの/usr/local/mongodb/bin/config1.conf
vimの/usr/local/mongodb/bin/config2.conf
vimの/usr/local/mongodb/bin/config3.conf
比較するとconfig1.confは、ポート番号とDBPATHとログパスを変更します
ルータコンフィギュレーション・ファイル
vimの/usr/local/mongodb/bin/router.conf
プロモーター断片及びノード構成ノード
/ usr / local / MongoDBの/ binに/のmongod -f /usr/local/mongodb/bin/shard11.conf
/ usr / local / MongoDBの/ binに/のmongod -f /usr/local/mongodb/bin/shard12.conf
/ usr / local / MongoDBの/ binに/のmongod -f /usr/local/mongodb/bin/shard21.conf
/ usr / local / MongoDBの/ binに/のmongod -f /usr/local/mongodb/bin/shard22.conf
/ usr / local / MongoDBの/ binに/のmongod -f /usr/local/mongodb/bin/config1.conf
/ usr / local / MongoDBの/ binに/のmongod -f /usr/local/mongodb/bin/config2.conf
/ usr / local / MongoDBの/ binに/のmongod -f /usr/local/mongodb/bin/config3.conf
6. ログは、レプリカセットの構成ノードを構成します
/ usr / local / MongoDBの/ binに/モンゴ--port 27111
> CFG = {_ ID: '設定'、メンバー:[{_ ID:0、ホスト: '127.0.0.1:27111'}、{_ ID:1、ホスト: '127.0.0.1:27222'}、{_ ID:2、ホスト: '127.0.0.1:27333'}]}
7. ログは、レプリカセットを構成する2つのスライスノードをシャード
/ usr / local / MongoDBの/ binに/モンゴ--port 27018
> CFG = {_ ID: 'shard1'、メンバー:[{_ ID:0、ホスト: '127.0.0.1:27018'}、{_ ID:1、ホスト: '127.0.0.1:27019'}]}
/ usr / local / MongoDBの/ binに/モンゴ--port 27118
> CFG = {_ ID: 'shard1'、メンバー:[{_ ID:0、ホスト: '127.0.0.1:27118'}、{_ ID:1、ホスト: '127.0.0.1:27119'}]}
8. 開始ノードルーティング、断片化および増加
/ usr / local / MongoDBの/ binに/ mongos -f confに/ router.conf
mongos> sh.addShard( "shard1 / 127.0.0.1:27018,127.0.0.1:27019")
mongos> sh.addShard( "shard1 / 127.0.0.1:27118,127.0.0.1:27119")
Viewデータベースクラスタの断片化状況
9. データベースへの攻撃に断片化を可能にします
MongoDBの断片化を行う断片化されたコレクション(テーブル)のコレクションに基づいている、データベース内の断片化をサポートすることを可能にするために必要です
mongos> sh.enableSharding(「KGC」)
断片のコレクション
最初のインデックス
mongos> db.kgc.createIndex({ "_ ID":1})
フラグメントライブラリーKGCにおけるテストセットで
sh.shardCollection( "kgc.test"、{ "ID":1})
ビューのステータス:mongos> sh.status()
10.試験データは断片環状に挿入されます
mongosは> のために(VAR私は1 =; I <= 10000; I ++)db.kgc.insert({年齢:私は、名前: "wangmazi"、ADDR: "北京"、国: "中国"})