分片集群平滑迁移实验(成功)
过程概述:
为每个分片添加多个从节点,然后自动同步。同步完后,切换主节点到新服务器节点。
导出原来的config 数据库,并导入到新服务器的config数据库
停掉整个集群,可以使用kill 命令停掉
新服务器 启动 config 进程 ,启动mongod 分片进程,
最后启动mongos进程,注意config的地址需要变成新的节点地址
验证成功!
老服务器的三分片数据 迁移到 新服务器的三片集群
老分片环境:
192.168.168.56 22001 22002 22003
192.168.168.57 22001 22002 22003
192.168.168.58 22001 22002 22003
新分片环境
192.168.6.103 22001 22002 22003
192.168.6.104 22001 22002 22003
192.168.6.105 22001 22002 22003
#### 新服务器搭建分片服务:
(按照配置标准启动服务,mongos服务 可以先不启用)
/usr/local/mongodb/bin/mongod --configsvr--dbpath /data/mongodb/config/data --port 21000 --logpath/data/mongodb/config/log/config.log --fork
/usr/local/mongodb/bin/mongod --shardsvr--replSet shard1 --port 22001 --dbpath /data/mongodb/shard1/data --logpath/data/mongodb/shard1/log/shard1.log --fork --oplogSize 10000
/usr/local/mongodb/bin/mongod--shardsvr --replSet shard2 --port 22002 --dbpath /data/mongodb/shard2/data--logpath /data/mongodb/shard2/log/shard2.log --fork --oplogSize 10000
/usr/local/mongodb/bin/mongod--shardsvr --replSet shard3 --port 22003 --dbpath /data/mongodb/shard3/data--logpath /data/mongodb/shard3/log/shard3.log --fork --oplogSize 10000
#
####老服务器操作:主从集群增加新节点
增加 新的主从服务器到分片节点,让mongodb自同步数据到新服务器三分片
主/从rs.add('192.168.6.103:22001')
从 rs.add('192.168.6.104:22001')
总裁 rs.add('192.168.6.105:22001','arbiterOnly:true')
总裁 rs.add('192.168.6.103:22002','arbiterOnly:true')
主/从rs.add('192.168.6.104:22002')
从 rs.add('192.168.6.105:22002')
从 rs.add('192.168.6.103:22003')
总裁 rs.add('192.168.6.104:22003','arbiterOnly:true')
主/从 rs.add('192.168.6.105:22003')
#####老服务器操作:更改权重,切换priority
同步完成后,更改权重,切换主priority到新的服务器,让老的主节点变成从节点
22001 主服务器操作:
rs.conf();
cfg=rs.conf();
cfg.members[0].priority=1
cfg.members[3].priority=2
rs.reconfig(cfg);
22002主服务器操作:
rs.conf();
cfg=rs.conf();
cfg.members[2].priority=1
cfg.members[4].priority=2
rs.reconfig(cfg);
22003 主服务器操作:
rs.conf();
cfg=rs.conf();
cfg.members[1].priority=1
cfg.members[5].priority=2
rs.reconfig(cfg);
######主切换完成后删除 旧服务器的 从节点:
rs.remove('192.168.168.56:22001')
rs.remove('192.168.168.57:22001')
rs.remove('192.168.168.58:22001')
rs.remove('192.168.168.56:22002')
rs.remove('192.168.168.57:22002')
rs.remove('192.168.168.58:22002')
rs.remove('192.168.168.56:22003')
rs.remove('192.168.168.57:22003')
rs.remove('192.168.168.58:22003')
###原配置服务(21000)导出config库并导入新的配置服务:
导出config 库
# mongodump --port21000 -d config #导出
导入config 到新的服务器config
# mongorestore--port 21000 -d config /root/dump/config/ #导入
停掉所有的服务器的进程,关闭整个集群包括config mongod 和 mongos
####在新服务器启动服务#
启动整个集群,包括:config mongod 和mongos进程
如果启动mongos进程没有报错,则说明mongodb分片集群平滑迁移成功
#备注#
config服务器需要替换成新的服务器ip地址和端口
/usr/local/mongodb/bin/mongos--configdb 192.168.6.103:21000,192.168.6.104:21000,192.168.6.105:21000--port 30000 --chunkSize 50 --logpath /data/mongodb/mongos/log/mongos.log--fork