MongoDB集群间环境迁移
来源:互联网 发布:win10如何优化虚拟机 编辑:程序博客网 时间:2024/05/23 01:14
1 迁移准备
采用该文档进行MongoDB集群环境迁移,需确保
1. 两套MongoDB集群环境架构一致,且采用命令方式部署。本文档以如下架构集群MongoDB为例进行讲解MongoDB集群迁移部署。
MongoDB集群部署拓扑图
2. 两套MongoDB软件版本一致
2 迁移进行时
2.1 上传、解压MongoDB安装包
2.2 检验各MongoDB服务器的时间
2.3 创建数据、日志文件
进入MongoDB目录,执行创建数据、日志文件夹。
服务器1 执行命令:
#mkdir -p data
#mkdir -p data/shard11
#mkdir -p data/shard21
#mkdir -p logs
服务器2 执行命令:
#mkdir -p data
#mkdir -p data/shard12
#mkdir -p data/shard23
#mkdir -p logs
服务器3 执行命令:
#mkdir -p data
#mkdir -p data/shard13
#mkdir -p data/shard23
#mkdir -p logs
说明:shardmn,其中m代表分片编号,n代表备份编号。如上命令,共1和2两个分片,每个分片共2备份。如shard11,有备份shard12和shard13。
2.4 启动数据节点
进入MongoDB的bin目录,每台服务器执行命令启动2个分片数据节点。
服务器1 执行命令:
#./mongodb -shardsvr -replSet shard1 -port 27017 -dbpath /app/mongodb-linux-x86_64-rhel62-3.0.4/data/shard11 -oplogSize 100 -logpath /app/mongodb-linux-x86_64-rhel62-3.0.4/logs/shard11.log -logappend -fork
#./mongodb -shardsvr -replSet shard2 -port 27018 -dbpath /app/mongodb-linux-x86_64-rhel62-3.0.4/data/shard21 -oplogSize 100 -logpath /app/mongodb-linux-x86_64-rhel62-3.0.4/logs/shard21.log -logappend -fork
说明:
(1) shard1表示:分片编号,通用为shardn,n为具体数字;
(2) 27017表示:该进程使用的端口;
(3) -dbpath后面的路径表示:分片数据文件存放的路径;
(4) -logpath后面路径表示:分片日志文件存放路径
(5) -logappend -fork表示:后台运行进程
服务器2 执行命令:
#./mongodb -shardsvr -replSet shard1 -port 27017 -dbpath /app/mongodb-linux-x86_64-rhel62-3.0.4/data/shard12 -oplogSize 100 -logpath /app/mongodb-linux-x86_64-rhel62-3.0.4/logs/shard12.log -logappend -fork
#./mongodb -shardsvr -replSet shard2 -port 27018 -dbpath /app/mongodb-linux-x86_64-rhel62-3.0.4/data/shard22 -oplogSize 100 -logpath /app/mongodb-linux-x86_64-rhel62-3.0.4/logs/shard22.log -logappend -fork
服务器3 执行命令:
#./mongodb -shardsvr -replSet shard1 -port 27017 -dbpath /app/mongodb-linux-x86_64-rhel62-3.0.4/data/shard13 -oplogSize 100 -logpath /app/mongodb-linux-x86_64-rhel62-3.0.4/logs/shard13.log -logappend -fork
#./mongodb -shardsvr -replSet shard2 -port 27018 -dbpath /app/mongodb-linux-x86_64-rhel62-3.0.4/data/shard23 -oplogSize 100 -logpath /app/mongodb-linux-x86_64-rhel62-3.0.4/logs/shard23.log -logappend -fork
2.5 分配副本集Replica Set
副本集将分片节点关联起来。
只需在一台服务器上进行副本集分配命令执行。通常默认执行该命令的服务器的分配为master,其余服务器为备份。
如在服务器1登录分片1控制台,命令 #./mongo -port 27017
分配分片1副本集命令:
>config = {_id: 'shard1', members: [
{_id: 0, host: '服务器1 IP:27017'},
{_id: 1, host: '服务器2 IP:27017'},
{_id: 2, host: '服务器3 IP:27017'}]
}
> rs.initiate(config);
说明:rs.initiate(config);为初始化配置命令
在服务器2登录分片2控制台,命令:#./mongo -port 27018
进行分片2副本集命令:
>config = {_id: 'shard2', members: [
{_id: 0, host: '服务器1 IP:27018'},
{_id: 1, host: '服务器2 IP:27018'},
{_id: 2, host: '服务器3 IP:27018'}]
}
> rs.initiate(config);
2.6 启动配置服务
分别在三台服务器上执行命令:
#./mongod -configsvr -dbpath /app/mongodb-linux-x86_64-rhel62-3.0.4/config -port 20000 -logpath /app/mongodb-linux-x86_64-rhel62-3.0.4/data/config.log -logappend –fork
说明:
(1) -dbpath后面跟着目录是配置文件存放路径
(2) -port后面跟着20000是进程使用的端口地址
(3) -logpath后面跟着目录是进程启动日志文件存放路径
(4) -logappend -fork表示:后台运行进程
2.7 启动路由服务
分别在三台服务器上执行命令:
# ./mongos -configdb 192.168.2.33:20000,192.168.2.34:20000,192.168.2.35:20000 -port 30000 -chunkSize 5 -logpath / app /mongodb-linux-x86_64-rhel62-3.0.4/data/mongos.log -logappend –fork
说明:
(1) -configdb 后面跟着三台配置服务器的IP及端口地址
(2) -port 后面跟着进程使用的端口地址
(3) -logpath 后面跟着路由进程对应日志存放地址
(4) -logappend -fork表示:后台运行进程
2.8 加入分片
1. 连接到其中一台服务器的mongs进程,并切换至admin数据库。
命令:
#./mongos -port 30000
>use admin;
2. 配置分片,本文档例子中仅有两个分片,所以执行命令:
>db.runCommand( { addshard : "shard1/192.168.2.33:27017,192.168.2.34:27017,192.168.2.35:27017",name:"s1"} );
>db.runCommand( { addshard : "shard2/192.168. 2.33:27018,192.168.2.34:27018,192.168.2.35:27018",name:"s2"} );
说明:配置分片时,需更改分片相关服务器IP和端口地址
3. 配置分片验证,命令:
> db.runCommand( { listshards : 1 } );
说明:如果列出了以上两个你加的shards,表示shards已经配置成功,如图所示。
配置分配成功验证结果
2.9 激活数据库
1. 连接到其中一台服务器的mongs进程,并切换至admin数据库。
命令:
#./mongos -port 30000
>use admin;
2. 激活数据库分片,命令:
>db.runCommand( { enablesharding : “DB_NAME” } );
2.10 集合Collection分片
1. 连接到其中一台服务器的mongs进程,并切换至admin数据库。
命令:
#./mongos -port 30000
>use admin;
2. 集合分片,命令:
>db.runCommand( { shardcollection : "DB_NAME.COLLECTION_NAME",key : {id: 1} } );
2.11 迁移数据
将需要迁移的MongoDB –Data下的分片数据文件中的DB_NAME文件复制到对应服务器的对应相同目录下。
如源服务器1的shard11和shard21文件夹中DB_NAME文件复制到目标服务器1的shard11和shard21文件中。
2.12 添加索引
1. 连接到其中一台服务器的mongs进程,并切换至DB_NAME数据库。
命令:
#./mongos -port 30000
>use DB_NAME;
2. 添加索引
3 分片验证
3.1 方法一:数据库状态验证
1. 连接到其中一台服务器的mongs进程,并切换至DB_NAME数据库。
命令:
#./mongos -port 30000
>use DB_NAME;
2. 查看数据库状态,命令:
>db.stats();
说明:若数据库状态中包含全部分片,则说明数据迁移成功,如图所示。同时,既然是数据迁移,则dataSize应不为0。
3.2 方法二:集合状态验证
1. 连接到其中一台服务器的mongs进程,并切换至DB_NAME数据库。
命令:
#./mongos -port 30000
>use DB_NAME;
2. 查看数据库中的集合状态,如查看EVENT集合状态命令:
>db.EVENT.stats();
说明:
(1) 集合中shard状态为true;
(2) Count数量大于0;
(3) 有具体分片的数据信息
- MongoDB集群间环境迁移
- mongodb分片集群数据迁移(方案一)
- mongodb分片集群数据迁移(方案二)
- mongodb分片集群数据迁移(方案三)
- hbase集群间数据迁移
- hdfs集群间数据迁移
- Hbase集群间数据迁移
- mongodb集群环境存储空间矢量数据(1)
- MongoDB值Replcia Set集群环境部署
- mongodb 3.2 集群 (CentOS 7.2 环境)
- mongodb集群环境搭建Replica Set
- mongodb迁移
- MongoDB学习笔记三:MongoDB集群环境搭建
- MongoDB分片环境下整体数据迁移解决方案
- TroubleShooting - 迁移到集群环境数据错乱问题
- 生产环境ehcache迁移到集中式redis集群
- Hbase集群间数据迁移方法总结
- hadoop集群间的hbase数据迁移
- 重建二叉树
- Xcode 查看运行时ViewController结构
- Android 分享一个SharedPreferences的工具类,方便保存数据
- 神经网络学习笔记
- hdu 6158 The Designer 计算几何之圆反演 2017中国大学生程序设计竞赛
- MongoDB集群间环境迁移
- python io流(8)
- Struts2的访问路径一:固定访问路径
- 交换排序-快速排序
- JSP(二) —— JSP动作元素
- rsync命令排除文件和文件夹exclude
- 最新App、手机网站尺寸规范—移动设备界面UI设计尺寸规范
- quartz 简单使用
- MUI和evalJS