亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

搭建高可用mongo集群

發布時間:2020-07-28 11:58:42 來源:網絡 閱讀:854 作者:黑色時間 欄目:數據庫

簡介:

    MongoDB是一個可擴展、高性能的分布式文檔存儲數據庫,由C 語言編寫,旨在為web應用提供可擴展的高性能數據存儲解決方案。它的特點是高性能、易部署、易使用,存儲數據非常方便。MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據 結構非常松散,是類似json的bjson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面 向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。它的特點是高性能、易部署、易使用,存儲數據非常方便。

功能特性:

面向集合存儲,易存儲對象類型的數據。

模式自由。

支持動態查詢。

支持完全索引,包含內部對象。

支持查詢。

支持復制和故障恢復。

使用高效的二進制數據存儲,包括大型對象(如視頻等)。

自動處理碎片,以支持云計算層次的擴展性

支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。

文件存儲格式為BSON(一種JSON的擴展)

可通過網絡訪問

搭建方式:

    搭建集群采用副本集+分片的方式,用于生產環境。

網絡拓撲:

 

搭建高可用mongo集群

搭建過程:

①開啟配置服務器(config):

172.16.2.230:mongod –port 20000 –dbpath data/ --logpath log/config.log –logappend &

172.16.2.231:mongod –port 20000 –dbpath data/ --logpath log/config.log –logappend &

172.16.2.232:mongod –port 20000 –dbpath data/ --logpath log/config.log –logappend &

 

②開啟路由(mongos):

172.16.2.230:mongos --port 27017 –configdb 172.16.2.230:20000,172.16.2.231:20000,172.16.2.232:20000 –logpath data/mongos.log –logappend &

172.16.2.231:mongos --port 27017 –configdb 172.16.2.230:20000,172.16.2.231:20000,172.16.2.232:20000 –logpath data/mongos.log –logappend &

172.16.2.232:mongos --port 27017 –configdb 172.16.2.230:20000,172.16.2.231:20000,172.16.2.232:20000 –logpath data/mongos.log –logappend &

 

③副本集的啟動與配置:

分片一:

172.16.2.233:mongod --port 27017 --replSet shard1 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.234:mongod --port 27017 --replSet shard1 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.235:mongod --port 27017 --replSet shard1 --dbpath data/ --logpath log/shard1.log –logappend &

初始化副本集:

172.16.2.233:mongo localhost:27017/admin

>rsconfig={"_id":"shard1","members":[{"_id":0,"host":"172.16.2.233:27017"}]}

>rs.initiate(rs.config)#初始化

>rs.add("172.16.2.234:27017")

>rs.add("172.16.2.235:27017")

>rs.conf()#查看配置狀態(查看分片是否掛掉

 

分片二:

172.16.2.236:mongod --port 27017 --replSet shard2 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.237:mongod --port 27017 --replSet shard2 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.238:mongod --port 27017 --replSet shard2 --dbpath data/ --logpath log/shard1.log –logappend &

初始化副本集:

172.16.2.236:mongo localhost:27017/admin

>rsconfig={"_id":"shard2","members":[{"_id":0,"host":"172.16.2.236:27017"}]}

>rs.initiate(rs.config)#初始化

>rs.add("172.16.2.237:27017")

>rs.add("172.16.2.238:27017")

>rs.conf()#查看配置狀態(查看分片是否掛掉

 

分片三:

172.16.2.239:mongod --port 27017 --replSet shard3 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.240:mongod --port 27017 --replSet shard3 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.241:mongod --port 27017 --replSet shard3 --dbpath data/ --logpath log/shard1.log –logappend &

初始化副本集:

172.16.2.239:mongo localhost:27017/admin

>rsconfig={"_id":"shard3","members":[{"_id":0,"host":"172.16.2.239:27017"}]}

>rs.initiate(rs.config)#初始化

>rs.add("172.16.2.240:27017")

>rs.add("172.16.2.241:27017")

>rs.conf()#查看配置狀態(查看分片是否掛掉

 

④添加分片(副本集)至集群:

172.16.2.230:mongo 172.16.2.230:27017/admin

>db.runCommand({"addshard":"shard1/172.16.2.233:27017,172.16.2.234:27017,172.16.2.235:27017"})

>db.runCommand({"addshard":"shard2/172.16.2.236:27017,172.16.2.237:27017,172.16.2.238:27017"})

>db.runCommand({"addshard":"shard3/172.16.2.239:27017,172.16.2.240:27017,172.16.2.241:27017"})

>db.runCommand({"listshard":1})#查看添加的結果(查看健康狀態

 

⑤激活db和colletion分片功能:

172.16.2.230:mongo 172.16.2.230:27017/admin

>db.runCommand({"enablesharding":"database_1"})

注:激活databas_1分片功能,可讓數據庫夸shard。若不執行此命令,數據只能存放在一個分片上。此后不同的集合會放到不同的shard上,但同一個collection不會切分。

>db.runCommand({"shardcollection":"database_1.collection_1","key":{"_id":1}})#按片鍵值"_id"把集合切分

 

⑥查看分片情況:

>use database_1

>db.collection_1.stats()#查看集合分片狀態

>db.printShardingStatus()#查看數據庫分片

>printShardingStatus(db.getsisterDB("config"),1)#顯示太多chunk無法全部顯示時可用此命令查看

 

至此,mongo集群搭建完畢,并適用于生產環境。但由于此框架有3個接口(路由),很多時候只用了一個接口導致另外兩個被浪費掉了。為了避免資源浪費,可在3個接口前邊做一個負載均衡,如haproxy。

 

付:

添加分片:db.runCommand({addshard:"ip:port",allowLocal:true})

刪除分片:db.runCommand({removeshard:"ip:port"})

數據備份:./bin/mongodump -h 遠程要備份的數據庫ip –port 27017 -d 要備份的數據庫 –c 要備份的集合(可選)-o 備份到某處

數據恢復:./bin/mongorestore -h 遠程要恢復的數據庫ip -p 27017 -d 要恢復的數據庫 --drop 先前備份的位置/數據庫名字


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鲁甸县| 古丈县| 潼关县| 新乡市| 郎溪县| 永定县| 紫金县| 西昌市| 海口市| 泰安市| 壶关县| 梅河口市| 乌鲁木齐县| 九龙城区| 九寨沟县| 德昌县| 诸暨市| 堆龙德庆县| 华宁县| 五莲县| 房产| 即墨市| 定结县| 塔河县| 阳西县| 临安市| 青神县| 竹北市| 诸城市| 滦平县| 肥东县| 恩平市| 当雄县| 汉阴县| 贵定县| 固原市| 韩城市| 平顶山市| 三明市| 高碑店市| 阳原县|