MongoDB基礎2 之 復制集篇
阿新 • • 發佈:2018-07-15
快照 add tcp 文件目錄 進程管理 color 數據 進程 oss 接著上篇接續
在單臺服務器資源充分的情況下,可以使用多實例,以便充分使用服務器資源
由於我在虛擬機中做的所以恢復了快照 開啟服務systemctl start mongod.service netstat -ntap >show dbs //查看數據庫 admin 0.000GB local 0.000GB config 0.000GB >use school //進入school 雖然但是有集合了後會自動創建 > for(var i=1;i<=100;i++)db.users.insert({"id":i,"name":"jack"+i}) //先創建100個玩玩 > show dbs admin 0.000GB config 0.000GB local 0.000GB school 0.000GB //就會自動創建 > show collections //查看集合 users > show tables //也是查看集合 users > db.users.find() //查看集合內容 { "_id" : ObjectId("5b49ab2a0bd68f9074b77bb4"), "id" : 1, "name" : "jack1" } 此處省略·········· db.copyDatabase("school","sheare") //把school 復制成shearer //內容一樣 > show dbs admin 0.000GB config 0.000GB local 0.000GB school 0.000GB sheare 0.000GB 克隆對方的集合 創建多實例 mkdir -p /data/mongodb/mongodb2 //創建數據目錄 cd /data/mongodb/ mkdir logs touch logs/mongodb2.log //創建日誌文件 cd logs/ chmod 777 *.log //賦予權限 和前面一樣
克隆數據
進入到 mongo --port 27018 > show dbs //此時完全是獨立的數據 admin 0.000GB config 0.000GB local 0.000GB 創建多實例----------- vim mongod2.conf systemLog: 省略··· path: /data/mongodb/logs/mongodb2.log //手動添加日誌文件路徑 省略···· storage: dbPath: /data/mongodb/mongodb2 //定義數據文件目錄 net: port: 27018 //修改端口號 mongod -f /etc/mongod2.conf //開啟多實例2 netstat -ntap | grep 27018 tcp 0 0 0.0.0.0:27018 0.0.0.0:* LISTEN 9870/mongod > db.runCommand({"cloneCollection":"school.user","from":"192.168.100.20.27017"}) //復制 school(數據庫中的)uesr(集合)的數據。來自192.168.100.20 27017 裏面的數據 --------------進程管理----------- > db.currentOp() //當前進程 省略····· "currentOpTime" : "2018-07-14T23:01:50.596+0800", "opid" : 2206, //進程編號 > db.killOp(2206) //結束進程 但是不會退出數據庫釋放到當前進程
復制集
mkdir -p /data/mongodb/mongodb{2,3,4} //同時創建多個文件數據存放目錄 mkdir -p /data/mongodb/logs //為其創建數據日誌文件 touch /data/mongodb/logs/mongodb{2,3,4}.log //同時創建多個數據日誌文件 chmod 777 /data/mongodb/logs/*.log //開放權限 vim /etc/mongod.conf //修改配置文件開啟用戶 replication: //開啟用戶 replSetName: abc mongod -f /etc/mongod.conf --shutdown //關閉服務 //正對於莫一個實例 在有多實例的情況下 mongod -f /etc/mongod.conf //開啟服務 cp -p /etc/mongod.conf /etc/mongod2.conf //創建多端口實現復制集 mongod -f /etc/mongod4.conf //挨個開啟實例 netstat -nata //查看有沒有開啟 若有錯則檢查配置文件日誌存放路徑以及數據出存放路徑 mongo --port 27018 //挨個測試一下是否能近入 mongo //進入默認 27017 定義復制集
復制集配置
cfg={"_id":"abc","members":[{"_id":0,"host":"192.168.10.5:27017"},{"_id":1,"host":"192.168.10.5:27018"},{"_id":2,"host":"192.168.10.5:27019"}]} //定義復制集 節點數據
#初始化配置時保證從節點沒有數據
> rs.initiate(cfg)
#添加節點
abc:PRIMARY> rs.add("192.168.10.5:27020")
#刪除節點
abc:PRIMARY> rs.remove("192.168.10.5:27019")
------------------故障轉移切換-----------------------
ps aux | grep mongod //查看當前進程 就有4個
#手動切換
abc:PRIMARY> rs.freeze(30) //暫停30s不參與選舉
abc:PRIMARY> rs.stepDown(60,30) //交出主節點位置,維持從節點狀態不少於60秒,等待30秒使主節點和從節點日誌同步
MongoDB基礎2 之 復制集篇