mongodb 的一些日常操作

babyyellow發表於2014-11-26

好久沒有維護mongodb 了,


這兩天一個叢集,有毛病了,處理下,順便把以前整理的一點東西拿出來翻了翻,這裡貼出來了。 



查出叢集資訊:
任意節點上 : rs.conf() 檢視叢集成員
itpricelib:SECONDARY> rs.conf()
db.isMaster() 檢視主從情況
itpricelib:SECONDARY> db.isMaster()


A.踢出叢集單獨維護
1./etc/init.d/mongodb.sh stop 先關掉該節點mongodb
2.vi /etc/init.d/mongodb.sh  修改 MONGODB_ROLE="single"
3./etc/init.d/mongodb.sh start 
此時這個節點 就離群了


B.檢視叢集從庫應用主庫日誌資訊
itpricelib:PRIMARY> db.printSlaveReplicationInfo()
source:   192.168.237.81:5506
         syncedTo: Fri Feb 28 2014 13:58:59 GMT+0800 (CST)
                 = 1secs ago (0hrs)
source:   192.168.237.92:5506
         syncedTo: Fri Feb 28 2014 13:58:59 GMT+0800 (CST)
                 = 1secs ago (0hrs)
source:   192.168.237.232:5506
         syncedTo: Fri Feb 28 2014 13:58:59 GMT+0800 (CST)
                 = 1secs ago (0hrs)
source:   192.168.237.243:5506
         syncedTo: Fri Feb 28 2014 13:58:58 GMT+0800 (CST)
                 = 2secs ago (0hrs)


當某個從庫落後與主庫幾個小時。這時該節點可能追不上主庫了,處理方法:
1.先將該節點離群,離群方法見 A
2.重啟後登陸該節點,刪除oplog
mongo > use local ;  
mongo > db.oplog.rs.drop()
3.關閉該節點,修改 /etc/init.d/mongodb.sh MONGODB_ROLE="sets"
4./etc/init.d/mongodb.sh start


C.節點異常關閉處理
1.節點異常關閉時,這2個檔案不會自動清除,也無法啟動,需手工清除再啟動
  /data/PRG/mongodb/data/mongod.lock
  /data/PRG/mongodb/log/mogodb.pid


D.克隆節點
  1.先將要克隆的節點,關庫,關機
  2.克隆完成後,啟動節點,刪除oplog
  3.在主節點上執行 rs.add("克隆節點的新IP:埠")


E.當某個節點應用日誌落後與主庫較長時間時,可使用封閉埠嘗試該節點能否追上主庫
  封閉埠時應注意,保持各個節點間5506埠必須聯通
  換句話就是封閉這個節點上除了叢集IP以外的其他IP來連該節點


F:切換主節點:
  方法一: 1.在主節點上執行rs.stepDown() ,此時主節點變為slave ,叢集開始選舉新的主節點
          2.檢視主節點在哪個節點上db.isMaster(),這個可能不能馬上看到主節點被哪個節點接管,多刷幾次
          3.讓某個節點接管主節點,在除該節點的其他接管的主節點上執行rs.stepDown(),直到指定節點接管主節點
  方法二: 直接將當前主節點關閉再啟動,該節點就會變成SLAVE ,其他節點重新選舉主節點
   


G:常用管理命令
   db.help() 檢視資料庫級別的相關命令幫助
   db.serverStatus()  檢視伺服器狀態
   db.currentOp() 檢視當前資料庫的所有操作
   db.isMaster() 檢查叢集中的主庫狀態
   db.killOp(opid) 殺死當前資料庫中的某個操作
   db.printSlaveReplicationInfo() 檢視從庫應用主庫資訊
   db.printReplicationInfo() 檢視oplog 資訊
   rs.help() 檢視叢集級別的相關命令幫助
   rs.status() 檢視叢集所有節點的情況
   rs.conf() 檢視local.system.replset 當前的配置資訊
   rs.add(hostportstr) 新增新節點
   rs.stepDown() 讓當前節點由主節點讓出,切換主節點到別的節點上時可這樣操作
 
H: 常用查詢命令: 
   show dbs 檢視當前資料庫(文件)
   use databasename
   show tables  檢視當前庫下面的所有表
   檢視錶記錄
   db.tablename.findOne() 檢視一筆記錄
   db.tablename.find({key:value,key:value})


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-1347451/,如需轉載,請註明出處,否則將追究法律責任。

相關文章