网络
VPC网络安全策略放通
需要在其他云数据库实例所在的VPC放通【DTS实例的配置流程】中配置的公网IP的访问权限,一般包括网络ACL和实例安全组,具体可参考各厂商云数据库官方文档进行操作。
数据库添加白名单
数据库需要添加【DTS实例的配置流程】中配置的公网IP远程访问数据库的权限。不同类型的数据库添加白名单的方法可能不一样,具体可参考各数据库官方文档进行操作。
数据库账号及权限
数据库账号及权限要求,根据源库版本不同而不同,下面分开进行描述。
源库为MySQL 5.7
所需权限
- 对MySQL库的SELECT权限。
- 对待迁移库的SELECT,EVENT,TRIGGER权限。
- 部分全局权限。
RELOAD
LOCK TABLES
REPLICATION CLIENT
REPLICATION SLAVE
SHOW VIEW
PROCESS - 如果是整实例迁移,需要对所有数据库的查询权限。
参考赋权语句
GRANT SELECT ON mysql.* TO '迁移账号'@'%';
GRANT SELECT,EVENT,TRIGGER ON 待迁移的库.* TO '迁移账号'@'%';
GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT,REPLICATION SLAVE,SHOW VIEW,PROCESS ON *.* TO '迁移账号'@'%';
源库为MySQL 8.0
所需权限
- 对MySQL库的SELECT权限。
- 对待迁移库的SELECT,EXECUTE,EVENT,TRIGGER权限。
- 部分全局权限。
RELOAD
PROCESS
LOCK TABLES
REPLICATION CLIENT
REPLICATION SLAVE
SHOW VIEW
SHOW_ROUTINE - 如果是整实例迁移,需要对所有数据库的查询权限。
参考赋权语句
GRANT SELECT ON mysql.* TO '同步账号'@'%';
GRANT SELECT, EXECUTE, EVENT, TRIGGER ON 待同步的库.* TO '同步账号'@'%';
GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW, SHOW_ROUTINE ON *.* TO '同步账号'@'%';
注意如果待迁移对象包含用户自定义function,则在满足上述权限的基础上,目标端数据库同时需将log_bin_trust_function_creators参数设置为1,参考语句如下:
set global log_bin_trust_function_creators = 1;
数据库配置
- MySQL源数据库的binlog日志必须打开,且binlog日志格式必须为Row格式。
- 在磁盘空间允许的情况下,建议源数据库binlog保存时间越长越好,建议为3天。
- 源数据库expire_logs_days参数值为0,可能会导致迁移失败。
- 增量迁移时,必须设置MySQL源数据库的server-id。如果源数据库版本小于或等于MySQL5.6,server-id的取值范围在2-4294967296之间;如果源数据库版本大于或等于MySQL5.7,server-id的取值范围在1-4294967296之间。
- 源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下DTS不支持主备HA切换,因为DTS任务会因为位点不续接而中断导致无法恢复。