mongo資料庫分片技術的實現

2021-06-07 09:25:40 字數 1724 閱讀 4780

近期在使用mongod資料庫時,由於資料量較大,每天資料量達到近億條資料,所以採取了mongo資料庫的分片技術,這裡對這幾天下來的開發做個總結。

下面以分兩個分片進行說明,如果要進行分兩片,那麼必須要有四個目錄,每個目錄都要有

mongodb的例項,其中兩個用於儲存資料,乙個用於配置伺服器,乙個用於mongos伺服器的啟動,而我們(客戶端)與資料庫打交道即是通過mongos伺服器進行的。原有配置的27017介面,即是mongos伺服器配置的預設埠。

1:啟動d盤的mongo資料庫,這個是當做乙個分片來用,儲存資料,注意

data

後面的\

不能丟,後面的都類似

d:\mongodb-27020\mongodb\bin\mongod --dbpath d:\mongodb-27020\data\ --port 27020 -shardsvr

如果想當做伺服器來使用,則使用下面的**,在這裡要注意

—dbpath

的值,下面顯示的就是紅色方框中的字型

2:啟動e盤的mongo資料庫,這個是當做第二個分片來用,儲存資料

e:\mongodb-27020\mongodb\bin\mongod --dbpath d:\mongodb-27021\data\ --port 27020 –shardsvr

–directoryperdb -install

3:啟動f盤的配置伺服器

f:\mongodb-27022\mongodb\bin\mongod --dbpath f:\mongodb-27022\data\ --port 27022 -configsvr

4:啟動f盤的mongos伺服器,注意這裡的目錄跟第3步的目錄是一樣的,這時mongos的埠即是預設的商品27017

f:\mongodb-27022\mongodb\bin\mongos --configdb 192.168.37.4:27022

5:配置mongo資料庫與mongos伺服器的之間的關係,注意這個也是要在第4步的目錄中進行配置的。

如果在下圖無法啟動mongos伺服器

那麼使用下圖的方式啟動伺服器

然後,增加分片

db.runcommand( )

db.runcommand( )

6:建立資料庫

1> config = connect("192.168.37.4:27022")  --登陸config   2

> config = config.getsisterdb("config")  獲得config資料 3

> testdb1=db.getsisterdb("gpstow");建立gpstwo資料庫

7:啟用資料庫分片

db.runcommand()

8:啟用collection分片

db.runcommand( , unique : true 

} )--

啟用collection分片,

配置shard key

唯一9:使用檢視命令檢視

db.printshardingstatus();

10:轉到gpstwo資料庫

11:檢視gpstb_test表的情況

12:增加表資料結構

db.system.users.remove()

db.adduser("ffcs","!ffcs@2012")

db.auth("ffcs","!ffcs@2012")

db.usertb.insert()

資料庫分片技術

假如您有乙個應用程式,隨著業務越來越有起色,系統所牽涉到的資料量也就越來越大,此時您要涉及到對系統進行伸縮 scale 的問題了。一種典型的擴充套件方法叫做 向上伸縮 scale up 它的意思是通過使用更好的硬體來提高系統的效能引數。而另一種方法則叫做 向外伸縮 scale out 它是指通過增加...

資料庫分片技術

垂直切?存放在同一目錄 資料中的的資料分散存放到多個資料庫 1.一種是按照不同的表 或者schema 來切分到不同的資料庫 主機 之上,這種切可以稱之為資料的垂直 縱向 切分 另外一種則是根據表中的資料的邏輯關係,將同乙個表中的資料按照某種條件拆分到多台資料庫 主機 上面,這種切分稱之為資料的水平 ...

MySQL資料庫分片技術調研

將這段時間了解的mysql分片技術和主從複製只是整理清楚畫了思維導圖記錄一下,希望能給需要的人一些幫助 1 海量資料的操作超出單錶 單庫的最大限制 2 訪問壓力超出資料庫系統限制,效能下降 3 資料庫複製 容災等問題 一 採用資料分表分庫提高資料庫的效能限制 1 可選sharding策略 2 sha...