MongoDB迁移方案-冷备份+增量备份恢复--跨机房迁移

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

QQ群:465614686 

  1. 1.  环境构建步骤

(1)线上环境

都是副本集模式 3个业务访问节点+1个隐藏节点 (隐藏节点做hadoopspark数据同步使用以及数据报表查询等)

(2)主机以及配置说明

  1. 10.21.18.21  primary节点    优先级为100

  2. 10.21.18.22  secondary节点  优先级为90

  3. 10.21.18.23  secondary节点  优先级为80

  4. 10.21.18.24  隐藏节点       优先级为0

系统配置:128G内存,64Core CPU2TB SSD硬盘

(3)MongoDB版本

percona-server-mongodb-3.0.12-1.8

(4)数据量

目前该副本集数据量为1.3TB

单个集合最大数据量目前为6.7亿+,超过5亿+的集合有11张,超过2亿+的集合有27个;

没有做sharding集群,副本集支撑现有业务;

(5)参数配置

几台服务器配置完全一样

vim mguserinfo.conf

# 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

security:

  keyFile:/data/users/mgousr01/mongodb/etc/keyFile/keyFilers0.key


#operationProfiling:


##########replicationOptions

replication:

  replSetName: userRS

  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也都是一样。

先将securitykeyFile参数注释,待如下(6)(7)(8)操作完毕后,在将securitykeyFile参数注释去掉即可

(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:2,host:"10.21.18.22:28010", priority:90,tags:{'use':'usersinfo-02-312'}})

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

  1. 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)参数调整

10.21.18.22:28010该节点参数中的replSetNamekeyfile以及security注释,并启动到单节点模式(以减少应用业务访问或者链接没有释放的线程,选择了业务最低峰凌晨3点操作,如果不及时操作的话,将该节点设置为隐藏节点即可,然后在进行后续操作)

启动:

mongod –f mguserinfo.conf

(4)登陆到该节点做如下操作

a.  mongo10.21.18.22:28010

> use admin

>db.system.version.find()

{ "_id" : "authSchema", "currentVersion" :5 }

b.  当前认证级别为5,将其修改为3

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

c.  重启

10.21.18.22:28010该节点参数中的replSetNamekeyfile以及security注释去掉;启动即可

mongod –f mguserinfo.conf –shutdown

mongod–f mguserinfo.conf

这样该节点又加入到该集群中

(5)切换primary节点

切换现有primary节点到10.21.18.22secondary主机

a.  调整优先级

10.21.18.21主机mongodb primary节点的优先级修改为85即可

b.  操作命令

cfg =rs.conf()

cfg.members[1].priority= 85

rs.reconfig(cfg)

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
6月前
|
SQL DataWorks NoSQL
DataWorks报错问题之datax mongodb全量迁移报错如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
29天前
|
NoSQL MongoDB 数据库
使用NimoShake将数据从AWS DynamoDB迁移至阿里云MongoDB
使用NimoShake将数据从AWS DynamoDB迁移至阿里云MongoDB
|
3月前
|
JSON NoSQL Ubuntu
在Ubuntu 14.04上如何备份、恢复和迁移MongoDB数据库
在Ubuntu 14.04上如何备份、恢复和迁移MongoDB数据库
88 1
|
3月前
|
NoSQL MongoDB 数据库
DTS 的惊天挑战:迁移海量 MongoDB 数据时,捍卫数据准确完整的生死之战!
【8月更文挑战第7天】在数字化时代,大数据量的MongoDB迁移至关重要。DTS(数据传输服务)通过全面的数据评估、可靠的传输机制(如事务保证一致性)、异常处理(如回滚或重试),以及迁移后的数据校验来确保数据准确无损。DTS还处理数据转换与映射,即使面对不同数据库结构也能保持数据完整性,为企业提供可靠的数据迁移解决方案。
62 2
|
4月前
|
分布式计算 DataWorks NoSQL
DataWorks产品使用合集之怎么离线同步MongoDB的增量数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
DataWorks NoSQL fastjson
DataWorks操作报错合集之DataX进行MongoDB全量迁移的过程中,DataX的MongoDB Reader插件在初始化阶段找不到Fastjson 2.x版本的类库,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
存储 数据采集 NoSQL
DTS在迁移大数据量的MongoDB数据库时如何保证数据的准确性和完整性?
【6月更文挑战第4天】DTS在迁移大数据量的MongoDB数据库时如何保证数据的准确性和完整性?
139 1
|
存储 NoSQL 自动驾驶
MongoDB在自动驾驶场景方案及最佳实践
MongoDB在自动驾驶场景方案及最佳实践
|
监控 NoSQL 安全
MongoDB在游戏行业方案介绍及最佳实践
MongoDB在游戏行业方案介绍及最佳实践
|
数据采集 NoSQL 容灾
如何实现MongoDB数据的快速迁移?
为解决用户面临的 MongoDB 迁移问题,玖章算术旗下的云原生智能数据管理平台 NineData 推出了 MongoDB 业务不停服数据迁移能力。NineData 实现了完全自动化的全量数据迁移,以及增量数据的采集复制能力。
下一篇
无影云桌面