mongodb-主從複製

1 主從複製: 一個概念,在sqlserver或者說是mysql也有

2 主從複製解決了哪些問題???

  1. 讀寫壓力:之前是一個mongodb去承載海量的讀和寫,這樣的話終有瓶頸的。使用一主多從, 從服務器有效的緩解了讀的壓力,咱們使用的web服務器,大多都是讀大於寫,
  2. 數據的熱備份
    咱們作備份通常有兩種策略
    【熱備份】 主從複製,那麼從就是一套活生生的數據。若是主掛掉了,從的數據仍是比較完善的。
    【冷備份】 定時的copy從服務器的db
    爲何要作冷備份??? 懼怕用戶的誤操做。好比說用戶執行了一個delete,那麼主從都會沒有數據,這個就至關於光盤或者磁帶的概念了
    這個冷備份,mongodb的主從複製實現了嗎?

二:搭建主從備份的步驟

  1. 開啓master服務器:
[administrator@localhost ~]$ cluster/master/mongod --dbpath=cluster/master/db --master -port 27017
   --master  標記本身是master服務器。
   --port    指定本身的端口,默認是27017
  1. 開啓slave服務器:
[administrator@localhost ~]$ cluster/slave/mongod --dbpath=cluster/slave/db --slave --source=127.0.0.1:27017 --port 27018
   --slave:   標記本身是slave服務器。。
   --source:  標記我須要同步的服務器是誰??? 指定的ip。
   --port:    開啓本身的端口,千萬不能和master重複。
  1. 觀察一下日誌:

3.1 master服務器吐出來的日誌:mysql

Sun Dec 20 08:05:06.210 [slaveTracking] build index local.slaves { _id: 1 }
      也就是說在local這個數據庫下面生成了一個slave表【集合】。

3.2 slave數據庫吐出來的日誌:web

Sun Dec 20 08:05:05.196 [replslave] build index local.sources { _id: 1 }
          Sun Dec 20 08:05:05.201 [replslave] build index local.me { _id: 1 }

說明在local數據下有兩個表:【sources,me】sql

總得來講,master經過slaves表記錄這從屬服務器的信息。
slave 經過 sources表記錄主服務器的信息。mongodb

  1. 經常使用的選項
--only
    --slavedelay [單位是s]

發現問題

1.從服務器沒法使用show dbs命令
解決這個問題須要執行一下命令數據庫

db.getMongo().setSlaveOk();

主從複製的幾個問題,是沒法解決的:
主節點掛了可否自動切換鏈接?目前須要手工切換。
主節點的寫壓力過大如何解決?
從節點每一個上面的數據都是對數據庫全量拷貝,從節點壓力會不會過大?
就算對從節點路由實施路由訪問策略可否作到自動擴展?服務器

相關文章
相關標籤/搜索