__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 授权,其他场景请用户参照代码授权//源库为阿里云数据库时,不需要授权 SHOW DATABASES,其他场景则需要授权。阿里云数据库授权,请参考 https://help.aliyun.com/document_detail/96101.html//如果选择迁移触发器和事件,需要同时授权 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 授权,其他场景请用户参照代码授权//源库为阿里云数据库时,不需要授权 SHOW DATABASES,其他场景则需要授权。阿里云数据库授权,请参考 https://help.aliyun.com/document_detail/96101.html//如果选择迁移触发器和事件,需要同时授权 TRIGGER 和 EVENT 权限GRANT ALL PRIVILEGES ON `__tencentdb__`.* TO '迁移账号'@'%';GRANT SELECT ON `mysql`.* TO '迁移账号'@'%';GRANT SELECT ON 待迁移的库.* TO '迁移账号';
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。 MySQL 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。 |
配置项 | 说明 |
创建模式 | 选择新建任务。 |
计费模式 | |
源实例类型 | 请根据您的源数据库类型选择,购买后不可修改。此处选择 MariaDB。 用户的源数据库如果为自建 MariaDB,或者其他云厂商的 MariaDB,这里选择 MariaDB;用户的源数据库如果为腾讯云的云数据库 MariaDB,云数据库 MariaDB 分为三种内核版本(MySQL/MariaDB/Percona),这里无需区分内核版本,依然选择 MariaDB。 |
源实例地域 | 这里指 DTS 数据迁移服务的源端地域,如果源数据库为腾讯云数据库,这里请选择源数据库所属地域,如果源库为自建数据库或其他云厂商数据库,这里请选择离源数据库最近的一个地域,以便 DTS 选择最优迁移路径,降低迁移时长。 |
目标实例类型 | 请根据您的目标数据库类型选择,购买后不可修改。此处选择 MariaDB。 |
目标实例地域 | 选择目标数据库所属地域。 |
规格 | |
数量 | 单次购买最多可购买10个迁移任务。 |
设置类型 | 配置项 | 说明 |
任务设置 | 任务名称 | 设置一个具有业务意义的名称,便于任务识别。 |
| 运行模式 | 立即执行:完成任务校验通过后立即启动任务。 定时执行:需要配置一个任务执行时间,到时间后启动任务。 |
| 自动重试 | 设置后,迁移任务因网络异常等引起的任务临时中断,DTS 将在设置的时间范围内自动重试和恢复任务,不需要用户手动操作。 支持设置的时间范围为5分钟-720分钟。 |
源库设置 | 源库类型 | 购买时选择的源库类型,不可修改。 |
| 服务提供商 | 自建数据库(包括云服务器上的自建)或者腾讯云数据库,请选择“普通”;第三方云厂商数据库,请选择对应的服务商。本场景选择“普通”。 |
| 所属地域 | 购买时选择的源库地域,不可修改。 |
| 接入类型 | 公网:源数据库可以通过公网 IP 访问。 云主机自建:源数据库部署在 腾讯云服务器 CVM 上。 专线接入:源数据库可以通过 专线接入 方式与腾讯云私有网络打通。 VPN接入:源数据库可以通过 VPN 连接 方式与腾讯云私有网络打通。 云数据库:源数据库属于腾讯云数据库实例。 云联网:源数据库可以通过 云联网 与腾讯云私有网络打通。 |
| 私有网络专线网关/VPN 网关 | 专线接入时只支持私有网络专线网关,请确认网关关联网络类型。VPN 网关,请选择通过 VPN 网关接入的 VPN 网关实例。 |
| 私有网络 | 选择私有网络专线网关和 VPN 网关关联的私有网络和子网。 |
| 主机地址 | 源库访问 IP 地址或域名。 |
| 端口 | 源库访问端口。 |
| 账号 | 源库的数据库账号,账号权限需要满足要求。 |
| 密码 | 源库的数据库账号的密码。 |
| 连接方式 | SSL 安全连接指 DTS 与数据库通过 SSL(Secure socket layer)安全连接,对传输链路进行加密。 选择 SSL 安全连接可能会增加数据库的连接响应时间,一般腾讯云内网链路相对较安全,无需开启 SSL 安全连接,采用公网/专线等传输方式,并且对数据安全要求较高的场景,需要开启 SSL 安全连接。选择 SSL 安全连接前,需要先在数据库中开启 SSL 加密。 |
目标库设置 | 目标库类型 | 购买时选择的目标库类型,不可修改。 |
| 所属地域 | 购买时选择的目标库地域,不可修改。 |
| 接入类型 | 根据您的场景选择,本场景选择“云数据库”。 |
| 数据库实例 | 选择目标库的实例 ID。 |
| 账号 | 目标库的数据库账号,账号权限需要满足要求。 |
| 密码 | 目标库的数据库账号的密码。 |
| 连接方式 | SSL 安全连接指 DTS 与数据库通过 SSL(Secure socket layer)安全连接,对传输链路进行加密。 选择 SSL 安全连接可能会增加数据库的连接响应时间,一般腾讯云内网链路相对较安全,无需开启 SSL 安全连接,采用公网/专线等传输方式,并且对数据安全要求较高的场景,需要开启 SSL 安全连接。选择 SSL 安全连接前,需要先在数据库中开启 SSL 加密。 |
配置项 | 说明 |
迁移类型 | 请根据您的场景选择。 结构迁移:迁移数据库中的库、表等结构化的数据。 全量迁移:迁移整个数据库,迁移数据仅针对任务发起时,源数据库已有的内容,不包括任务发起后源库实时新增的数据写入。 全量 + 增量迁移:迁移数据包括任务发起时源库的已有内容,也包括任务发起后源库实时新增的数据写入。如果迁移过程中源库有数据写入,需要不停机平滑迁移,请选择此场景。 |
迁移对象 | 整个实例:迁移整个实例,但不包括系统库,如 information_schema、mysql、performance_schema、sys。 指定对象:迁移指定对象。 |
高级迁移对象 | 支持迁移存储过程(Procedure)、函数(Function)、触发器(Trigger)、事件(Event)。 高级对象的迁移是一次性动作,仅支持迁移在任务启动前源库中已有的高级对象,在任务启动后,新增的高级对象不会同步到目标库中。 存储过程和函数,在“源库导出”阶段进行迁移;触发器和事件,没有增量任务,在任务结束时进行迁移,有增量任务,在用户单击完成操作后开始迁移,所以单击完成后,任务的过渡时间会略微增加。 |
已选对象 | 支持库表映射(库表重命名),将鼠标悬浮在库名、表名上即显示编辑按钮,单击后可在弹窗中填写新的名称。 选择高级对象进行迁移时,建议不要进行库表重命名操作,否则可能会导致高级对象迁移失败。 |
是否同步 Online DDL 临时表 | 如果使用 gh-ost、pt-osc 工具对源库中的表执行 Online DDL 操作,DTS 支持将 Online DDL 变更产生的临时表迁移到目标库。 勾选 gh-ost,DTS 会将 gh-ost 工具产生的临时表名(`_表名_ghc`、`_表名_gho`、`_表名_del`)迁移到目标库。 勾选 pt-osc, DTS 会将 pt-osc 工具产生的临时表名(`_表名_new`、 `_表名_old`)迁移到目标库。 |
本页内容是否解决了您的问题?