暂无图片
Redis和tdsql数据异地同步(迁移)有没有案例?
我来答
分享
跑不快
2021-09-22
Redis和tdsql数据异地同步(迁移)有没有案例?

3

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
暂无图片
腾讯云数据库

Redis篇
日常听到的Redis有两个概念,支持Redis协议的ckv和腾讯云Redis。ckv+是腾讯自主研发的NoSQL系统,上云之前的主要key-value存储选型。但是目前已经不在云上售卖了。腾讯云上售卖的都是腾讯云Redis。广州集群的key-value是使用的是ckv+,而北京集群使用的是腾讯云Redis。

从ckv+到腾讯云Redis的直接数据迁移无法通过简单的工具完成,腾讯云Redis实例之间可以通过DTS(数据迁移服务)迁移(https://cloud.tencent.com/document/product/571/13748)。

数据迁移服务DTS是腾讯云提供的不同数据存储实例之前的统一迁移能力。从页面上的类型来看,提供以下类型存储作为迁入源,还是挺丰富的。并且在迁入实例类型中看到了TDSQL的身影,感觉有戏。

   回到Redis的迁移问题上来,确定ckv+无法迁移到Redis之后,剩下的路只有rdb文件导入了。那么接下来的第一个问题是怎么拿到ckv+的rdb文件呢?redis.oa.com 的控制台上是没有rdb下载链接的。腾讯云Redis就有,这里点个赞。经过helper同学的指导,找到了https://iwiki.woa.com/pages/viewpage.action?pageId=690861706 ckv+的cos冷备获取方法。这里要注意把文档看完,cos下载得到的是cdb的格式,需要使用文档附件的redis-dump-tool进行rdb的格式转换。
复制

TDSQL篇
Redis数据的迁移虽然没有工具,但是有详细的冷备迁移策略。再加上之前DTS服务中好像有TDSQL自动迁移的可能。这文章就要结束啦。https://cloud.tencent.com/document/product/571/53375,拿上参考文档就出发。等等,这里文档是Mysql版本的,应该没有问题吧?

首先按照一贯操作,业务方帮我们申请了资源。然后我打开DTS页面,填好对应的信息,测试连接通过,直接下一步。这里略过了表结构对齐,账户权限创建等等。这些可以按照上述文档的说明操作。然后我们遇到了第一个错误:

这个我见过,文档中提过要检查lower_case_table要一致。问问helper能不能设置然后重启。然后helper同学说搞不了,因为tdsql shard实例比较特殊,只能人肉操作。很容易有坑。行,我让业务方同学重新申请一个,毕竟是我没看文档的锅。

然后我又准备好了,觉得自己行了,各种检查终于通过了,然后,然后是这样的

Flush Table这个作为Mysql的操作之一,有兴趣的同学可以参考 https://blog.csdn.net/qingsong3333/article/details/77170864。可以简单理解为全库锁表。于是乎,再次请教helper同学,helper同学说TDSQL shard类型的实例搞不了这个。呃…那我干了个啥???

好吧,DTS的路堵死了。在和helper同学的一番努力下,找到了TDSQL sharding多源同步方案。可以的是只支持同地域实例的同步。还有一种可行方法就是为广州集群的TDSQL创建一个北京的灾备集群。按照helper同学的说法,低负载时能够实现准实时同步。但是此时北京集群是个只读集群,不符合北京集群也接入写流量的想法。暂时放弃。

兜兜转转又是最原始的sql文件导入方法,helper同学很贴心的送上了文档 https://cloud.tencent.com/document/product/557/47549,这次我仔细看了,dump阶段没有任何问题。然后到了导入阶段,死活搞不定。最后和helper同学确认这文档后半段是错误的,要使用mysql source sql文件的方法导入。

弄完Redis和TDSQL的迁移后,最大的问题就是新的集群数据和旧集群是割裂开的。是两个没有任何关联的集群。不能实现用户从旧集群无缝切换到新集群的目的。在参考了常见的高可用部署方案后,发现异地双活可能是我们能够采用的方案。在和helper同学确认之后发现redis和tdsql sharding都做不了双向同步。Tdsql mysql版本 https://cloud.tencent.com/document/product/571/59386能够通过DTS支持。所以当前这还只是个愿望,希望将来在业务需要时能够用上。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Tdsql 运维管理平台可以查询数据库中数据吗?
回答 1
可以的,tdsql(赤兔)运营管理平台可以支持95%上的运营操作。一些数据库基本的增删改查都可以在平台界面上进行完成,同时还支持在线ddl功能。
在做分布式数据库的执行计划时,如何获取到远端的stats(或者是否有获取远端的stats)?
回答 1
两地三中心中异地配置为灾备DCN实例复制;分布式数据库下一个实例下的跨中心的主从节点,proxy只会访问自己地域的节点,不区分延迟因子;
TDSQL-A 如何高效完成分布式查询 ?
回答 1
cynosdb架构没有了存储量的限制,指的是整体容量和传统部署方式的本地存储设备相比,对于具体的表而言,不管是独立表空间还是共享表空间,理论上限都是64T,独立表空间还会受文件系统的限制单表太大会造成
TDSQL MySQL在ARM服务器性能怎么优化?
回答 1
优化和CPU架构无关。即使你用默认参数,也能满足大部分业务场景。主要是看表设计、SQL写法(质量)和索引设计,以及业务场景实现。
cynosdb mysql 单表的极限是多少?
回答 2
cynosdb架构没有了存储量的限制,指的是整体容量和传统部署方式的本地存储设备相比,对于具体的表而言,不管是独立表空间还是共享表空间,理论上限都是64T,独立表空间还会受文件系统的限制单表太大会造成
客户端连接TDSQL时候是直接连接mysql服务的?
回答 2
看架构,不建议直连MySQL的。TDSQL一般是ProxyMySQL架构,其中Proxy有2个及以上,而MySQL保持高可用架构1主1备或1主多备。Proxy承接客户端连接,对语句进行分析处理,对于不
如果tdsql 的agent 宕机了,怎么做心跳检测和往schedule上送报告做master和slave的切换?
回答 1
1.tdsql宿主机上除了各个实例的agent外,会有一个ocagent,ocagent负责实例创建的介质安装、卸载;另外会做实例agent的存活检查和自动拉起(比如机器重启后的agent拉起、age
ORACLE迁移到TDSQL,窗口函数怎么处理?
回答 1
迁移到TDSQLforMySQL版吗?如果是,DB内核为MySQL,是不支持窗口函数的。
tdsql分布式事务死锁会自动解锁吗?
回答 2
会的,tdsql在请求锁后,会自动发起探索死锁机制,当发现死锁形成,会自动进行处理释放死锁
Tdsql 强同步机制下会等 从上面的binlogSQL 回放吗?
回答 1
不会等,只要IO线程拉到数据即可。因为基于行格式的binlog是具备幂等写的,如果增加了apply反而会使得平均时耗的上升和吞吐量的下降。
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~