【Mongo】單節點升級為複製集再升級為分片加複製集
1.單節點配置如下
複製集升級為分片加複製集
新增分片報錯的解決辦法
-
[root@ip-10-1-2-32 etc]# more shard1.conf
-
logpath=/usr/local/mongodb/logs/mongo_shard1.log
-
logappend=true # need logrotae scripts
-
fork=true
-
journal=true
-
port=27019
-
dbpath=/usr/local/mongodb/shard1
-
pidfilepath=/usr/local/mongodb/logs/mongo_shard1.pid
-
bind_ip=10.1.2.32
- wiredTigerCacheSizeGB=4
單節點升級為複製集
-
1.關閉mongo
-
2.配置檔案加上覆制通道replSet=shard1
-
3.重啟
-
4.其它節點也以replSet=shard1的方式啟動
- 5.搭建複製叢集
- 參考:
複製集升級為分片加複製集
-
1 重啟second節點以--shardsvr模式啟動,在配置檔案加上shardsvr=true就好了
-
2.主節點降級
-
rs.stepDown()
-
3.重啟主節點以shardsvr模式
-
4.搭建config的複製集模式
-
5.所有節點啟動mongos
-
-
-
6.主節點mongos新增shard1的分片叢集
-
db.runCommand({ addshard: 'shard1/10.1.2.68:27019,10.1.2.32:27019,10.1.2.175:27019'})
-
-
-
7.新的分片搭建複製集
-
-
8.主節點mongos加上新的分片叢集
-
db.runCommand({ addshard: 'newshard/10.1.2.32:27018,10.1.2.68:27018,10.1.2.175:27018'})
-
-
-
9.開啟目標db可分片
-
mongos> sh.enableSharding( "test" )
-
-
-
10.將目標文件進行分片
-
mongos> db.test_collection.createIndex( { number : 1 } )
-
mongos> sh.shardCollection( "test.test_collection", { "number" : 1 } )
主體流程如上,具體可參考官方文件:
上面的78步驟可以在9.10步驟之後的,先將資料shard到一個節點,然後新加節點,然後在平衡資料就好了
-
1 重啟second節點以--shardsvr模式啟動,在配置檔案加上shardsvr=true就好了
-
2.主節點降級
-
rs.stepDown()
-
3.重啟主節點以shardsvr模式
-
4.搭建config的複製集模式
-
5.所有節點啟動mongos
-
-
-
6.主節點mongos新增shard1的分片叢集
-
db.runCommand({ addshard: 'shard1/10.1.2.68:27019,10.1.2.32:27019,10.1.2.175:27019'})
-
-
-
7.新的分片搭建複製集
-
-
8.主節點mongos加上新的分片叢集
-
db.runCommand({ addshard: 'newshard/10.1.2.32:27018,10.1.2.68:27018,10.1.2.175:27018'})
-
-
-
9.開啟目標db可分片
-
mongos> sh.enableSharding( "test" )
-
-
-
10.將目標文件進行分片
-
mongos> db.test_collection.createIndex( { number : 1 } )
- mongos> sh.shardCollection( "test.test_collection", { "number" : 1 } )
主體流程如上,具體可參考官方文件:
上面的78步驟可以在9.10步驟之後的,先將資料shard到一個節點,然後新加節點,然後在平衡資料就好了
新增分片報錯的解決辦法
-
#重新新增剛才刪除的分片,將遇到以下錯誤,提示test資料庫已經存在
-
db.runCommand({addShard:"172.16.127.130:27017"})
-
{
-
"code" : 96,
-
"ok" : 0,
-
"errmsg" : "can't add shard '172.16.127.130:27017'
-
"because a local database 'test' exists in another shard0001"
-
}
-
#這時,就需要透過MongoDB shell連線到shard01例項,刪除test資料庫,然後重新新增
-
use test
-
db.dropDatabase()
-
#回到mongos節點
-
use admin
-
mongos> sh.addShard('172.16.127.130:27017')
-
{
-
"code" : 11000,
-
"ok" : 0,
-
"errmsg" : "E11000 duplicate key error collection:
-
"admin.system.version index: _id_ dup key: { : \"shardIdentity\" }"
-
}
-
#這時候再連線到shard01節點,刪除admin.system.version集合中記錄
-
db.system.version.remove({})
-
db.system.version.remove({"_id":"shardIdentity"})
-
WriteResult({
-
"nRemoved" : 0,
-
"writeError" : {
-
"code" : 40070,
-
"errmsg" : "cannot delete shardIdentity document while in --shardsvr mode"
-
}
-
})
-
#刪除時報錯,意思是說不能在分片模式下刪除這張表中的這條記錄,然後我們關閉shard01,然後以非shardsvr的方式啟動,刪除這條記錄後,再以shardsvr方式啟動
-
db.shutdownServer()
-
mongodb-3.4.4/bin/mongod -f mongodb-3.4.4/conf/mongod.conf
-
use admin
-
db.system.version.remove({})
-
db.shutdownServer()
-
mongodb-3.4.4/bin/mongod -f mongodb-3.4.4/conf/mongod.conf --shardsvr
-
#最後新增之前被刪除的分片shard01,大功告成
-
db.runCommand({addShard:"172.16.127.130:27017"})
- { "shardAdded" : "shard0002", "ok" : 1 }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2154616/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Mongo】mongo分片加複製集的備份恢復Go
- 【Mongodb】分片加複製集MongoDB
- 【Mongodb】往分片複製集新增複製成員MongoDB
- 升級kubeadm 叢集(只有master單節點)AST
- MySQL 5.5複製升級到5.7的一點簡單嘗試MySql
- 複利計算再升級
- 【Mongodb】分片複製集環境新增新的分片MongoDB
- 02 . MongoDB複製集,分片集,備份與恢復MongoDB
- 【Mongodb】mongo複製集只剩一個secondery節點的解決辦法MongoDB
- mongodb複製集MongoDB
- MongoDB 搭建複製集MongoDB
- MongoDB複製集原理MongoDB
- mongodb複製集搭建MongoDB
- mongodb複製集(replica sets)+分片(sharding)環境搭建MongoDB
- Mongodb主從複製/ 副本集/分片叢集介紹MongoDB
- mongodb複製+分片MongoDB
- 【MongoDB】windows平臺搭建Mongo資料庫複製集(相似叢集)(一)MongoDBWindows資料庫
- 4.14複利計算再升級總結
- MongoDB學習4:MongoDB複製集機制和原理,搭建複製集MongoDB
- 【Mongodb】 可複製集搭建MongoDB
- Elasticsearch叢集升級指引Elasticsearch
- 【Mysql】傳統複製線上升級為GTID模式MySql模式
- 使用檔案複製的方式進行資料庫版本升級資料庫
- DM7資料複製之模式級複製模式
- MongoDB搭建Replica Set複製集MongoDB
- MongoDB學習之複製集MongoDB
- MongoDB 複製集模式Replica SetsMongoDB模式
- Replica sets複製集的搭建
- oracle stream之schema級複製Oracle
- DM7資料複製之資料庫級複製資料庫
- poi操作excel,複製sheet,複製行,複製單元格,複製styleExcel
- MongoDB複製集資料同步流程MongoDB
- mongoDB研究筆記:複製集概述MongoDB筆記
- 單節點oracle升級10.2.0.1.0-10.2.0.4.0Oracle
- 為Oracle配置DDL複製Oracle
- Mysql 5.6庫級表級複製的搭建MySql
- k8s 叢集升級K8S
- 智慧金融再升級,提供資料採集標註服務