MongoDB上手之部署篇
主從複製
主從複製是一個簡單的資料庫同步備份的叢集技術
- 在資料庫叢集中要明確知道誰是主伺服器,主伺服器只有一臺
- 從伺服器要知道自己的資料來源也就是知道自己的主伺服器是誰
- –master用來確定主伺服器,–slave和–source 來控制從伺服器
主伺服器
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,從節點定期輪詢主節點獲取這些操作,然後對自己的資料副本執行這些操作,從而保證從節點的資料與主節點一致。
流程
- 一臺活躍伺服器和二個備份伺服器
- 當活躍伺服器出現故障,這時叢集根據權重演算法推選出出活躍伺服器
- 當原來的主伺服器恢復後又會變成從伺服器
配置副本集
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很容易擴展,並