繼續閱讀

MongoDB遷移方案-冷備份+增量備份恢複--跨機房遷移

qq群:465614686 

1.  環境建構步驟

(1)線上環境

都是副本集模式 3個業務通路節點+1個隐藏節點 (隐藏節點做hadoop、spark資料同步使用以及資料報表查詢等)

(2)主機以及配置說明

10.21.18.22  secondary節點  優先級為90

10.21.18.23  secondary節點  優先級為80

10.21.18.24  隐藏節點       優先級為0

系統配置:128g記憶體,64core cpu,2tb ssd硬碟

(3)mongodb版本

percona-server-mongodb-3.0.12-1.8

(4)資料量

目前該副本集資料量為1.3tb;

單個集合最大資料量目前為6.7億+,超過5億+的集合有11張,超過2億+的集合有27個;

沒有做sharding叢集,副本集支撐現有業務;

(5)參數配置

幾台伺服器配置完全一樣

# fordocumentation of all options, see:

#  http://docs.mongodb.org/manual/reference/configuration-options/

# where to writelogging data.

systemlog:

  destination: file

  logappend: true

  logrotate: reopen

  path: /data/users/mgousr01/mongodb/logs/userinfo01.log

# where and howto store data.

storage:

  dbpath: /data/users/mgousr01/mongodb/dbdata

  journal:

    enabled: true

  directoryperdb: true

  engine: wiredtiger

#########storage.wiredtigeroptions

  wiredtiger:

    engineconfig:

      cachesizegb: 64

      directoryforindexes: true

    indexconfig:

      prefixcompression: true

##########operationprofilingoptions

operationprofiling:

   slowopthresholdms: 50

   mode: "all"

########processmanagementoptions

processmanagement:

  fork: true

  pidfilepath:/data/users/mgousr01/mongodb/dbdata/userinfo01.pid

# networkinterfaces

net:

  port: 28010

  #bindip:

  maxincomingconnections: 27600

#operationprofiling:

##########replicationoptions

replication:

  oplogsizemb: 95360

  secondaryindexprefetch: all

#sharding:

  #clusterrole: shardsvr    #configsvr or shardsvr

##enterprise-only options

#auditlog:

#snmp:

setparameter:

  enablelocalhostauthbypass: true

  #replwriterthreadcount: 32

  #wiredtigerconcurrentreadtransactions: 1000

    #wiredtigerconcurrentwritetransactions: 1000

注意說明:

keyfilers0.key表示認證檔案,需要自己生成;權限為 600 否則啟動失敗,幾台key也都是一樣。

先将security和keyfile參數注釋,待如下(6)(7)(8)操作完畢後,在将security和keyfile參數注釋去掉即可。

(6)啟動

mongod –f mguserinfo.conf

(7)配置副本集的方法

a.  登陸10.21.18.21主機操作

>config={_id:"userrs",members:[{_id:1,host:"10.21.18.21:28010",priority:100,tags:{'use':'usersinfo-01-312'}}]}

> rs.initiate(config)

b.  添加節點

userrs:primary>rs.add({_id:3, host:"10.21.18.23:28010", priority:80,tags:{'use':'usersinfo-03-312'}})

userrs:primary>rs.add({_id:5, host:"10.21.18.24:28010", priority:0,hidden:true,tags:{'use':'usersinfo-03-312-hidden'}})

(8)建立使用者

use admin

db.createuser( 

    user: "admin", 

    pwd: "123456", 

    roles: 

    [ 

      {role: "useradminanydatabase",db: "admin"},

      { role: "readanydatabase", db:"admin" },

      { role: "dbowner", db:"admin" },

      { role: "useradmin", db:"admin" },

      { role: "root", db: "admin"},

      { role: "clustermonitor", db:"admin" },

      { role: "dbadmin", db:"admin" },

    ] 

  } 

)

使用者名為admin,密碼為123456

2.  如何實作增量備份

(1)上述環境是我們線上的生産環境

(2)将其中一個secondary節點關閉

我選擇了10.21.18.22:28010主機節點

a.  登陸主節點操作如下

rs.remove("10.21.18.22:28010");

從現有叢集中移除該節點

b.  shutdownmongod程序

登陸10.21.18.22主機将mongod程序shutdown

mongod –f mguserinfo.conf --shutdown

(3)參數調整

啟動:

(4)登陸到該節點做如下操作

a.  mongo10.21.18.22:28010

> use admin

{ "_id" : "authschema", "currentversion" :5 }

b.  目前認證級别為5,将其修改為3

>db.system.version.update({ "_id" : "authschema"},{$set: {"currentversion" : 3} })

c.  重新開機

mongod –f mguserinfo.conf –shutdown

mongod–f mguserinfo.conf

這樣該節點又加入到該叢集中

(5)切換primary節點

a.  調整優先級

将10.21.18.21主機mongodb primary節點的優先級修改為85即可

b.  操作指令

cfg =rs.conf()

cfg.members[1].priority= 85

rs.reconfig(cfg)

繼續閱讀