有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

适用场景

Nacos 数据同步是通过数据库层面的数据导入,实现将自建的 Nacos 集群数据库中存储的配置数据、用户信息、命名空间数据、访问控制等信息全量迁移至 TSE Nacos 集群并进行实时增量同步。
Nacos 数据同步功能适用于以下场景:
自建 Nacos 迁移至 TSE Nacos,请参见 Nacos 迁移指南
Nacos 多活容灾与就近访问,请参见 Nacos 多活容灾指南

架构图





步骤1:TSE 创建 Nacos 实例

通过 TSE 控制台 创建 Nacos 实例,创建的环境信息需跟自建的 Nacos 一致。在数据同步的过程中,将会覆盖 TSE Nacos 实例原本的数据,所以建议 TSE Nacos 实例为空库,或在迁移前确保 TSE Nacos 的数据可以被覆盖。

步骤2:源 Nacos 数据库开启公网访问并检查配置

TSE Nacos 数据同步任务支持通过公网的方式,接入源数据库类型为自建数据库、腾讯云数据库、第三方云厂商数据库等,并实施数据同步。 在开始数据同步任务前,您需要先为您的源数据开启公网访问,并将数据同步任务的 IP 地址添加到源数据库的白名单中,以便数据同步任务可以与需要访问的数据库连通。 同时,请根据以下提供的校验项检查您的源 Nacos 数据库配置,校验失败将会导致数据同步失败。

操作指引

1. 根据源数据库所在地域,在下方获取对应地域 数据同步任务 的 IP 地址,将其加入到源数据库的白名单中。

自建数据库,请在防火墙设置中允许 数据同步任务 IP 地址访问。
Windows 系统:打开控制面板找到 Windows 防火墙,查看防火墙策略。
Linux 系统:请执行 iptables -L 命令,查看服务器防火墙策略。
腾讯云数据库或者 CVM 上的自建数据库,请参考如下指导将 数据同步任务的 IP 地址添加到安全组中。
登录源数据库,在实例列表,单击实例 ID,进入实例管理页面。
在实例管理页面,选择安全组页或者数据安全页, 添加 DTS 服务的 IP 地址到安全组中。


第三方云厂商数据库,请添加 数据同步任务 IP 地址到相关的安全组配置中。
数据同步任务的 IP 地址:
地域
数据同步任务 IP 地址
广州
111.230.198.143,118.89.34.161,123.207.84.254,139.199.74.159
上海
111.231.139.59,111.231.142.94,115.159.71.186,182.254.153.245
北京
123.207.145.84,211.159.157.165,211.159.160.104,58.87.92.66
成都
111.231.225.99,118.24.42.158
重庆
139.186.122.1/24,129.28.12.1/24,129.28.14.1/24,139.186.77.242,139.186.109.1/24, 139.186.131.1/23,94.191.102.144,94.191.98.210
杭州ec
111.231.139.59,111.231.142.94,115.159.71.186,182.254.153.245
南京
129.211.166.117,129.211.167.130
天津
154.8.246.150,154.8.246.48
深圳
118.126.124.6,118.126.124.83
中国香港
119.29.180.130,119.29.208.220,124.156.168.151,150.109.72.54
北京金融
62.234.240.36,62.234.241.241
深圳金融
118.89.251.206,139.199.90.75
上海金融
115.159.237.246,211.159.242.74
新加坡
119.28.103.40,119.28.104.184,119.28.116.123,150.109.11.113
雅加达
43.129.33.41,43.129.35.144
曼谷
150.109.164.203,150.109.164.82
孟买
119.28.246.130,119.28.246.18
首尔
119.28.150.71,119.28.157.173
东京
150.109.195.201,150.109.196.137
硅谷
49.51.38.216,49.51.39.189
弗吉尼亚
170.106.2.63,49.51.85.120
多伦多
45.113.70.156,45.113.70.6,49.51.10.104,49.51.9.221
法兰克福
49.51.132.38,49.51.133.85

2. 根据以下的配置校验项,检查您的源 Nacos 数据库配置正确:

校验项
说明
innodb_stats_on_metadata
源数据库环境变量参数 innodb_stats_on_metadata 需要设置为 OFF。 innodb_stats_on_metadata 参数开启时,每当查询 information_schema 元数据库里的表,Innodb 就会更新 information_schema.statistics 表,导致访问时间变长。关闭后可加快对于 schema 库表的访问。 MySQL 5.6.6 之前版本 innodb_stats_on_metadata 参数预设值为 ON,需要修改为 OFF。MySQL 5.6.6 及其以后的版本预设值为 OFF,不存在问题。
数据库版本
源数据库版本 ≤ 8.0
数据库权限
源数据库账号需要至少具备以下权限: RELOAD,LOCK TABLES,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHOW VIEW,PROCESS
实例参数检查
1. 源库变量 connect_timeout 必须大于10。 2. 源库表的 row_format 不能为 FIXED。 3. 源库表lower_case_table_names 变量必须为0。
BINLOG相关参数检查
1. log_bin 变量必须设置为 ON。 2. binlog_format 变量必须设置为 ROW。 3. binlog_row_image 必须设置为 FULL。 4. server_id 参数需要手动设置,且值不能设置为0。 5. 不允许设置 do_db,ignore_db。
外键依赖检查
外键依赖只能设置为 NO ACTION、RESTRICT。 部分库表迁移时,有外键依赖的表必须齐全。

步骤3:TSE Nacos 中创建迁移任务

在完成源 Nacos 集群数据库的公网访问配置后,请在 TSE Nacos 实例详情页面 - 迁移任务页面下配置并开启迁移任务。


接入类型:当前仅支持公网接入。
数据库类型:当前仅支持 MySQL 数据库。
数据库名:请输入源 Nacos 数据库名。
主机地址:请填入源 Nacos 数据库实例公网地址。
端口:请填入源 Nacos 数据库实例公网端口。
账号:请填入源 Nacos 数据库账号。
密码:请填入源 Nacos 数据库密码。
单击提交后,迁移任务将开始执行。

步骤4:数据同步

在完成迁移任务的配置后,将开启源 Nacos 数据库的全量+增量数据迁移,在任务执行过程当中支持向源 Nacos 数据库写入新的数据,目标TSE Nacos 数据库将会实时同步新的数据。请注意,如果您需要在迁移过程中保证新增服务的可用性,需要配合 Nacos 双注册双发现热迁移一起使用

注意事项

在执行数据迁移时,会占用一定源数据库实例资源,可能会导致源数据库实例负载上升,增加数据库自身压力。如果您的数据库配置过低,建议您在业务低峰期进行迁移。
默认采用无锁迁移来实现,迁移过程中对源数据库不加全局锁(FTWRL),仅对无主键的表加表锁,其他不加锁。
迁移任务执行时,会使用执行迁移任务的账号在源数据库中写入系统库__tencentdb__,用于记录迁移任务过程中的数据对比信息。
为保证后续数据对比问题可定位,迁移任务结束后不会删除源数据库中的__tencentdb__
__tencentdb__系统库占用空间非常小,约为源数据库存储空间的千分之一到万分之一(例如源数据库为50GB,则__tencentdb__系统库约为5MB-50MB) ,并且采用单线程,等待连接机制,所以对源数据库的性能几乎无影响,也不会抢占资源。

操作指引




您可以在 TSE Nacos 实例详情页 - 迁移任务页面下查看迁移任务当前运行的进度与状态:
当迁移任务执行至同步增量阶段后,任务将持续同步源 Nacos 数据库中的增量数据。
如果在迁移任务执行过程中出现错误,且检查您的源 Nacos 数据库配置无误,可通过 快速提工单,联系腾讯云助手协助。