- 1、本文档共2页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
迁移的实时查询和分片的断点续迁
1.添加实时查询各分片的迁移情况,包括如下信息:
迁移已进行的时间(不包含rdb解析和key注册的消耗时间)
需要迁移的key总量
已经成功迁移的key数量
迁移失败的key数量
待迁移的key数量
成功迁移的百分比
该数据在分片迁移的过程中会定时或定量刷新到DTredis的db0中,并进行bgsave保存,在数据迁移的过程中可进行实时查询大致的迁移情况。
若DT运行完毕或者异常退出,可用redis加载备份的dump文件进行数据查看。
断点续迁功能
在线数据迁移,从某一单独分片来说分一下几个步骤
1.向daemon发消息进行bgsave并获取dump文件至DT
2.解析dump文件,生成待操作log文件,文件中记录所有待迁移的key
3.开始数据迁移
4.数据迁移的过程更新并记录各参数
migstatus:
0迁移未开始
1dump文件解析中
2dump文件解析完成
3数据迁移中
4数据迁移完成
5迁移线程结束
logfile:操作日志文件,文件中记录了所有待迁移的key。
miglocation:当前迁移的key(目前设置为每迁移500个key刷新一次)。
在线数据迁移启动时,DT根据待迁移的shard名去db0下查询该分片的迁移信息,包括migstatus、logfile和miglocation。
1.首先判断migstatus,若为4或5,则认为上次该分片已经迁移完成。
2.若migstatus不为4或5,则认为上次数据迁移未开始或中断未完成,本次需要进行续迁或者重新迁移。
分析logfile和miglocation,分为以下几种情况:
Logfile文件不存在:需要对dump文件进行解析并对该shard进行重新数据迁移操作;
Logfile存在,但在Logfile中找不到miglocation:要对dump文件进行解析并对该shard进行重新数据迁移操作;
Logfile存在,在Logfile中可以找到miglocation:认为上次迁移在处理miglocation这个key时迁移中断,本次需要进行续迁。从Logfile中的miglocation位置开始,
Register线程将剩下的key都注册到db0中,migrate线程对剩下的key进行迁移操作。
迁移和续迁就是以上的大概步骤,具体需看演示。
Miglocation位置查找操作,目前是做如下处理操作的:
若Logfile为redis-rdbLog-_thread0_2018_4_27_9\:57\:21
miglocation记录的位置为ttbckk167615,
则将miglocation拼接为12ttbckk167615type06string,该字符串在文件中肯定是唯一的。
找到12ttbckk167615type06string在文件中的位置,将余下的key抽取出来并进行注册和迁移。
文档评论(0)