__tencentdb__
,用于记录迁移任务过程中的数据对比信息。__tencentdb__
。__tencentdb__
系统库占用空间非常小,约为源库存储空间的千分之一到万分之一(例如源库为50GB,则__tencentdb__
系统库约为5MB - 50MB) ,并且采用单线程,等待连接机制,所以对源库的性能几乎无影响,也不会抢占资源。CREATE USER '迁移账号'@'%' IDENTIFIED BY '迁移密码';GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHOW VIEW,PROCESS ON *.* TO '迁移账号'@'%';//源端若为腾讯云 MariaDB 数据库,需要提交工单进行 RELOAD 授权,其他场景请用户参照代码授权//如果选择迁移触发器和事件,需要同时授权 TRIGGER 和 EVENT 权限GRANT ALL PRIVILEGES ON `__tencentdb__`.* TO '迁移账号'@'%';GRANT SELECT ON *.* TO '迁移账号';
CREATE USER '迁移账号'@'%' IDENTIFIED BY '迁移密码';GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHOW VIEW, PROCESS ON *.* TO '迁移账号'@'%';//源端若为腾讯云 MariaDB 数据库,需要提交工单进行 RELOAD 授权,其他场景请用户参照代码授权//如果选择迁移触发器和事件,需要同时授权 TRIGGER 和 EVENT 权限GRANT ALL PRIVILEGES ON `__tencentdb__`.* TO '迁移账号'@'%';GRANT SELECT ON `mysql`.* TO '迁移账号'@'%';GRANT SELECT ON 待迁移的库.* TO '迁移账号';
datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP
,创建表后 SHOW CREATE TABLE 显示 datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp()
,在目标端 MySQL 解析的 DDL 为:datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP
。information_schema
, sys
, performance_schema
,__cdb_recycle_bin__
, __recycle_bin__
, __tencentdb__
, mysql
。DEFINER
对应的 user1( [DEFINER = user1])和迁移账号 user2 是否一致,如果不一致,迁移后 DTS 会修改 user1 在目标库中的 SQL SECURITY
属性,由 DEFINER
转换为 INVOKER
( [INVOKER = user1]),同时设置目标库中 DEFINER
为迁移账号 user2([DEFINER = 迁移账号 user2])。如果源库中视图定义过于复杂,可能会导致任务失败。STATEMENT
格式的 Binlog 语句,则会导致迁移失败。lower_case_tame_name
参数(表名大小敏感)保持一致,如果源数据库为腾讯云数据库 MariaDB,由于云数据库 MariaDB 只能在创建实例时修改 lower_case_tame_name
参数,所以用户需要在创建源库实例时确定大小写敏感规则,并在参数校验不一致时,修改目标库的 lower_case_tame_name
参数。ALTER VIEW
语句,遇到该语句任务跳过不迁移。STATEMENT
的数据。__tencentdb__
。 操作类型 | 支持的 SQL 操作 |
DML | INSERT、UPDATE、DELETE、REPLACE |
DDL | TABLE:CREATE TABLE、ALTER TABLE、DROP TABLE、TRUNCATE TABLE、RENAME TABLE VIEW:CREATE VIEW、DROP VIEW INDEX:CREATE INDEX、DROP INDEX DATABASE:CREATE DATABASE、ALTER DATABASE、DROP DATABASE 暂不支持 CREATE TABLE 表名 AS SELECT 语句。 |
类型 | 环境要求 |
源数据库要求 | 源库和目标库网络能够连通。 源库所在的服务器需具备足够的出口带宽,否则将影响迁移速率。 实例参数要求: 源库 server_id 参数需要手动设置,且值不能设置为0。 源库表的 row_format 不能设置为 FIXED。 源库和目标库 lower_case_table_names 变量必须设置为一致。 源库变量 connect_timeout 设置数值必须大于10。 建议开启 skip-name-resolve,减少连接超时的可能性。 Binlog 参数要求: 源库 log_bin 变量必须设置为 ON。 源库 binlog_format 变量必须设置为 ROW。 源库 binlog_row_image 变量必须设置为 FULL。 MariaDB 10.2 及以上版本,Percona 5.6 及以上版本 gtid_mode 变量不为 ON 时会报警告,建议打开 gtid_mode。 不允许设置 do_db, ignore_db 过滤条件。 源实例为从库时,log_slave_updates 变量必须设置为 ON。 建议源库 Binlog 日志至少保留3天及以上,否则可能会因任务暂停/中断时间大于 Binlog 日志保留时间,造成任务无法续传,进而导致任务失败。 外键依赖: 外键依赖只能设置为 NO ACTION,RESTRICT 两种类型。 部分库表迁移时,有外键依赖的表必须齐全。 DTS 对数据类型为 FLOAT 的迁移精度为38位,对数据类型为 DOUBLE 的迁移精度为308位,需要确认是否符合预期。 环境变量 innodb_stats_on_metadata 必须设置为 OFF。 |
目标数据库要求 | 目标库的版本必须大于等于源库的版本。 目标库的空间大小须是源库待迁移库表空间的1.2倍以上。(全量数据迁移会并发执行 INSERT 操作,导致目标数据库的表产生碎片,因此全量迁移完成后目标数据库的表存储空间很可能会比源实例的表存储空间大) 目标库不能有和源库同名的表、视图等迁移对象。 目标库 max_allowed_packet 参数设置数值至少为4M。 |
本页内容是否解决了您的问题?