我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mongodb副本集用一致性快照方法添加从节点步骤

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mongodb副本集用一致性快照方法添加从节点步骤

环境描述

主节点 192.168.0.1:27002

两个从节点

192.168.0.2:27002

192.168.0.3:27002

目标:用一致性快照方式添加第三个从节点192.168.0.3

步骤简述:

1)主节点上进行一致性快照备份

2)从节点上进行一致性快照恢复,仅仅对数据部分进行恢复,暂时不要对oplog进行恢复

3)初始化oplog.rs集合,并恢复oplog记录

4)初始化local数据库的其他两个集合db.replset.election,db.system.replset

5)修改数据库配置并重启数据库(这一步操作前实例不开启认证模式、复制集的配置),

6)用rs.add("HOST_NAME:PORT")命令将从节点添加进集群

7).用rs.status()观察同步状态并校验数据的完整和一致性

一.主节点或者其他两个从节点上备份数据:

mongodump -uroot -ptest --host 192.168.0.2 --authenticationDatabase=admin --port=27002 --oplog -o /data/mongo/backup

二.将备份文件scp到192.168.0.3上并进行恢复:

scp -r /data/mongo/backup mongo@192.168.0.3/data/mongo 

三.第三个节点以单实例方式启动:

备注:需要注释掉以下副本集参数

# auth = true

#replSet = test27002

#replSet = repl_mongo

#keyFile = /data/mongo/27002/replSet.key

# su - mongo

$ mongod -f /data/mongo/27002/conf/mongodb.conf 

在192.168.0.3上进行一致性快照恢复:

$ mongorestore --oplogReplay --port=27002 /data/mongo/backup

创建oplog.rs集合并初始化大小:

>use local

>db.createCollection("oplog.rs",{"capped":true,"size":100000000})

恢复一致性备份的oplog.rs集合的数据到192.168.0.3:

$ mongorestore -d local -c oplog.rs --port=27002 /data/mongo/backup/oplog.bson

需要查询主节点replset.election集合的数据并将这些数据存储到192.168.0.3节点

主DB上的操作:

$ mongo 192.168.0.1:27002/admin -uroot -ptest

test27002:PRIMARY> use local

switched to db local

test27002:PRIMARY>  db.replset.election.find()

{ "_id" : ObjectId("5d64912a1978c9b194cf7cc5"), "term" : NumberLong(2), "candidateIndex" : NumberLong(2) }

192.168.0.3节点上保存主DB上replset.election集合的数据内容:

use local

db.replset.election.save({ "_id" : ObjectId("5d64912a1978c9b194cf7cc5"), "term" : NumberLong(2), "candidateIndex" : NumberLong(2) })

关闭第三个从节点,以副本集方式启动mongodb:

> use admin

switched to db admin

> db.shutdownServer()

server should be down...

2019-09-01T18:10:57.337+0800 I NETWORK  [js] trying reconnect to 127.0.0.1:27002 failed

2019-09-01T18:10:57.337+0800 I NETWORK  [js] reconnect 127.0.0.1:27002 failed failed 

修改第三个从节点配置,注释去掉:

auth = true

replSet = test27002

keyFile = /data/mongo/27002/replSet.key

以副本集方式启动mongodb

$ mongod -f  /data/mongo/27002/conf/mongodb.conf 

主节点执行添加节点操作:

mongo 192.168.0.1:27002/admin -uroot -ptest

>rs.add("172.31.30.82:27001");

主节点上写入数据:

use test

for (var i=0;i<=500;i++) { db.test.insert({id:i,name:"chenfeng"}) }

登录第三个从节点进行数据验证:

>use test

>db.test.count()

说明:以上步骤和MySQL的用mysqldump或xtrabackup备份方式添加一个从节点方法类似。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mongodb副本集用一致性快照方法添加从节点步骤

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

目录