关于sql:Redis和tdsql数据异地同步迁移案例

46次阅读

共计 1665 个字符,预计需要花费 5 分钟才能阅读完成。

Redis 篇

日常听到的 Redis 有两个概念,反对 Redis 协定的 ckv 和腾讯云 Redis。ckv+ 是腾讯自主研发的 NoSQL 零碎,上云之前的次要 key-value 存储选型。然而目前曾经不在云上售卖了。腾讯云上售卖的都是腾讯云 Redis。广州集群的 key-value 是应用的是 ckv+,而北京集群应用的是腾讯云 Redis。

从 ckv+ 到腾讯云 Redis 的间接数据迁徙无奈通过简略的工具实现,腾讯云 Redis 实例之间能够通过 DTS(数据迁徙服务)迁徙(https://cloud.tencent.com/doc…)。

数据迁徙服务 DTS 是腾讯云提供的不同数据存储实例之前的对立迁徙能力。从页面上的类型来看,提供以下类型存储作为迁入源,还是挺丰盛的。并且在迁入实例类型中看到了 TDSQL 的身影,感觉有戏。回到 Redis 的迁徙问题上来,确定 ckv+ 无奈迁徙到 Redis 之后,剩下的路只有 rdb 文件导入了。那么接下来的第一个问题是怎么拿到 ckv+ 的 rdb 文件呢?http://redis.oa.com 的管制台上是没有 rdb 下载链接的。腾讯云 Redis 就有。

https://iwiki.woa.com/pages/v… ckv+ 的 cos 冷备获取办法。这里要留神把文档看完,cos 下载失去的是 cdb 的格局,须要应用文档附件的 redis-dump-tool 进行 rdb 的格局转换。

TDSQL 篇
Redis 数据的迁徙尽管没有工具,然而有具体的冷备迁徙策略。再加上之前 DTS 服务中如同有 TDSQL 主动迁徙的可能。这文章就要完结啦。https://cloud.tencent.com/doc…,
拿上参考文档就登程。等等,这里文档是 Mysql 版本的。

首先依照一贯操作,业务方帮咱们申请了资源。而后我关上 DTS 页面,填好对应的信息,测试连贯通过,间接下一步。这里略过了表构造对齐,账户权限创立等等。这些能够依照上述文档的阐明操作。而后咱们遇到了第一个谬误:

文档中提过要查看 lower_case_table 要统一。问问 helper 能不能设置而后重启。而后 helper 同学说搞不了,因为 tdsql shard 实例比拟非凡,只能人肉操作。很容易有坑。行,我让业务方同学从新申请一个,毕竟是我没看文档的锅。而后我又筹备好了,感觉本人行了,各种查看终于通过了,而后,而后是这样的

lush Table 这个作为 Mysql 的操作之一,有趣味的同学能够参考 https://blog.csdn.net/qingson…。
能够简略了解为全库锁表。于是乎,再次求教 helper 同学,helper 同学说 TDSQL shard 类型的实例搞不了这个。呃…那我干了个啥???

好吧,DTS 的路堵死了。在和 helper 同学的一番致力下,找到了 TDSQL sharding 多源同步计划。能够的是只反对同地区实例的同步。还有一种可行办法就是为广州集群的 TDSQL 创立一个北京的灾备集群。依照 helper 同学的说法,低负载时可能实现准实时同步。然而此时北京集群是个只读集群,不合乎北京集群也接入写流量的想法。临时放弃。

兜兜转转又是最原始的 sql 文件导入办法,helper 同学很贴心的送上了文档 https://cloud.tencent.com/doc…,
这次我认真看了,dump 阶段没有任何问题。而后到了导入阶段,死活搞不定。最初和 helper 同学确认这文档后半段是谬误的,要应用 mysql source sql 文件的办法导入。

弄完 Redis 和 TDSQL 的迁徙后,最大的问题就是新的集群数据和旧集群是割裂开的。是两个没有任何关联的集群。不能实现用户从旧集群无缝切换到新集群的目标。在参考了常见的高可用部署计划后,发现异地双活可能是咱们可能采纳的计划。在和 helper 同学确认之后发现 redis 和 tdsql sharding 都做不了双向同步。Tdsql mysql 版本 https://cloud.tencent.com/doc…
可能通过 DTS 反对。所以以后这还只是个欲望,心愿未来在业务须要时可能用上。

正文完
 0