1. 程式人生 > >MongoDB上手之部署篇

MongoDB上手之部署篇

主從複製

主從複製是一個簡單的資料庫同步備份的叢集技術

  • 在資料庫叢集中要明確知道誰是主伺服器,主伺服器只有一臺
  • 從伺服器要知道自己的資料來源也就是知道自己的主伺服器是誰
  • –master用來確定主伺服器,–slave和–source 來控制從伺服器

masterslave

主伺服器

master.conf

dbpath=E:\ms\master
port=1000
master=true

master.bat

mongod --config master.conf

從伺服器

slave.conf

dbpath=E:\p\slave
port=1001
slave=true
source=127.0.0.1:1000

slave.bat

rs.slaveOk // 配置了這個以後才可以查詢從伺服器, 也可以再shell命令列呼叫該方法

mongod --config slave.conf
rs.slaveOk(); 

主從複製的其它設定項

  • -only 從節點-> 指定複製某個資料庫預設是複製全部資料庫
  • -slavedelay 從節點-> 設定主資料庫同步資料的延遲(單位是秒)
  • -fastsync 從節點-> 以主資料庫的節點快照為節點啟動從資料庫
  • -autoresync 從節點->如果不同步則重新同步資料庫
  • -oplogSize 主節點->設定oplog的大小(主節點操作記錄儲存到local的oplog中)

利用shell動態新增和刪除主節點

登入從伺服器

use local;
show collections;
db.sources.find();
//{  "host" : "127.0.0.1:8000", "source" : "main", "syncedTo" : Timestamp(1524728329, 1) }
db.sources.insert({host:'127.0.0.1:8000'});//掛載主節點
db.sources.remove({host:'127.0.0.1:8000'});//刪除已經掛載的主節點

副本集

  • MongoDB複製是將資料同步在多個伺服器的過程。
  • 複製提供了資料的冗餘備份,並在多個伺服器上儲存資料副本,提高了資料的可用性, 並可以保證資料的安全性。
  • 複製還允許您從硬體故障和服務中斷中恢復資料。

MongoDB複製原理

  • mongodb的複製至少需要兩個節點。其中一個是主節點,負責處理客戶端請求,其餘的都是從節點,負責複製主節點上的資料。
  • mongodb各個節點常見的搭配方式為:一主一從、一主多從。
  • 主節點記錄在其上的所有操作oplog,從節點定期輪詢主節點獲取這些操作,然後對自己的資料副本執行這些操作,從而保證從節點的資料與主節點一致。
  • replication

流程

  1. 一臺活躍伺服器和二個備份伺服器
  2. 當活躍伺服器出現故障,這時叢集根據權重演算法推選出出活躍伺服器
  3. 當原來的主伺服器恢復後又會變成從伺服器

配置副本集

A伺服器

dbpath=E:\repl\repl1
port=2001
replSet=group

B伺服器

dbpath=E:\repl\repl2
port=2002
replSet=group

C伺服器

dbpath=E:\repl\repl3
port=2003
replSet=group

初始化副本集

隨便進一臺主機,然後切換隻admin資料庫

  • rs.initiate() 啟動一個新的副本集
  • rs.conf() 檢視副本集的配置
  • rs.status() 命令
use admin;
var conf=
{
    "_id" : "group",
    "members" : [
        { "_id" : 0,  "host" : "127.0.0.1:2001"  },
        { "_id" : 1,  "host" : "127.0.0.1:2002"  },
        { "_id" : 2,  "host" : "127.0.0.1:2003"  }
    ]
}
rs.initiate(conf);
rs.status();

高階引數

  • standard 常規節點 參與投票有可能成為活躍節點
  • passive 副本節點 參與投票,但不能成為活躍節點
  • arbiter 仲裁節點 只參與投票,不復制節點,也不能成為活躍節點
  • priority 0到1000之間,0代表是副本節點,1到1000是常規節點
  • arbiterOnly:true 仲裁節點

讀寫分離操作

一般情況下作為副本節點是不能進行資料庫操作的,但是在讀取密集的系統中讀寫分離是必要的

 rs.slaveOk();

Oplog

它被儲存在本地資料庫local中,會記錄每一個操作。 如果希望在故障恢復的時候儘可能更多,可以把這個size設定的大一點

--oplogSize 1024
use local;
 db.oplog.rs.find().limit(2);

分片

待續…

相關推薦

MongoDB上手部署

主從複製 主從複製是一個簡單的資料庫同步備份的叢集技術 在資料庫叢集中要明確知道誰是主伺服器,主伺服器只有一臺 從伺服器要知道自己的資料來源也就是知道自己的主伺服器是誰 –master用來確定主伺服器,–slave和–source 來控制從伺服器 主伺

MongoDB上手操作

什麼是MongoDB MongoDB是一個基於分散式檔案儲存的開源資料庫系統 MongoDB 將資料儲存為一個文件,資料結構由鍵值(key=>value)對組成。MongoDB 文件類似於 JSON 物件。欄位值可以包含其他文件,陣列及文件陣列。 Mon

MongoDB上手配置

通過配置項啟動資料庫 引數 含義 –dbpath 指定資料庫檔案的目錄 –port 埠 預設是27017 28017 –fork 以後臺守護的方式進行啟動 –logpath 指定日誌檔案輸出路徑 –config 指定一個配置檔案

MongoDB上手mongoose

MongoDB簡介 Mongodb是一個開源的NoSQL資料庫,相比MySQL那樣的關係型資料庫,它更顯得 輕巧、靈活,非常適合在資料規模很大、事和性不強的場合下使用。 同時它也是一個物件資料庫,沒有表和行的概念,也沒有固定的模式和結構,所有的資料都是以文件的形式存儲存

Kubernetes管理Docker叢集部署

什麼是Kubernetes? Kubernetes是Google開源的容器叢集管理系統,實現基於Docker構建容器,利用Kubernetes能很方面管理多臺Docker主機中的容器。 主要功能如下: 1)將多臺Docker主機抽象為一個資源,以叢集方式管理容器,

前端工程化部署

前言     部署簡單來說就是將構建產出的程式碼部署到伺服器上,在開發中我們通常的操作就是使用ftp將程式碼上傳到伺服器上固定目錄下即可,所以這項工作在很多開發看起來是簡單而又無聊的工作,這種部署方式從本質上來說沒毛病,但是隻適用於由少數人維護的規模較小的專案

Docker快速上手部署SpringBoot專案

Docker是基於Go語言實現的雲開源專案。 Docker的主要目標是“Build,Ship and Run Any App,Anywhere”,也就是通過對應用元件的封裝、分發、部署、執行等生命週期的管理,使使用者的APP(可以是一個WEB應用或資料庫應用等等)及其執行環境能夠做到“一次封裝,到處執行”。

mongodb 學習 》安裝

過濾 div 路徑 日誌信息 創建 ssl mon 圖片 image 一、準備工作 源文件 mongodb-win32-x86_64-2008plus-ssl-3.4.10-signed.msi 安裝目錄 D:\mongodb 1. 創建幾個文件夾具體如下:數據庫路徑(da

大數據高可用Mongodb集群部署

大數據 在這裏相信有許多想要學習大數據的同學,大家可以關註小編頭條號和轉發,關註私信【學習> 】即可免費領取一整套系統的大數據學習教程 另外,大數據初學者有什麽不懂的可以關註私信【學習】和轉發——我剛整理了一份大數據 2018最新的0基礎入門和進階教程,無私分享 大數據之高可用Mongodb集群

MongoDB入門系列科普

目錄 背景 對比 MongoDB的資料儲存格式 背景 最近公司擴充套件了很多國外客戶,那麼一個很嚴重的問題就是翻譯,對於國外客戶來說,肯定看不懂中文,那就要專案中提供切換各自國家語言的功能。 由於每個專案都是各自寫自己的翻譯,所以這塊比較混亂。對於公司來說,

部署Django部落格全記錄Nginx(一)

Nginx的優點 注:具體原理沒搞清,先記著 Nginx更安全;Nginx能更好地處理靜態資源(通過一些http request header)。 Nginx也可以快取一些動態內容;Nginx可以更好地配合CDN。 Nginx可以進行多臺機器的負載均

部署Django部落格全記錄Gunicorn(二)

什麼是Gunicorn Gunicorn是一個被廣泛使用的高效能的Python WSGI UNIX HTTP伺服器,移植自Ruby的獨角獸(Unicorn )專案,使用pre-fork worker模式,具有使用非常簡單,輕量級的資源消耗,以及高效能等特點。 為什麼使用

MongoDB實戰系列四:mongodb副本集部署

簡述:副本集合(Replica Sets),是一個基於主/從複製機制的複製功能,但增加了自動故障轉移和恢復特性。一個叢集最多可以支援7個伺服器,並且任意節點都可以是主節點。所有的寫操作都被分發到主節點,而讀操作可以在任何節點上進行。 環境:CentOS 5.5 x64

DC/OS專題安裝部署

DC/OS的三種安裝方式   GUI方式 CLI命令列方式 高階方式   本文中使用CLI命令列方式進行安裝,同時也會附帶介紹一下另外兩種。 事前準備 :硬體 DC/OS有如下4種方式的安裝:  

mongodb安卓windows

window平臺安裝 MongoDB MongoDB 下載 MongoDB提供了可用於32位和64位系統的預編譯二進位制包,你可以從MongoDB官網下載安裝,MongoDB預編譯二進位制包下載地址:http://www.mongodb.org/downloads

airflow分散式部署踩坑記錄安裝

前言 airflow是一款基於python的開源任務流排程系統,但是關於airflow的安裝教程比較匱乏。本人在親自安裝的過程中遇到了很多奇葩的問題,期間也參考了網上的各種資料,在此做下記錄,以備不時之需。 系統環境 作業系統 Centos6.5

快速上手Ubuntu安裝——安裝win7,Ubuntu16.04雙系統

Linux可以說是開發者的系統,對於開發者來說,Linux發行版不僅為我們提供了無數強大的開發工具,還能幫助我們從原始碼上學習作業系統是工作的。而且經常在命令列上工作的我們還能在別人面前耍下酷。Ubuntu是最受歡迎的Linux發行版之一,它的易用性不亞於win

MongoDB 上手開發實踐(入門上手開發這一就夠了)

前言   MongoDB是一個介於 關係資料庫 和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。它支援的資料結構非常鬆散,是類似 json 的 bson 格式,因此可以儲存比較複雜的資料型別。Mongo最大的特點是它支援的查詢語言非常強大,其語法有點類似於面向物件的查詢語言,幾乎可以

Qt入門基礎 ( 二 ) :Qt項目建立、編譯、運行和發布過程解析

qt 5 對話 讓我 進度 qmake ctr deploy 設定 設置 轉載請註明出處:CN_Simo。 題解:   本篇內容主講Qt應用從創建到發布的整個過程,旨在幫助讀者能夠快速走進Qt的世界。   本來計劃是講解Qt源碼靜態編譯,如此的話讀者可能並不能清楚地知

Qt入門基礎 ( 一 ) :Qt4及Qt5的下載與安裝

mingw ins 第3版 點擊 調試 但我 關系 構建 eas 轉載請註明出處:CN_Simo. 導語: Qt是一個跨平臺的C++圖形界面應用程序框架。它提供給開發者建立圖形用戶界面所需的功能,廣泛用於開發GUI程序,也可用於開發非GUI程序。Qt很容易擴展,並