自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關于MongoDB數據庫自動分片技術的詳細介紹

數據庫 其他數據庫 MongoDB
本文我們詳細介紹了MongoDB的自動分片技術,并給出了圖解和代碼,希望能對您有所幫助。

MongoDB數據庫自動分片技術就是將原先數據庫中集合依據一定的規(guī)則切分成若干小塊,這些分片小塊統一由mongos路由管理,當有請求查詢或寫入時,路由會依據分片shard key規(guī)則找到對應的分片操作。分片解決了寫密集操作,用于分散單一寫服務器負載。亦或者原先的存儲空間不夠了,這個時候可能通過分片操作將之后的數據寫入其它存儲空間上。可以看出,集合的分片和數據庫的分表類似,并且每個分片都支持寫操作。

由于分片的出現,導致數據被分布式的存儲到不同的服務器上,當某一服務器出現問題時就可能導致數據丟失,其次路由mongos也會出現問題,另外存儲分片的信息的配置服務器也可能會發(fā)生問題。當然我們可以利用master salve/Replica sets機制去備份每個分片、Mongos、configs 。如下官網配置圖示,即使我們使用服務器交叉?zhèn)浞菀残枰罅康姆掌髻Y源,因此分片是一件***耗費資源的事情。官網的配置圖示

關于MongoDB數據庫自動分片技術的詳細介紹

首先路由從config中讀取配置信息,發(fā)生的分片動態(tài)增加也會通過mongos寫入config servres中,當client有請求時通過mongos查找到對應的分片??梢钥闯龇制褂玫膔eplica set備份模式,而mongos/config servrs則是多個服務器配置。下面就手動實現一下分片的過程。(換環(huán)境了繼續(xù)昨天未完成的,前2天在筆記本上)

1)創(chuàng)建configs服務器

  1. ....bin>mongod --dbpath "e:\mongodb\data\configs"  --port 23017   

2)創(chuàng)建mongos服務器 并指定依賴的配置服務器 (mongos依賴于配置服務器,mongos查詢的分片信息都存儲在configs中)

  1. ....bin>mongos  --port 25017  --configdb 127.0.0.1:23017 

3)創(chuàng)建多個分片服務器 (負責數據存儲)

  1. ....bin>mongod  --port 27017 --dbpath  "e:\mongodb\data\dbs\shard27017"  

為shard27017分片服務器 創(chuàng)建test庫foo集合,并且為foo集創(chuàng)建name索引。

關于MongoDB數據庫自動分片技術的詳細介紹

4)連接mongos服務器添加shard27017分片服務器到configs服務器中。

  1. >use admin  
  2.  
  3. >db.runCommand({addshard:"127.0.0.1:27017",allowLoacl:true})               //添加分片服務器,allowLoacl 充許本地部署 默認情況不充許本地部署多個分片的  

一旦分片添加成功,在mongos服務器中執(zhí)行 show dbs就可以看到分片服務器的數據庫,并且可以操作分片服務器的數據 ,下面為分片服務器的test庫foo集合設置分片以及分片shard key。

  1. >db.runCommand({"enablesharding":"test"})     //對test庫啟用分片功能 

注意:需要分片的集合 的shard key必須是索引鍵, (我們也可以在mongos為分片foo集合創(chuàng)建索引)

  1. >db.runCommand({"shardcollection":"test.foo","key":{"name":1}})                       //數字代表排序 

至此自動分片就創(chuàng)建完成了,可以在mongos或configs服務器查詢分片信息。

當一個分片服務器存儲不夠時,通過像3)方式繼續(xù)添加分片服務器,monogs會自實現這些分片的集群工作。

當需要移除分片時運行下面的命令,同時mongos路由會將此分片服務器上的信息移到其它分片上。

  1. >db.runCommand({"removeshard":"127.0.0.1:27017"}) 

簡單的分析一下這個shard key,當不是寫密集操作時,而僅僅是因為存儲空間不夠了,這個shard key我們可以選用一些無上限范圍的key,如創(chuàng)建時間等,這樣新創(chuàng)建的記錄都會寫入新的分片服務器上。

當需要使每個分片均勻分布數據時,或者寫入密集時,***選用有一定范圍值的key ,當然這個范圍不能太小,像性別,真假等,這會導致只自動產生兩個分片,所以一定要選擇合適的shard key才能達到理想的效果。

關于MongoDB數據庫的自動分片技術就介紹到這里,希望通過本次的介紹能夠帶給您一些收獲。

【編輯推薦】

  1. MongoDB數據庫的備份與恢復詳解
  2. MongoDB中索引的創(chuàng)建和使用詳解
  3. Exchange數據庫的恢復問題和可用性介紹
  4. MongoDB權限管理之用戶名和密碼的操作
  5. MongoDB基于Java、PHP的一般操作和用戶安全設置
責任編輯:趙鵬 來源: 博客園
相關推薦

2011-08-05 13:17:34

Oracle數據庫閃回個性

2010-03-16 14:46:37

2011-03-21 13:21:23

數據庫開發(fā)規(guī)范

2009-12-23 11:09:57

軟交換技術

2025-01-22 08:19:34

2011-06-23 09:00:04

QT QODBC 數據庫

2022-07-27 08:32:01

數據庫MySQL

2009-08-28 13:03:55

C#壓縮Access數

2011-08-02 18:38:19

MySQLINI文件

2011-02-25 09:37:35

2011-08-05 16:32:29

MySQL數據庫ENUM類型

2011-09-01 09:30:27

Oracle數據庫控制語句

2023-09-01 10:20:05

數據庫解密

2011-08-10 13:03:58

CJDBC數據庫集群

2011-07-27 11:08:49

Oracle數據庫EM Console重

2024-11-19 13:11:19

2011-08-18 10:06:10

2010-03-18 14:55:17

Python數據庫連接

2010-05-26 17:39:38

Linux性能監(jiān)控

2009-06-17 16:01:28

點贊
收藏

51CTO技術棧公眾號