真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Mongodb主從模式篇-創(chuàng)新互聯(lián)

主從模式架構(gòu)圖:

創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報價,主機托管價格性價比高,為金融證券行業(yè)遂寧服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。

Mongodb主從模式篇

主從配置安裝:

10.10.20.160(master)-->10.10.20.161(slave)

Master

tar zxvf mongodb-linux-x86_64-2.2.2.tgz

ln -s mongodb-linux-x86_64-2.2.2 mongodb

mkdir -p /u01/mongodata/db/geomaster/

mkdir -p /u01/mongodata/log/

/usr/local/mongodb/bin/mongod --fork --port40000 --dbpath /u01/mongodata/db/geomaster/ --logpath/u01/mongodata/log/geomaster.log --logappend –master

Slave

tar zxvf mongodb-linux-x86_64-2.2.2.tgz

ln -s mongodb-linux-x86_64-2.2.2 mongodb

mkdir -p /u01/mongodata/db/geomaster/

mkdir -p /u01/mongodata/log/

/usr/local/mongodb/bin/mongod --fork --port40000 --dbpath /u01/mongodata/db/geoslave/ --logpath /u01/mongodata/log/geosalve.log–logappend --slave --source 10.10.20.160:40000

參數(shù)說明:

mongod為mongoDB的server程序,啟動參數(shù)使用的主要有如下幾個

--fork fork出一個server端的daemon進程

--port server監(jiān)聽端口

--dbpath 數(shù)據(jù)文件目錄

--logpath 日志文件路徑

--logappend 日志追加到日志文件中,而不是覆蓋寫入

mongod在主從情況下可以設(shè)置的參數(shù)有:

--master master模式

--salve salve模式

--source salve模式下指定master

--only 只復(fù)制某一個數(shù)據(jù)庫

--salvedelay 從庫從主庫中同步延時

--autoresync 假如從庫數(shù)據(jù)不同步,自動同步

主從配置完畢后測試:

Master

/usr/local/mongodb/bin/mongo -port 40000

use test;

db.createCollection("table1");

db.test.table1.insert({tag:"test"});

db.test.table1.find();

slave

/usr/local/mongodb/bin/mongo -port 40000

db.test.table1.find();

有數(shù)據(jù),說明同步成功

同步后在master上用db.currentOp()也能看到slave的線程

主從相關(guān)命令:

db.isMaster():主從都可執(zhí)行,用這個命令判斷是不是master

db.getReplicationInfo():主上執(zhí)行,獲取主從信息

db.printReplicationInfo():主從都可執(zhí)行,獲取主從信息

db.printSlaveReplicationInfo();:從庫執(zhí)行,查看主從延時

同步失敗處理方法:

如果同步失敗,可使用如下命令同步所有數(shù)據(jù):

同步出現(xiàn)問題,日志會有如下記錄

TueFeb 19 16:31:45 [replslave] all sources dead: data too stale haltedreplication, sleeping for 5 seconds

都是每5秒重試,一直在重試,那么如果要解決只能執(zhí)行下面的命令全部同步一下

Use admin

db.runCommand ( { "resync": 1 } )

也可在啟動從庫時添加--autoresync參數(shù)

同步原理:

同步就是master上把對數(shù)據(jù)的更改操作記錄到oplog中,然后slave抓取master的oplog執(zhí)行。從這點看Oplog的功能和mysql的mysql-bin.的功能類似。Mysql-bin以二進制日志的形式存在,但是oplog是以一個mongodb的表的形式存在,該表在local庫表名為oplog.$main,該表為循環(huán)寫入形,所以不用定時清理。

修改oplog大?。?/strong>

我們在首次啟動mongodb服務(wù)的時候如果沒有設(shè)置oplog的大小,那么它的默認(rèn)值將是所在硬盤的5%,那么如果我們想要改變大小呢,必須重啟,然后在啟動的時候設(shè)置oplogsize,不過還有個小問題,因為之前的oplog已經(jīng)存在了,所以修改完大小啟動會報錯,Tue Feb 19 15:43:19[initandlisten] cmdline oplogsize (10) different than existing (1779),解決方法就是將mongodb數(shù)據(jù)目錄下的local.*刪除,參見:http://api.mongodb.org/wiki/current/Halted%20Replication.html

由于刪除后oplog是重建的,slave的時間點信息比master上oplog的開始時間點要小,所以從庫只能做全同步才能繼續(xù)同步。但是有個問題,如果主庫數(shù)據(jù)非常多的話,做一次全同步是一件非常耗時的事,況且數(shù)據(jù)也沒有丟失。那么現(xiàn)在有個小技巧:

  1. 關(guān)閉slave的mongo服務(wù)

  2. Master上在我們刪除local.*之后,不要急著啟動服務(wù),先用linux的date命令更改系統(tǒng)時間,讓時間小于slave上同步的最后時間,也就是slave執(zhí)行db.printSlaveReplicationInfo()看到的時間

  3. 然后啟動主庫和從庫方能繼續(xù)同步

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)站欄目:Mongodb主從模式篇-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://weahome.cn/article/gecgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部