成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

MongoDB復制集配置步驟-創(chuàng)新互聯

1.      配置三個節(jié)點的配置文件(/etc/28001.conf)

成都做網站、網站建設服務團隊是一支充滿著熱情的團隊,執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯的標準與要求,同時竭誠為客戶提供服務是我們的理念。成都創(chuàng)新互聯公司把每個網站當做一個產品來開發(fā),精雕細琢,追求一名工匠心中的細致,我們更用心!

28002.conf

#bind_ip=192.168.20.144

port=28001

logpath=/data/db/mongodb_log/28001.log

logappend=true

pidfilepath=/data/db/mongodb_data28001/28001.pid

oplogSize=500

dbpath=/data/db/mongodb_data28001

replSet=imooc

fork=true

28002.conf

#bind_ip=192.168.20.144

port=28002

logpath=/data/db/mongodb_log/28002.log

logappend=true

pidfilepath=/data/db/mongodb_data28002/28002.pid

oplogSize=500

dbpath=/data/db/28002

replSet=imooc

fork=true

28003.conf

#bind_ip=192.168.20.144

port=28003

logpath=/data/db/mongodb_log/28003.log

logappend=true

pidfilepath=/data/db/mongodb_data28003/28003.pid

oplogSize=500

dbpath=/data/db/28003

replSet=imooc

fork=true

2.      使用配置文件啟動mongod服務

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/28001.conf

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/28002.conf

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/28003.conf

3.      登錄到運行的monogd機器

/usr/local/mongodb/bin/mongo 127.0.0.1:28001/admin

4.      配置復制集節(jié)點配置文件

config={_id : "imooc",members : [{_id : 1, host : "127.0.0.1:28001"},{_id : 2, host : "127.0.0.1:28002"},{_id : 3, host : "127.0.0.1:28003"}]}

5.      查看節(jié)點成員

config.members

6.      設置3節(jié)點為仲裁節(jié)點

config.members[3] ={"_id":3,"host":"127.0.0.1:28003",arbiterOnly:true}

或在主節(jié)點中輸入:

rs.addArb("127.0.0.1:28003")

7.      初始化副本集

rs.initiate(config) (如果初始化一直報已經初始化過,需要將數據備份后,重新創(chuàng)建主節(jié)點。)

8.      重新加載config參數(每次修改config之后都要reconfig一次,但reconfig會使復制集的連接短暫斷開,要避免在生產環(huán)境中隨便執(zhí)行,需要維護時間窗口才可執(zhí)行)

rs.reconfig(cnf,{force:true})

(運行此命令必須在primary節(jié)點,如果不是顯示primary,可能是other,則需要加上force的參數)

9.      查看復制集狀態(tài)

rs.status()

10. mongodb的前端引用程序是通過isMaster命令來區(qū)分主從節(jié)點的(隱藏節(jié)點可以通過rs.status()看到其信息,而rs.isMaster是沒法看到的)

rs.isMaster()

維護:

添加副本,在登錄到主節(jié)點下輸入:

rs.add("ip:port")

刪除副本

rs.remove("ip:port")

(前提是這個ip:port必須是使用了同一個relpSet名稱的mongodb實例即可)

導入原有數據后,導入命令

mongorestore -h 127.0.0.1:12345 -d syt --directoryperdb /mnt/mongo_data/

其中/mnt/mongo_data為要導入的json文件,后發(fā)現從節(jié)點都變成recovering狀態(tài)。

問題原因
出現這個問題的原因主要是secondary節(jié)點同步oplog的速度追不上primary幾點的速度,造成一直處于recovering狀態(tài)。

解決辦法:
   首先停掉從節(jié)點mongod進程,然后刪除目錄(rs)下面所有的數據,然后重啟mongod進程,這里有一點需要注意,如果有arbiter的mongod進程也需要停掉,啟動的時候,先啟動replSet的mongod進程,再啟動arbiter的mongod進程,啟動之后,會自動由recovering狀態(tài)切換為startup2狀態(tài),最后切換為secondary狀態(tài)

第二種辦法就是先將recovering節(jié)點下的data目錄刪除,再將primary里的data都拷貝到該節(jié)點下,再重啟就好了!操作前,務必要停止所有的mongodb數據庫!

可以看到,在從節(jié)點使用show tables 報錯,顯示“此節(jié)點非主節(jié)點,從節(jié)點的ok狀態(tài)是失敗的”。如果需要在從節(jié)點讀取數據的話,需要將slave做設置:

rs.slaveOk(true)

再執(zhí)行show tables就可以成功了。

模擬宕機:

在主節(jié)點執(zhí)行:db.shutdownServer()

出現報錯"errmsg" : "shutdown must run from localhost when running db without auth",

此報錯說明在沒有開啟驗證的情況下需要到localhost下執(zhí)行,如果啟動配置文件里指定了bin_ip,則只能通過bin_ip去執(zhí)行,這里我們沒法登錄localhost執(zhí)行,只能通過kill的方式。

通過查看ps –ef|grep ****查找到對應進程號

使用kill -2 **** (不到萬不得已不建議使用kill來關閉進程實例,即使是要使用,也要用較溫和的方式kill -2 {SIGINT} 的方式來關閉, kill -2 會把實例中所有隊列的進程都關閉后再關閉實例)

關閉之后測試:

查看原先主節(jié)點,敲enter已經出現報錯

查看原先從節(jié)點,在兩個從節(jié)點中敲enter,可發(fā)現有一個節(jié)點已經變?yōu)镻RIMARY

通過show log rs可以看到節(jié)點的切換情況。

MongoDB Enterprise imooc:PRIMARY> show log rs

2017-10-30T01:53:15.617-0700 I REPL    [replExecDBWorker-0] New replica set config in use: { _id: "imooc", version: 1, protocolVersion: 1, members: [ { _id: 1, host: "127.0.0.1:28001", arbiterOnly: false, buildIndexes: true, hidden: false, priority: 1.0, tags: {}, slaveDelay: 0, votes: 1 }, { _id: 2, host: "127.0.0.1:28002", arbiterOnly: false, buildIndexes: true, hidden: false, priority: 1.0, tags: {}, slaveDelay: 0, votes: 1 }, { _id: 3, host: "127.0.0.1:28003", arbiterOnly: false, buildIndexes: true, h

2017-10-30T01:53:15.617-0700 I REPL    [replExecDBWorker-0] transition to STARTUP2

2017-10-30T01:53:15.618-0700 I REPL    [rsSync] transition to RECOVERING

2017-10-30T01:53:15.619-0700 I REPL    [rsSync] transition to SECONDARY

2017-10-30T01:53:15.621-0700 I REPL    [ReplicationExecutor] Member 127.0.0.1:28001 is now in state SECONDARY

2017-10-30T01:53:20.624-0700 I REPL    [ReplicationExecutor] Member 127.0.0.1:28003 is now in state SECONDARY

2017-10-30T01:53:25.625-0700 I REPL    [ReplicationExecutor] Member 127.0.0.1:28001 is now in state PRIMARY

2017-10-30T02:13:53.329-0700 I REPL    [rsBackgroundSync] could not find member to sync from

2017-10-30T02:14:01.816-0700 I REPL    [ReplicationExecutor] transition to PRIMARY

2017-10-30T02:14:03.033-0700 I REPL    [rsSync] transition to primary complete; database writes are now permitted

(待驗證)

如果出現有一個節(jié)點找不到oplog(通過日志看出),可通過將主節(jié)點的oplog復制到從節(jié)點上

1.      備份出來:
./mongodump --port 28011 -d local -c oplog.rs -o /opt/backup/0706local/

2.      恢復到另外一臺單節(jié)點MONGODB服務器

./mongorestore --port 28011 -d temp_local -c shard1_oplog --dir /opt/backup/0706local/local/oplog.rs.bson

如果恢復時出現報錯Failed: error connecting to db server: no reachable servers

…………….

…………..

如果出現有一個節(jié)點有問題,刪除monogd.lock, 在啟動時加上—repair,再啟動還是啟動不了,而且只是作為一個不存儲數據的仲裁節(jié)點的話,最簡單粗暴的方法是通過將節(jié)點下的data數據都刪除,然后再重啟,則可啟動成功。

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

分享題目:MongoDB復制集配置步驟-創(chuàng)新互聯
鏈接分享:http://jinyejixie.com/article38/djcisp.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站設計公司、小程序開發(fā)、移動網站建設App開發(fā)、網站策劃、動態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都seo排名網站優(yōu)化
无棣县| 宿迁市| 托里县| 临江市| 济南市| 白河县| 平阴县| 高邮市| 荃湾区| 自治县| 肇庆市| 图们市| 西充县| 福鼎市| 博乐市| 通河县| 东源县| 密云县| 汶上县| 璧山县| 磴口县| 荆门市| 巍山| 泰兴市| 泸州市| 同德县| 汉沽区| 十堰市| 固始县| 江永县| 永寿县| 普格县| 永福县| 婺源县| 龙江县| 镇赉县| 鄂托克旗| 古田县| 常熟市| 文成县| 南投县|