MongoDBのデータベースの断片化--MongoDB

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: "北京"、国: "中国"})

 

公開された37元の記事 ウォンの賞賛6 ビュー10000 +

おすすめ

転載: blog.csdn.net/feili12138/article/details/104924768