物理备份恢复mongodb副本集

本文章主要讲解通过物理备份文件恢复mongodb副本集,也适用于mongodb单节点实例转变成副本集实例,转换过程中使用单节点的物理备份即可。

前提

  • 一个mongodb副本集实例
  • 一个完成的物理备份文件(mongodb数据目录的完整备份)

举例:1主1从1hidden组成的副本集,名字是myrs(也适用于其他类型的副本集恢复)

节点优先级是否hidden
192.168.0.11 (node1)3
192.168.0.12 (node2)1
192.168.0.13 (node3)0

恢复步骤

  1. 先恢复primary节点node1

    1. copy 物理备份文件到node1的数据目录:/data/db。

    2. 指定数据目录启动mongodb服务:mongod --dbpath /data/db (这里不要用配置文件启动,只需要mongod加参数启动即可)

    3. 令起一个终端连接,用mongo shell 客户端登录mongodb,并drop掉local数据库(此时不需要任何的用户认证,直接命令行输入:mongo即可),
      use local;
      db.dropDatabase();

    4. 关闭第2步启动的mongodb服务,重新以副本集模式启动mongod服务
      mongod --dbpath /data/db --replSet myrs

    5. 用mongo shell登录副本集,并执行副本集初始化命令(注意_id要和配置文件中的replication.replSetName一致)

        rs.initiate( {
         _id : "myrs",
         members: [ { _id : 0, host : "192.168.0.11:27017",priority:3} ]
      })
      
    6. 关闭node1的mongod服务

  2. 恢复secondary节点node2,node3

    1. 清空node2,node3 mongod的数据目录
    2. 将primary节点的数据copy到node2,node3的数据目录中
    3. 启动node2,node3的mongod服务,按原来的配置文件启动mongod服务(注意配置文件中的replication.replSetName要和主节点的一致)
  3. 启动primary节点服务(指定配置文件启动),并将secondary节点加入到集群中

    rs.add( { host: "192.168.0.12:27017", priority: 1})
    rs.add( { host: "192.168.0.13:27017", priority: 0, hidden: true })
    
  4. 检查mongodb副本集的状态rs.status()

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiqian1989

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值