mongodb叢集搭建(雙機)
搭建資料庫叢集從未如此簡單過, 想起做rac的時候, raid, lv, vg, 雙機互信, 建庫等一大堆弄下來, 在完全不出錯的情況下, 都要接近6個小時.
環境準備.
a). 作業系統, centos6.5 x86.64.
b). mongodb: mongodb-linux-x86_64-2.6.5.gz
解壓好mongodb之後就可以直接開始建叢集了.
1. 先建立6個資料夾.
/usr/local/mongodb-linux-x86_64-2.6.5/gmlogx/dat0
/usr/local/mongodb-linux-x86_64-2.6.5/gmlogx/dat1
/usr/local/mongodb-linux-x86_64-2.6.5/gmlogx
/usr/local/mongodb-linux-x86_64-2.6.5/gmlogx/log0
/usr/local/mongodb-linux-x86_64-2.6.5/gmlogx/log1
/usr/local/mongodb-linux-x86_64-2.6.5/gmlogx/log2
2. 因為只有一臺機器, 所以使用了三個不同的埠, 開三個console, 依次執行下面的三條命令.
mongod --replSet gmlogx --dbpath=/usr/local/mongodb-2.6.5/gmlogx/dat0 --port 10000 --oplogSize=512 \--logpath=/usr/local/mongodb-linux-x86_64-2.6.5/gmlogx/log0/log.log --logappend
mongod --replSet gmlogx --dbpath=/usr/local/mongodb-2.6.5/gmlogx/dat1 --port 10001 --oplogSize=512 \
--logpath=/usr/local/mongodb-linux-x86_64-2.6.5/gmlogx/log1/log.log --logappend
mongod --replSet gmlogx --dbpath=/usr/local/mongodb-2.6.5/gmlogx/dat2 --port 10002 --oplogSize=512 \
--logpath=/usr/local/mongodb-linux-x86_64-2.6.5/gmlogx/log2/log.log --logappend
3. 部分引數解釋:
--replSet gmlogx, 指定了叢集的名稱gmlogx.
--port 10000, 指的是資料庫節點的服務埠為10000.
--oplogSize=512, 指的是給mongdb的操作日誌緩衝區大小, 單位是M, 即512M. 這裡有個小坑. 如果不指定oplogSize的話, 兩個資料庫節點
就佔用了90G磁碟, 如下圖.
4. 我們的機器ip是192.168.1.117, 連線上其中一個接點, 依次鍵入下面的命令.
上面的arbiterOnly: true, 表示這是一個仲裁節點, 它僅用於選舉和協調另外兩個資料庫節點的主備關係. 仲裁節點本身不承載業務資料. 事實上[[email protected] gmlogx]# mongo 192.168.1.117:10000 MongoDB shell version: 2.6.5 connecting to: 192.168.1.117:10000/test > var cfg = {_id: "gmlogx", members: []} > cfg.members.push({_id: 0, host: "192.168.1.117:10000"}); 1 > cfg.members.push({_id: 1, host: "192.168.1.117:10001"}); 2 > cfg.members.push({_id: 2, host: "192.168.1.117:10002", arbiterOnly: true}); 3 > rs.initiate(cfg); { "info" : "Config now saved locally. Should come online in about a minute.", "ok" : 1 } >
這種仲裁者的叢集環境不被<<mongodb權威指南>>推薦, 原話是: 如果可能, 儘量在副本集中使用奇數個數據成員, 而不要使用仲裁者.
這裡可能有個地方需要注意, 在敲上面的命令之前, 埠可能還沒有ready, 請先確認兩個資料庫節點的埠已經LISTEN
5. 退出mongo-shell, 重新進入一次就可以發現, 192.168.1.117:10000已經被選舉成主節點.
[[email protected] gmlogx]# mongo 192.168.1.117:10000
MongoDB shell version: 2.6.5
connecting to: 192.168.1.117:10000/test
gmlogx:PRIMARY> rs.status()
{
"set" : "gmlogx",
"date" : ISODate("2014-11-14T04:24:45Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "192.168.1.117:10000",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1101,
"optime" : Timestamp(1415938107, 1),
"optimeDate" : ISODate("2014-11-14T04:08:27Z"),
"electionTime" : Timestamp(1415938116, 1),
"electionDate" : ISODate("2014-11-14T04:08:36Z"),
"self" : true
},
{
"_id" : 1,
"name" : "192.168.1.117:10001",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 977,
"optime" : Timestamp(1415938107, 1),
"optimeDate" : ISODate("2014-11-14T04:08:27Z"),
"lastHeartbeat" : ISODate("2014-11-14T04:24:44Z"),
"lastHeartbeatRecv" : ISODate("2014-11-14T04:24:45Z"),
"pingMs" : 0,
"syncingTo" : "192.168.1.117:10000"
},
{
"_id" : 2,
"name" : "192.168.1.117:10002",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 977,
"lastHeartbeat" : ISODate("2014-11-14T04:24:44Z"),
"lastHeartbeatRecv" : ISODate("2014-11-14T04:24:45Z"),
"pingMs" : 0
}
],
"ok" : 1
}
gmlogx:PRIMARY>
6. 建立一個database, 並嘗試插入一條記錄.
gmlogx:PRIMARY> use gmlogx
switched to db gmlogx
gmlogx:PRIMARY> db.logx.insert({usr: 'usr', age: 32})
WriteResult({ "nInserted" : 1 })
gmlogx:PRIMARY>
7. 通過java-driver進行查詢操作, 如果你想做到讀寫分離的效果, 可以直接訪問備節點(192.168.1.117:10001).
public static void main(String[] args) throws UnknownHostException
{
MongoOptions mo = new MongoOptions();
List<ServerAddress> addr = Arrays.asList(new ServerAddress("192.168.1.117", 10000), new ServerAddress("192.168.1.117", 10001));
mo.readPreference = ReadPreference.secondary(); /* 可從副本中讀取. */
Mongo mg = new Mongo(addr, mo);
DBCollection coll = mg.getDB("gmlogx").getCollection("logx");
DBCursor cur = coll.find();
while (cur.hasNext())
System.out.println(cur.next());
}
相關推薦
mongodb叢集搭建(雙機)
搭建資料庫叢集從未如此簡單過, 想起做rac的時候, raid, lv, vg, 雙機互信, 建庫等一大堆弄下來, 在完全不出錯的情況下, 都要接近6個小時. 環境準備. a). 作業系統, centos6.5 x86.64. b). mongodb: mongodb-
搭建雙機OPENVPN遇到的坑
需求描述:openvpn 掛了另一個服務能頂上,並且要快。 1.第一個坑:服務搭建好了,宕機切換,等待兩分鐘,才連上,這完全不符合我的需求 2.第二個坑:猜想是不是用的VPN自帶服務的問題,試試通過lvs 搭建看看,然鵝 沒有用,時間又過去了幾個小時 3.第三個坑:既然加了lvs也沒用,
MongoDB叢集搭建與java程式碼操作MongoDB示例
MongoDB叢集搭建與java程式碼操作MongoDB示例 MongoDB叢集搭建過程 java使用MongoDB叢集Demo MongoDB叢集搭建過程 1. MongoDB Replica set叢集搭建準備(主從仲裁) 介
mongodb叢集搭建(分片+副本)
原文地址:https://www.cnblogs.com/ityouknow/p/7344005.html 相關概念 先來看一張圖: 從圖中可以看到有四個元件:mongos、config server、shard、replica set。 mongos,資料庫叢集請求的入口,所有的
linux下Mongodb叢集搭建:分片+副本集
三臺伺服器 192.168.1.40/41/42 安裝包 mongodb-linux-x86_64-amazon2-4.0.1.tgz 服務規劃 伺服器40 伺服器41 伺服器42 mongos mongos mongos config server config server
使用win8 r2的故障轉移叢集實現雙機熱備(自己實現)
(網上的教程太不全,浪費了我大量時間,自己總結!圖就不用了) 準備工作: 軟體準備:本地裝虛擬機器,虛擬機器裝三臺win8 server r2系統,都使用橋接上網(公司通過代理上網)配置兩塊網絡卡,記憶體分配2G,硬碟分配40G。 理論準備:(1)故障轉移群集要求 使用者為
Mongodb叢集搭建的三種方式
Mongodb是時下流行的NoSql資料庫,它的儲存方式是文件式儲存,並不是Key-Value形式。關於Mongodb的特點,這裡就不多介紹了,大家可以去看看官方說明:http://docs.mongodb.org/manual/ 今天主要來說
懵懵懂懂搭建雙機RAC環境(本能搭建)
起源:無知者無畏的IT小新兵接手了一個整合資料庫的活,作為甲方人員,具體的技術工作自然有相應的人員去完成,IT小新兵需要做的只是梳理各方需求,同時將整合工作和部門內部的流程結合起來。 手頭資源:兩臺刀片BL685C,兩個未滿的刀框C7000,以及一批可以調動和詢問的工程師。
33.Windbg-VMware+windbg搭建雙機除錯(增加virtualKD)
虛擬機器環境 1.xp 虛擬機器用的是XP系統,找到XP系統開啟系統盤(比如C盤),找到Boot.ini,去掉這個檔案的只讀屬性,用記事本開啟Boot.ini [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)p
mongodb叢集搭建
建立yum源 vim /etc/yum.repos.d/mongodb-org-3.2.repo [mongodb-org-3.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$
LVS+KeepAlived搭建雙機熱備負載均衡
從下載內容包中找到ipvsadm-1.24.tar.gz,執行如下命令(執行命令出錯的說明編譯環境存在問題,請更新下載GCC) #tar -zxvf keepalived-1.1.15.tar.gz #cd keepalived-1.1.15 #./configure --prefix=/usr/local
.NET Core+MongoDB叢集搭建與實戰
[TOC] ## 安裝 MongoDB 安裝 MongoDB 網上有很多教程,MongoDB 官方文件:[https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/](https://docs.mongodb.com/manual
HDFS叢集搭建,高可用雙機熱備模式(HA)自動切換,hdfs+zookeeper+journalnode,步驟分步原理詳解(適合初學者)
有寫的不對的地方,歡迎各位同學評論指正,博主會進行修改。 前言 作者也是初學hadoop,瞭解各元件的用途,並且專案中有些東西用不到,所以作者用最簡化的元件搭建,避免多餘資源的浪費,作者最初構想是zookeeper+hdfs搭建一個分散式檔案系統,不用yarn和ma
winDbg + VMware + window 雙機聯調環境搭建
真機調試 net 服務 x64 。。 .exe 鏈接 成了 內核開發 這裏簡單的介紹一下內核開發雙機聯調的搭建環境,盡管網上有很多類似的文章,但看了很多總是不太舒服,覺得不太明白,所以自己實踐一下總結一篇。下面就拿我的環境簡單介紹,希望別人可以看懂。準備工具:裝虛擬機VMw
Haproxy+Keepalived(雙機熱備)搭建高可用web架構
ise mark 高可用web keepalive email protocol rip 火墻 詳情 1、目的搭建web高可用架構,用haproxy作為前段負載均衡分攤後端web服務器壓力,Keepalived保證haproxy的存活(雙機熱備:一臺haproxy掛了,自動
RocketMQ學習筆記(4)----RocketMQ搭建雙Master叢集
前面已經學習了RockeMQ的四種叢集方式,接下來就來搭建一個雙Master(2m)的叢集環境。 1. 雙Master伺服器環境 序號 ip 使用者名稱 密碼 角色 模式 (1) 47.105.145.123 root n
CentOS 6.10安裝配置WebLogic 11g雙機叢集
一、演示環境: IP OS JDK WebLogic 記憶體 伺服器角色 埠 192.168.1.220 CentOS 6.10 x86_64 jdk-7u80-linux-x6
RocketMQ學習筆記(16)----RocketMQ搭建雙主雙從(非同步複製)叢集
1. 修改RocketMQ預設啟動埠 由於只有兩臺機器,部署雙主雙從需要四個節點,所以只能修改rocketmq的預設啟動埠,從官網下載rocketmq的source檔案,解壓後使用idea開啟,全域性搜尋9876,將所有使用9876埠的地方改為9877。 在終端開啟,使用:mvn -Preleas
搬運 搭建高可用mongodb叢集(二)—— 副本集
在上一篇文章《搭建高可用MongoDB叢集(一)——配置MongoDB》 提到了幾個問題還沒有解決。 主節點掛了能否自動切換連線?目前需要手工切換。 主節點的讀寫壓力過大如何解決? 從節點每個上面的資料都是對資料庫全量拷貝,從節點壓力會不會過大? 資料壓力大到機
CentOS 7.5安裝配置WebLogic 12c雙機叢集
一、演示環境: IP OS JDK WebLogic 記憶體 伺服器角色 埠 192.168.1.144 CentOS 7.5 x86_64 jdk-8u192-linux-x6