网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务

DRS预检查项一览表

更新时间:2025-02-10 GMT+08:00
分享

DRS同步过程一般包含四个阶段:任务启动阶段、全量阶段、增量阶段、结束任务阶段(单全量任务则包含三个阶段)。为了确保同步各个阶段的平顺,DRS在任务正式启动前,会对任务源数据库、目标数据库中的参数、对象等信息进行自动化的扫描和检测,帮助您提高数据同步的成功率。

概览

根据同步任务的源数据库类型,查看预检查信息:

  • 源库为GaussDB的同步链路预检查一览表

GaussDB集中式版->GaussDB集中式版

GaussDB集中式版->GaussDB分布式版

GaussDB分布式版->GaussDB集中式版

GaussDB分布式版->GaussDB分布式版

MySQL->MySQL

表1 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下最小权限:

    SELECT、SHOW VIEW、EVENT。

  • 全量+增量、增量同步需要具备如下最小权限:

    SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

详见MySQL权限授权方法

目标数据库权限

  • 提供的目标数据库账号必须拥有如下权限:

    SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES。

    RDS for MySQL实例的root账户默认已具备上述权限。

  • 当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。

详见MySQL权限授权方法

版本类

源数据库版本

支持5.5、5.6、5.7、8.0版本

详见支持的数据库

目标数据库版本

支持5.5、5.6、5.7、8.0版本

详见支持的数据库

同步版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见版本是否符合从低到高或者同版本迁移

参数类

GTID状态

源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

详见源库的GTID功能检查

性能参数

源数据库log_slave_updates参数需设置为开启状态,否则会导致同步失败。

详见校验源数据库参数log_slave_updates

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

最大允许传输包的大小

DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。

详见检查源库的max_allowed_packet参数

DRS在同步数据量大或同步大字段情况下,目标数据库的max_allowed_packet参数值过小导致目标库数据无法写入造成全量同步失败。

详见检查目标库的max_allowed_packet参数

sql_mode取值检查

同步的对象中包含引擎为MyISAM的表,则目标数据库sql_mode不能包含no_engine_substitution参数,否则可能会导致同步失败。

详见源数据库是否存在不允许使用的sql_mode值

增量同步类

索引列长度检查

源数据库索引列长度必须符合要求。

详见源数据库索引列长度检查

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

Binlog保留时长

在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。

  • 源数据库为自建MySQL时,通过设置expire_logs_days参数设置Binlog保留时间。建议将expire_logs_day参数设置在合理的范围,确保恢复时断点处的Binlog尚未过期,以保证任务中断后的顺利恢复。
  • 源数据库为RDS for MySQL时,设置Binlog保留时间可参考设置RDS for MySQL本地Binlog日志清理

详见源数据库binlog保留时间检查

server_id值设置

增量同步时,必须设置MySQL源数据库的server_id。

  • 如果源数据库版本小于或等于MySQL5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于MySQL5.7,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。

-

附加列检查

单增量同步任务中如果目标数据库不存在新增附加列,会导致任务失败。

详见目标数据库附加列检查

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例实例状态必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

字符序

目标库和源库的collation_server需要一致。

详见collation_server的一致性检查

时钟

目标库和源库的时钟需要一致。

-

时区

目标库和源库的time_zone需要一致。

详见time_zone的一致性检查

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见源数据库和目标数据库表名大小写敏感性检查

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致。

详见数据库参数group_concat_max_len一致性检查

InnoDB检查模式

目标库和源库innodb_strict_mode需要一致。

详见数据库参数innodb_strict_mode一致性检查

数据块加密参数

目标库和源库block_encryption_mode需要一致。

-

SQL模式

目标库和源库sql_mode需要一致。

详见数据库参数sql_mode的一致性检查

同步对象类

选择对象检查

  • 支持表、主键索引、唯一索引、普通索引、存储过程、视图、函数的同步。
  • 仅支持MyISAM和InnoDB表的同步。
  • 不支持事件(EVENT)和触发器(TRIGGER)的同步。
  • 不支持数据库参数和系统数据库同步。

-

库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。

详见映射数据库对象检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

关联对象检查

相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。

详见迁移对象未选择外键依赖的表

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见源端存在不支持的外键引用操作

同名检查

除了MySQL系统数据库之外,当目标库和源库同名时,目标数据库中若存在与源库同名的表,则表结构必须与源库保持一致。

详见目标数据库是否存在和源数据库同名的数据库

库表名规范检查

  • 源数据库中的库名不能包含:'<`>/\"以及非ASCII字符。
  • 源数据库中的表名、视图名不能包含:'<>/\"以及非ASCII字符。
  • 源数据库中的库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。
  • 映射到目标库中的库名不能包含:“.”、 “<”、“>”、“”、和“'”。
  • 使用非字母、非数字、非下划线等字符作为库表名称,或库表映射后名称包含中划线、井号时,名称的长度请不要超过42个字符。

-

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

MySQL->PostgreSQL

表2 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下最小权限:SELECT。
  • 全量+增量同步需要具备如下最小权限:

    SELECT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

详见MySQL权限授权方法

目标数据库权限

RDS for PostgreSQL实例的账号默认已具有权限。

-

版本类

源数据库版本

支持5.5、5.6、5.7、8.0版本

详见支持的数据库

目标数据库版本

支持9.5、9.6、10、11、12、13、14、15、16版本

详见支持的数据库

参数类

GTID状态

源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

详见源库的GTID功能检查

性能参数

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

最大允许传输包的大小

DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。

详见检查源库的max_allowed_packet参数

增量同步类

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

server_id值设置

增量同步时,必须设置MySQL源数据库的server_id。

  • 如果源数据库版本小于或等于MySQL5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于MySQL5.7,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

  • 同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。
  • 源数据库中不支持的表字段类型有:xml、geometry、point、lineString、polygon、geometrycollection、multipoint、multilinestring、multipolygon、json。

-

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例实例状态必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

时区

目标库和源库的time_zone需要一致。

详见time_zone的一致性检查

表结构检查

目标库和源库的表结构需要一致。

详见表结构一致性检查

同步对象类

选择对象检查

  • 仅支持同步表结构、表数据、索引信息。
  • 仅支持同步MyISAM和InnoDB表。
  • 不支持同步存储过程等其他数据库对象。

-

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

有主键表正确性检查

不建议在数据库中使用非精确数值类型做主键,该特性影响 DRS 增量场景下对 UPDATE、DELETE语句的同步,导致任务失败。

-

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见源端存在不支持的外键引用操作

同名检查

除了MySQL系统数据库之外,目标数据库不能包含与源数据库同名的数据库。

详见目标数据库是否存在和源数据库同名的数据库

库表名规范检查

源数据库中的库名和表名不能包含:'<`>/\"以及非ASCII字符。

-

对象名长度检查

目标数据库对象名最大支持63个字符。

详见源数据库对象名长度检查

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

MySQL->GaussDB集中式

表3 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

SELECT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

详见MySQL权限授权方法

目标数据库权限

  • 库级权限:需要使用root或其他有Sysadmin角色的DATABASE用户登录postgres基库,赋予用户DATABASE的CREATE、CONNECT权限。
  • SCHEMA级权限:需要使用root、或其他有Sysadmin角色的DATABASE用户、或使用对象的OWNER用户登录数据库,赋予用户SCHEMA的CREATE、USAGE权限。
  • 表级权限:需要使用root、或其他有Sysadmin角色的DATABASE用户、或使用对象的OWNER用户登录数据库 ,赋予用户SCHEMA下所有表的SELECT,UPDATE,INSERT,ALTER、INDEX和DELETE权限。

-

版本类

源数据库版本

支持5.5、5.6、5.7、8.0版本

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本

详见支持的数据库

参数类

GTID状态

源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

详见源库的GTID功能检查

性能参数

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

最大允许传输包的大小

DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。

详见检查源库的max_allowed_packet参数

增量同步类

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

Binlog保留时长

在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。

  • 源数据库为自建MySQL时,通过设置expire_logs_days参数设置Binlog保留时间。建议将expire_logs_day参数设置在合理的范围,确保恢复时断点处的Binlog尚未过期,以保证任务中断后的顺利恢复。
  • 源数据库为RDS for MySQL时,设置Binlog保留时间可参考设置RDS for MySQL本地Binlog日志清理

详见源数据库binlog保留时间检查

server_id值设置

增量同步时,必须设置MySQL源数据库的server_id。

  • 如果源数据库版本小于或等于MySQL5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于MySQL5.7,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

不支持的数据类型有:xml、包含bit类型的json、geometry、point、lineString、polygon、geometrycollection、multipoint、multilinestring、multipolygon。

详见源数据库字段类型检查

数据库兼容类型检查

目标数据库创建时指定兼容模式,并与源数据库保持兼容。

详见数据库兼容类型检查

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例的状态必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

时区

目标库和源库的time_zone需要一致。

详见time_zone的一致性检查

表结构检查

目标库和源库的表结构需要一致。

详见表结构一致性检查

同步对象类

选择对象检查

  • 仅支持同步表结构、表数据、索引信息。
  • 仅支持MyISAM和InnoDB表的同步。
  • 不支持同步存储过程等其他数据库对象。
  • 不支持同步MySQL含虚拟列的表。
  • 不支持同步既是无主键表,又是分区表的自建表,可能会导致任务失败。

-

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见源端存在不支持的外键引用操作

同名检查

除了MySQL系统数据库之外,目标数据库不能包含与源数据库同名的数据库。

详见目标数据库是否存在和源数据库同名的数据库

库表名规范检查

  • 源数据库中的库名和表名不能包含:.<'>/\以及非ASCII字符。
  • 对象名同步到目标库后会转换成小写,因此选择的源库表中不能存在表名称字母相同但大小写不同的表。

-

对象名长度检查

目标数据库对象名最大支持63个字符。

详见源数据库对象名长度检查

源数据库检查

选择的同步对象在源数据库中必须存在。

详见源库选择对象预检查

目标数据库检查

任务配置的映射数据库必须在目标库已经存在。

-

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

MySQL->GaussDB(DWS)

表4 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

SELECT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

详见MySQL权限授权方法

目标数据库权限

目标数据库账号必须具有每张表的如下权限:INSERT、SELECT、UPDATE、DELETE、CONNECT、CREATE。

-

版本类

源数据库版本

支持5.5、5.6、5.7、8.0版本

详见支持的数据库

目标数据库版本

支持8.1.3、8.2.0版本

详见支持的数据库

参数类

GTID状态

源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

详见源库的GTID功能检查

性能参数

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

最大允许传输包的大小

DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。

详见检查源库的max_allowed_packet参数

增量同步类

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

Binlog保留时长

在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。

  • 源数据库为自建MySQL时,通过设置expire_logs_days参数设置Binlog保留时间。建议将expire_logs_day参数设置在合理的范围,确保恢复时断点处的Binlog尚未过期,以保证任务中断后的顺利恢复。
  • 源数据库为RDS for MySQL时,设置Binlog保留时间可参考设置RDS for MySQL本地Binlog日志清理

详见源数据库binlog保留时间检查

server_id值设置

增量同步时,必须设置MySQL源数据库的server_id。

  • 如果源数据库版本小于或等于MySQL5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于MySQL5.7,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

不支持的数据类型有:xml、包含bit类型的json、geometry、point、lineString、polygon、geometrycollection、multipoint、multilinestring、multipolygon。

详见源数据库字段类型检查

同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。

-

数据库兼容类型检查

目标数据库创建时指定兼容模式,并与源数据库保持兼容。

详见数据库兼容类型检查

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例的状态必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

时区

目标库和源库的time_zone需要一致。

详见time_zone的一致性检查

表结构检查

目标库和源库的表结构需要一致。

详见表结构一致性检查

同步对象类

选择对象检查

  • 支持同步表、索引、约束(主键、空、非空)。
  • 支持同步MyISAM和InnoDB表。
  • 不支持同步视图、外键、存储过程、触发器、函数、事件、虚拟列、唯一约束和唯一索引。
  • 不支持同步既是无主键表,又是分区表的自建表。

-

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见源端存在不支持的外键引用操作

同名检查

除了MySQL系统数据库之外,目标数据库不能包含与源数据库同名的数据库。

详见目标数据库是否存在和源数据库同名的数据库

库表名规范检查

  • 源数据库中的库名和表名不能包含:.<'>/\以及非ASCII字符。
  • 库级同步,在增量同步过程中,不能在源库创建名称字母相同但大小写不同的表。
  • 对象名同步到目标库后会转换成小写,因此选择的源库表中不能存在表名称字母相同但大小写不同的表。

-

对象名长度检查

目标数据库对象名最大支持63个字符。

详见源数据库对象名长度检查

源数据库检查

选择的同步对象在源数据库中必须存在。

详见源库选择对象预检查

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

MySQL->TaurusDB

表5 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

需要具备如下权限:

SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

详见MySQL权限授权方法

目标数据库权限

  • 目标数据库账号必须拥有如下权限:

    SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES。TaurusDB实例的root账户默认已具备上述权限。

  • 当目标数据库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。

-

版本类

源数据库版本

支持5.5、5.6、5.7、8.0版本

详见支持的数据库

目标数据库版本

支持8.0版本

详见支持的数据库

同步版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见版本是否符合从低到高或者同版本迁移

参数类

GTID状态

源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

详见源库的GTID功能检查

性能参数

源数据库log_slave_updates参数需设置为开启状态,否则会导致同步失败。

详见校验源数据库参数log_slave_updates

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

最大允许传输包的大小

DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。

详见检查源库的max_allowed_packet参数

DRS在同步数据量大或同步大字段情况下,目标数据库的max_allowed_packet参数值过小导致目标库数据无法写入造成全量同步失败。

详见检查目标库的max_allowed_packet参数

sql_mode取值检查

同步的对象中包含引擎为MyISAM的表,则目标数据库sql_mode不能包含no_engine_substitution参数,否则可能会导致同步失败。

详见源数据库是否存在不允许使用的sql_mode值

增量同步类

索引列长度检查

源数据库索引列长度必须符合要求。

详见源数据库索引列长度检查

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

Binlog保留时长

在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。

  • 源数据库为自建MySQL时,通过设置expire_logs_days参数设置Binlog保留时间。建议将expire_logs_day参数设置在合理的范围,确保恢复时断点处的Binlog尚未过期,以保证任务中断后的顺利恢复。
  • 源数据库为RDS for MySQL时,设置Binlog保留时间可参考设置RDS for MySQL本地Binlog日志清理

详见源数据库binlog保留时间检查

server_id值设置

增量同步时,必须设置MySQL源数据库的server_id。

  • 如果源数据库版本小于或等于MySQL5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于MySQL5.7,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。

-

附加列检查

对目标库中缺少附加列的库表添加对应列。

详见目标数据库附加列检查

目标数据库检查

状态检查

目标数据库实例的状态必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

字符序

目标库和源库的collation_server需要一致。

详见collation_server的一致性检查

时钟

目标库和源库的时钟需要一致。

-

时区

目标库和源库的time_zone需要一致。

详见time_zone的一致性检查

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见源数据库和目标数据库表名大小写敏感性检查

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致。

详见数据库参数group_concat_max_len一致性检查

InnoDB检查模式

目标库和源库innodb_strict_mode需要一致。

详见数据库参数innodb_strict_mode一致性检查

数据块加密参数

目标库和源库block_encryption_mode需要一致。

-

SQL模式

目标库和源库sql_mode需要一致。

详见数据库参数sql_mode的一致性检查

同步对象类

选择对象检查

  • 支持表、主键索引、唯一索引、普通索引、存储过程、视图、函数的同步。
  • 仅支持MyISAM和InnoDB表的同步。
  • 不支持事件(EVENT)和触发器(TRIGGER)的同步。
  • 不支持数据库参数和系统数据库同步。

-

库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。

详见映射数据库对象检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

关联对象检查

相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。

详见迁移对象未选择外键依赖的表

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见源端存在不支持的外键引用操作

同名检查

除了MySQL系统数据库之外,当目标库和源库同名时,目标数据库中如果存在与源库同名的表,则表结构必须与源库保持一致。

详见目标数据库是否存在和源数据库同名的数据库

库表名规范检查

  • 源数据库中的库名、表名、视图名不能包含:'<`>/\以及非ASCII字符。
  • 源数据库中的库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。

-

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

MySQL->MariaDB

表6 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下最小权限:

    SELECT、SHOW VIEW、EVENT。

  • 全量+增量、增量同步需要具备如下最小权限:

    SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

详见MySQL权限授权方法

目标数据库权限

  • 提供的目标数据库账号必须拥有如下权限:

    SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES、INDEX。

    RDS for MariaDB实例的root账户默认已具备上述权限。

-

版本类

源数据库版本

支持5.5、5.6、5.7、8.0版本

详见支持的数据库

目标数据库版本

支持10.5版本

详见支持的数据库

参数类

GTID状态

源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

详见源库的GTID功能检查

性能参数

源数据库log_slave_updates参数需设置为开启状态,否则会导致同步失败。

详见校验源数据库参数log_slave_updates

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

sql_mode取值检查

同步的对象中包含引擎为MyISAM的表,则目标数据库sql_mode不能包含no_engine_substitution参数,否则可能会导致同步失败。

详见源数据库是否存在不允许使用的sql_mode值

增量同步类

索引列长度检查

源数据库索引列长度必须符合要求。

详见源数据库索引列长度检查

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

Binlog保留时长

在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。

  • 源数据库为自建MySQL时,通过设置expire_logs_days参数设置Binlog保留时间。建议将expire_logs_day参数设置在合理的范围,确保恢复时断点处的Binlog尚未过期,以保证任务中断后的顺利恢复。
  • 源数据库为RDS for MySQL时,设置Binlog保留时间可参考设置RDS for MySQL本地Binlog日志清理

详见源数据库binlog保留时间检查

server_id值设置

增量同步时,必须设置MySQL源数据库的server_id。

  • 如果源数据库版本小于或等于MySQL5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于MySQL5.7,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。

-

附加列检查

单增量同步任务中如果目标数据库不存在新增附加列,会导致任务失败。

详见目标数据库附加列检查

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例实例状态必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

字符序

目标库和源库的collation_server需要一致。

详见collation_server的一致性检查

时钟

目标库和源库的时钟需要一致。

-

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见源数据库和目标数据库表名大小写敏感性检查

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致。

详见数据库参数group_concat_max_len一致性检查

InnoDB检查模式

目标库和源库innodb_strict_mode需要一致。

详见数据库参数innodb_strict_mode一致性检查

SQL模式

目标库和源库sql_mode需要一致。

详见数据库参数sql_mode的一致性检查

同步对象类

选择对象检查

  • 支持表、主键索引、唯一索引、普通索引、存储过程、视图、函数的同步。
  • 仅支持MyISAM和InnoDB表的同步。
  • 不支持事件(EVENT)和触发器(TRIGGER)的同步。
  • 不支持数据库参数和系统数据库同步。

-

库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。

详见映射数据库对象检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

关联对象检查

相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。

详见迁移对象未选择外键依赖的表

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见源端存在不支持的外键引用操作

同名检查

除了MySQL系统数据库之外,当目标库和源库同名时,目标数据库中若存在与源库同名的表,则表结构必须与源库保持一致。

详见目标数据库是否存在和源数据库同名的数据库

库表名规范检查

  • 源数据库中的库名不能包含:'<`>/\"以及非ASCII字符。
  • 源数据库中的表名、视图名不能包含:'<>/\"以及非ASCII字符。
  • 源数据库中的库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。
  • 映射到目标库中的库名不能包含:“.”、 “<”、“>”、“”、和“'”。
  • 使用非字母、非数字、非下划线等字符作为库表名称,或库表映射后名称包含中划线、井号时,名称的长度请不要超过42个字符。

-

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

MySQL->GaussDB分布式版

表7 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步:SELECT。
  • 全量+增量和增量同步:SELECT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

详见MySQL权限授权方法

目标数据库权限

  • 库级权限:需要使用root或其他有Sysadmin角色的DATABASE用户登录postgres基库,赋予用户DATABASE的CREATE、CONNECT权限。
  • SCHEMA级权限:需要使用 root、或其他有Sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库,赋予用户SCHEMA的CREATE、USAGE权限。
  • 表级权限:需要使用 root、或其他有Sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库 ,赋予用户SCHEMA下表的DML相关权限(SELECT权限在处理无主键表时需要)。
  • 目标库使用gsloader等工具创建相关系统表(如 public.pgxc_copy_error_log,public.gs_copy_summary)时,DRS访问相关系统表需要有系统表的all privilege权限,详细信息可参考《GaussDB工具参考》

-

版本类

源数据库版本

支持5.5、5.6、5.7、8.0版本

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本

详见支持的数据库

参数类

GTID状态

源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

详见源库的GTID功能检查

性能参数

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

最大允许传输包的大小

DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。

详见检查源库的max_allowed_packet参数

增量同步类

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

Binlog保留时长

在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。

  • 源数据库为自建MySQL时,通过设置expire_logs_days参数设置Binlog保留时间。建议将expire_logs_day参数设置在合理的范围,确保恢复时断点处的Binlog尚未过期,以保证任务中断后的顺利恢复。
  • 源数据库为RDS for MySQL时,设置Binlog保留时间可参考设置RDS for MySQL本地Binlog日志清理

详见源数据库binlog保留时间检查

server_id值设置

增量同步时,必须设置MySQL源数据库的server_id。

  • 如果源数据库版本小于或等于MySQL5.6,server_id的取值范围在2-4294967296之间。
  • 如果源数据库版本大于或等于MySQL5.7,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

不支持的数据类型有:xml、包含bit类型的json、geometry、point、lineString、polygon、geometrycollection、multipoint、multilinestring、multipolygon、interval。

详见源数据库字段类型检查

数据库兼容类型检查

目标数据库创建时指定兼容模式,并与源数据库保持兼容。

详见数据库兼容类型检查

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例的状态必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

时区

目标库和源库的time_zone需要一致。

详见time_zone的一致性检查

表结构检查

目标库和源库的表结构需要一致。

详见表结构一致性检查

同步对象类

选择对象检查

  • 仅支持同步表结构、表数据、索引信息。
  • 仅支持同步有主键表,不支持同步无主键表。
  • 仅支持MyISAM和InnoDB表的同步。
  • 不支持同步存储过程等其他数据库对象。
  • 虚拟列会被同步为普通列,且不写入任何数据,也不做增量同步。
  • 不支持同步既是无主键表,又是分区表的自建表,可能会导致任务失败。

-

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见源端存在不支持的外键引用操作

同名检查

除了MySQL系统数据库之外,目标数据库不能包含与源数据库同名的数据库。

详见目标数据库是否存在和源数据库同名的数据库

库表名规范检查

  • 源数据库中的库名和表名不能包含:.<'>/\以及非ASCII字符。
  • 对象名同步到目标库后会转换成小写,因此选择的源库表中不能存在表名称字母相同但大小写不同的表。

-

对象名长度检查

目标数据库对象名最大支持63个字符。

详见源数据库对象名长度检查

源数据库检查

选择的同步对象在源数据库中必须存在。

详见源库选择对象预检查

目标数据库检查

任务配置的映射数据库必须在目标库已经存在。

-

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

PostgreSQL->PostgreSQL

表8 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下权限:

    数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,系统表pg_catalog.pg_authid的select权限(用于同步用户的密码)。

  • 全量+增量、增量同步需要具备如下权限:

    数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,系统表pg_catalog.pg_authid的SELECT权限(用于同步用户的密码),无主键表的UPDATE、DELETE和TRUNCATE权限,REPLICATION连接权限。

-

目标数据库权限

  • 库级同步
    • 如果目标库不是postgres,需要具有CREATEDB权限。
    • 如果目标库是postgres,需要具有postgres库的CONNECT和CREATE权限、对模式public的USAGE和CREATE权限。
  • 表级同步
    • 如果需要同步库,需要具有CREATEDB权限。
    • 如果需要同步模式,需要具有模式所在库的CONNECT权限、模式所在库上的CREATE权限。
    • 如果需要同步模式下的对象,需要具有模式所在库的CONNECT权限、对象所在模式的USAGE权限、对象所在模式上的CREATE权限。
  • 同步用户:需要具有CREATEROLE权限。
  • 同步用户权限:同步用户的default privilege需要为系统默认值,否则可能导致目标库与源库的对象权限不一致。

-

版本类

源数据库版本

支持9.4、9.5、9.6、10、11、12、13、14、15、16版本

详见支持的数据库

目标数据库版本

支持9.5、9.6、10、11、12、13、14、15、16版本

详见支持的数据库

同步版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见版本是否符合从低到高或者同版本迁移

参数类

性能参数

目标数据库的BLOCK_SIZE参数值必须大于或等于源数据库的BLOCK_SIZE参数值。

详见源库与目标库的BLOCK_SIZE参数值是否相同

源数据库和目标数据库的参数PASSWORD_ENCRYPTION需要一致。

-

源数据库max_replication_slots参数值必须大于当前已使用的复制槽数量。

详见源库参数MAX_REPLICATION_SLOTS校验

源数据库的max_wal_senders参数值必须等于或大于max_replication_slots参数值。

详见源数据库参数max_wal_senders校验

源数据库中无主键表的replica identity属性必须为full。

-

源数据库中表的主键列toast属性为main、external、extended时,其replica identity属性必须为full。

详见主键列复制属性的校验

源数据库的wal_level必须配置为logical。

详见源数据库参数WAL_LEVEL校验

增量同步类

表字段检查

  • 同步对象中是如果存在包含bytea、text类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致OOM。
  • 支持的字段类型有:数字类型、货币类型、字符类型、二进制数据类型、日期/时间类型、布尔类型、枚举类型、几何类型、网络地址类型、位串类型、文本搜索类型、UUID类型、XML类型、JSON类型、数组、复合类型、范围类型。

-

无日志表检查

库级同步时,不支持同步无日志表(UNLOGGED TABLE)的DML。

-

参数检查

如果做增量同步,且同步对象中包含外键、触发器或事件触发器,则目标数据库的session_replication_role参数必须设置为replica,同步结束后,此参数需改为origin。

详见目标库参数session_replication_role检查

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例的状态必须正常。

-

区域类型及排序规则检查

待同步数据库的lc_ctype或lc_collate在目标数据库不支持。

详见目标数据库区域类型及排序规则检查

货币金额格式检查

源数据库和目标数据库的货币金额格式需要一致。

详见货币金额格式是否一致

同步对象类

选择对象检查

  • 支持库表级同步。
  • 不支持实例级同步。
  • 不支持系统模式(“pg_”开头的任何模式、“information_schema”、“sys”、“utl_raw”、“dbms_lob”、“dbms_output”和“dbms_random”)、系统表、系统用户、表空间、外部数据包装器、外部服务器、用户映射、发布、订阅等其他对象。

-

所选表不能包含延迟约束的表。

详见所选表是否包含延迟约束

同步对象依赖和关联的对象需要一起同步。

-

库表列名规范检查

  • 库名不能包含+"%'\<>。
  • 模式名和表名不能包含".'<>。
  • 列名不能包含"和'。

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

  • 全量+增量实时同步任务,源数据库不能为备机。
  • 全量实时同步任务,源数据库可以为备机,但是hot_standby_feedback参数必须为on。

详见源数据库是否处于备机状态

任务启动前请确保源数据库中不存在长时间未提交的事务。

-

源数据库的SSL状态正常。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

PostgreSQL->GaussDB(DWS)

表9 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

全量+增量同步需要具备如下权限:

数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE、DELETE和TRUNCATE权限,REPLICATION连接权限。

-

目标数据库权限

  • 库级同步:需要具有CREATEDB权限。
  • 表级同步
    • 如果需要同步库,需要具有CREATEDB权限。
    • 如果需要同步模式,需要具有模式所在库的CONNECT权限、模式所在库上的CREATE权限。
    • 如果需要同步模式下的对象,需要具有模式所在库的CONNECT权限、对象所在模式的USAGE权限、对象所在模式上的CREATE权限。

-

版本类

源数据库版本

支持9.4、9.5、9.6、10、11、12、13、14、15、16版本

详见支持的数据库

目标数据库版本

支持8.1.3、8.2.0版本

详见支持的数据库

参数类

性能参数

源数据库max_replication_slots参数值必须大于当前已使用的复制槽数量。

详见源库参数MAX_REPLICATION_SLOTS校验

源数据库的max_wal_senders参数值必须等于或大于max_replication_slots参数值。

详见源数据库参数max_wal_senders校验

源数据库中无主键表的replica identity属性必须为full。

-

源数据库中表的主键列toast属性为main、external、extended时,其replica identity属性必须为full。

详见主键列复制属性的校验

源数据库的wal_level必须配置为logical。

详见源数据库参数WAL_LEVEL校验

增量同步类

表字段检查

  • 支持tinyint、smallint、int、bigint、numeric、decimal、char、bpchar、varchar、text、date、time、timetz、timestamp、timestamptz、interval等GaussDB(DWS)兼容PostgreSQL的数据类型。
  • 不支持xml、line、domain类型同步。

-

无日志表检查

库级同步时,不支持同步无日志表(UNLOGGED TABLE)的DML。

-

同步对象类

选择对象检查

  • 支持模式、表、索引、约束、序列、自定义类型的同步。
  • 表级同步时,仅支持表、序列的同步。
  • 不支持实例级同步。
  • 不支持系统模式(“pg_”开头的任何模式、“information_schema”、“sys”、“utl_raw”、“dbms_lob”、“dbms_output”和“dbms_random”)、系统表。“pg_”开头的任何模式、“information_schema”、“sys”、“utl_raw”、“dbms_lob”、“dbms_output”和“dbms_random”)、系统表。
  • 不支持既是无主键表,又是分区表的自建表。

-

所选表不能包含延迟约束的表。

详见所选表是否包含延迟约束

同步对象依赖和关联的对象需要同步,常见的关联关系:主外键关联表、表继承子表引用父表、表分区子分区表引用分区表、表自增列引用序列等。

-

库表列名规范检查

  • 库名不能包含+"%'\<>。
  • 模式名和表名不能包含".'<>。
  • 列名不能包含"和'。

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

  • 增量实时同步任务,源数据库不能为备机。
  • 全量实时同步任务,源数据库可以为备机,但是hot_standby_feedback参数必须为on。

详见源数据库是否处于备机状态

任务启动前请确保源数据库中不存在长时间未提交的事务。

-

源数据库的SSL状态正常。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

PostgreSQL->GaussDB集中式

表10 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下权限:

    数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限。

  • 全量+增量同步需要具备如下权限:

    数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE、DELETE和TRUNCATE权限,REPLICATION连接权限。

-

目标数据库权限

具备sysadmin角色或者以下最小权限:

需要DATABASE的CONNECT和CREATE权限、SCHEMA的USAGE和CREATE权限、表的INSERT、UPDATE、DELETE、SELECT、ALTER、INDEX、COMMENT权限。

-

版本类

源数据库版本

支持9.4、9.5、9.6、10、11、12、13、14、15、16版本

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本

详见支持的数据库

参数类

性能参数

源数据库max_replication_slots参数值必须大于当前已使用的复制槽数量。

详见源库参数MAX_REPLICATION_SLOTS校验

源数据库的max_wal_senders参数值必须等于或大于max_replication_slots参数值。

详见源数据库参数max_wal_senders校验

源数据库中无主键表的replica identity属性必须为full。

-

源数据库中表的主键列toast属性为main、external、extended时,其replica identity属性必须为full。

详见主键列复制属性的校验

源数据库的wal_level必须配置为logical。

详见源数据库参数WAL_LEVEL校验

增量同步类

表字段检查

  • 支持tinyint、smallint、int、bigint、numeric、decimal、char、bpchar、varchar、text、date、time、timetz、timestamp、timestamptz、interval等GaussDB兼容PostgreSQL的数据类型。
  • 不支持xml、line、domain、自建数据类型同步。

-

无日志表检查

库级同步时,不支持同步无日志表(UNLOGGED TABLE)的DML。

-

一致性检查

schema和表检查

目标库和源库的schema、表需要一致。

-

同步对象类

选择对象检查

  • 支持模式、表、主键与唯一约束、表数据、序列的同步。
  • 不支持实例级同步。
  • 不支持系统模式(以下模式在目标库为系统模式,不支持同步:"pg_toast", "cstore", "snapshot", "sys", "dbms_job", "dbms_perf", "pg_catalog", "information_schema", "utl_file", "dbms_output", "dbms_random", "utl_raw", "dbms_sql", "dbms_lob", "dbe_perf", "pkg_service", "pkg_util", "dbe_file", "dbe_random", "dbe_output", "dbe_raw", "dbe_sql", "dbe_lob", "dbe_task", "blockchain", "db4ai", "dbe_pldebugger", "sqladvisor", "dbe_application_info", "dbe_match", "dbe_pldeveloper", "dbe_scheduler", "dbe_session", "dbe_utility", "dbe_sql_util")、系统表。
  • 不支持既是无主键表,又是分区表的自建表。

-

所选表不能包含延迟约束的表。

详见所选表是否包含延迟约束

同步对象依赖和关联的对象需要同步,常见的关联关系:视图引用表、视图引用视图、主外键关联表、表继承子表引用父表、表分区子分区表引用分区表、表自增列引用序列等。

-

库表列名规范检查

  • 库名不能包含+"%'\<>。
  • 模式名和表名不能包含".'<>。
  • 列名不能包含"和'。

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

  • 增量实时同步任务,源数据库不能为备机。
  • 全量实时同步任务,源数据库可以为备机,但是hot_standby_feedback参数必须为on。

详见源数据库是否处于备机状态

任务启动前请确保源数据库中不存在长时间未提交的事务。

-

源数据库的SSL状态正常。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

PostgreSQL->GaussDB分布式版

表11 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下权限:

    数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限。

  • 全量+增量同步需要具备如下权限:

    数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE、DELETE和TRUNCATE权限,REPLICATION连接权限。

-

目标数据库权限

具备sysadmin角色或者以下最小权限:

需要DATABASE的CONNECT和CREATE权限、SCHEMA的USAGE和CREATE权限、表的INSERT、UPDATE、DELETE、SELECT、ALTER、INDEX、COMMENT权限。

-

版本类

源数据库版本

支持9.4、9.5、9.6、10、11、12、13、14、15、16版本

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本

详见支持的数据库

参数类

性能参数

源数据库max_replication_slots参数值必须大于当前已使用的复制槽数量。

详见源库参数MAX_REPLICATION_SLOTS校验

源数据库的max_wal_senders参数值必须等于或大于max_replication_slots参数值。

详见源数据库参数max_wal_senders校验

源数据库中无主键表的replica identity属性必须为full。

-

源数据库中表的主键列toast属性为main、external、extended时,其replica identity属性必须为full。

详见主键列复制属性的校验

源数据库的wal_level必须配置为logical。

详见源数据库参数WAL_LEVEL校验

增量同步类

表字段检查

  • 支持tinyint、smallint、int、bigint、numeric、decimal、char、bpchar、varchar、text、date、time、timetz、timestamp、timestamptz、interval等GaussDB兼容PostgreSQL的数据类型。
  • 不支持xml、line、domain、自建数据类型同步。

-

无日志表检查

库级同步时,不支持同步无日志表(UNLOGGED TABLE)的DML。

-

一致性检查

schema和表检查

目标库和源库的schema、表需要一致。

-

同步对象类

选择对象检查

  • 支持模式、表、主键与唯一约束、表数据、序列的同步。
  • 不支持实例级同步。
  • 不支持系统模式(以下模式在目标库为系统模式,不支持同步:"pg_toast", "cstore", "snapshot", "sys", "dbms_job", "dbms_perf", "pg_catalog", "information_schema", "utl_file", "dbms_output", "dbms_random", "utl_raw", "dbms_sql", "dbms_lob", "dbe_perf", "pkg_service", "pkg_util", "dbe_file", "dbe_random", "dbe_output", "dbe_raw", "dbe_sql", "dbe_lob", "dbe_task", "blockchain", "db4ai", "dbe_pldebugger", "sqladvisor", "dbe_application_info", "dbe_match", "dbe_pldeveloper", "dbe_scheduler", "dbe_session", "dbe_utility", "dbe_sql_util")、系统表。
  • 不支持既是无主键表,又是分区表的自建表。

-

所选表不能包含延迟约束的表。

详见所选表是否包含延迟约束

同步对象依赖和关联的对象需要同步,常见的关联关系:主外键关联表、表继承子表引用父表、表分区子分区表引用分区表、表自增列引用序列等。

-

库表列名规范检查

  • 库名不能包含+"%'\<>。
  • 模式名和表名不能包含".'<>。
  • 列名不能包含"和'。

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

  • 增量实时同步任务,源数据库不能为备机。
  • 全量实时同步任务,源数据库可以为备机,但是hot_standby_feedback参数必须为on。

详见源数据库是否处于备机状态

任务启动前请确保源数据库中不存在长时间未提交的事务。

-

源数据库的SSL状态正常。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Oracle->MySQL

表12 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

全量同步:

需要具有CREATE SESSION,SELECT ANY DICTIONARY,针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

全量+增量、增量同步:

  • 12c及以上版本租户模式:
    • 12c及以上版本CDB数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。
    • 12c及以上版本PDB数据库同步时,除了需要具有PDB内的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;),还需要具有CDB的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING,SET CONTAINER(GRANT SET CONTAINER TO <userName> CONTAINER=ALL;)权限。
  • 12c及以上版本非租户模式:

    需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

  • 11g及以下版本数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

-

目标数据库权限

必须拥有如下权限:SELECT、INSERT、CREATE、DROP、UPDATE、ALTER、DELETE、INDEX。

-

Oracle源数据库用户MAINTAINED属检查

Oracle 12c及以上版本不支持使用ORACLE_MAINTAINED=Y的用户账号进行增量同步(system/sys除外),因为该属性的账号无日志解析权限。

-

版本类

源数据库版本

支持10g、11g、12c、18c、19c、21c版本

详见支持的数据库

目标数据库版本

支持5.5、5.6、5.7、8.0版本

详见支持的数据库

增量同步类

索引列长度检查

源数据库索引列长度必须符合要求。

详见源数据库索引列长度检查

异构数据库兼容性

  • 不建议以字符串类型作为主键或唯一键,因为Oracle的字符串作为主键、唯一键时区分空格,而MySQL不区分,可能导致数据不一致和死锁问题。
  • Oracle中number(p, s)字段的精度不要超过p: [1, 38], s:[p-65, min(p, 30)]的精度表示范围。其中,s取值依赖于p的取值变化,即下限为p-65, 上限为p或30中取最小值。例如:当p=1, s的取值范围是[-64, 1]。当p=38, s取值范围是[-27, 30]。int字段的值不要超过(65,0)的精度表示范围。原因是MySQL数字的表示范围比Oracle小。

详见异构数据库兼容性风险须知

虚拟列检查

源数据库中不能存在虚拟列。

详见源库表结构是否存在虚拟列

字符集兼容性检查

目标数据库字符集需要完全兼容源库字符集。

详见字符集兼容性检查

归档日志和补充日志检查

增量同步时,源库Oracle需要开启日志归档模式和最小补充日志,所需同步表必须开启PK/UI或以ALL级别的补充日志,不限制库级或表级补充日志方式,如果只开启表级补充日志,重建或者RENAME表后需要重新设置;请确保以上配置在同步过程中始终保持开启状态。

-

目标数据库检查

状态检查

目标数据库实例的状态必须正常。

-

源数据库检查

物理复制库检查

增量阶段源库为Oracle物理备库(PHYSICAL STANDBY)时不支持解析lob类型数据(无法生成数据字典),如果增量同步的表中出现lob类型会导致增量同步异常。

详见物理复制库检查

同步对象类

选择对象检查

  • 支持表级同步,或者通过文件导入对象。
  • 支持库、表结构、主键、唯一键、普通索引、表数据的同步,其他数据库对象暂不支持,如存储过程、触发器、函数、序列、包、同义词、用户等。

-

表结构检查

同步表结构时源库和目标库表结构一致。

-

表字段类型检查

源数据库表含有不支持的表字段类型。支持的表字段类型有: VARCHAR,VARCHAR2,NVARCHAR2,NUMBER,FLOAT,LONG,DATE,BINARY_FLOAT,BINARY_DOUBLE,RAW,LONG RAW,CHAR,NCHAR,CLOB,NCLOB,BLOB,ROWID,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE。

详见源库表字段类型检查

排序字符集检查

目标数据库的主键或者唯一键列,在不区分大小写的排序字符集下,即“…_ci”结尾的不区分大小写的排序字符集,可能在数据迁移时发生“重复键”报错。

详见目标库排序字符集检查

无主键表检查

由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。

详见源库无主键表检查

数据约束检查

数据传输时可能出现写入目标库的数据不满足约束检查而失败或丢失的风险。

详见存在约束不验证添加前数据

字符集检查

源数据库仅支持同步如下字符集:ZHS16GBK、AL32UTF8、UTF8、US7ASCII、WE8MSWIN1252、WE8ISO8859P1、WE8ISO8859P2、WE8ISO8859P4、WE8ISO8859P5、WE8ISO8859P7、WE8ISO8859P9、WE8ISO8859P13、WE8ISO8859P15。

详见源数据库字符集是否支持

同名检查

对象名同步到目标库后会转换成小写,为避免同步失败,选择的源库表中不能存在表名称字母相同但大小写不同的表。

详见目标数据库是否存在和源数据库同名的数据库

库表名规范检查

  • 库名、表名等数据库对象名称支持英文字符、“#”、“$”、“_”等符号, DRS不支持非ASCII字符、“. ”、 “>”、 “<”、 “\”、 “`”、 “|”、 “,”、 “? ”、 “! ”、 “"”和 “'”等字符。
  • 源数据库中的库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Oracle->TaurusDB

表13 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

全量同步:

需要具有CREATE SESSION,SELECT ANY DICTIONARY,针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

全量+增量同步:

  • 12c及以上版本租户模式:
    • 12c及以上版本CDB数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。
    • 12c及以上版本PDB数据库同步时,除了需要具有PDB内的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;),还需要具有CDB的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING,SET CONTAINER(GRANT SET CONTAINER TO <userName> CONTAINER=ALL;)权限。
  • 12c及以上版本非租户模式:

    需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

  • 11g及以下版本数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。
  • 12c及以上版本不支持使用ORACLE_MAINTAINED=Y的用户账号进行增量同步(system/sys除外),因为该属性的账号无日志解析权限。

-

目标数据库权限

必须拥有如下权限:SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、INDEX、EVENT、RELOAD、CREATE VIEW、CREATE ROUTINE、TRIGGER。

-

版本类

源数据库版本

支持10g、11g、12c、18c、19c、21c版本

详见支持的数据库

目标数据库版本

支持8.0版本

详见支持的数据库

增量同步类

索引列长度检查

源数据库索引列长度必须符合要求。

详见源数据库索引列长度检查

异构数据库兼容性

  • 不建议以字符串类型作为主键或唯一键,因为Oracle的字符串作为主键、唯一键时区分空格,而MySQL不区分,可能导致数据不一致和死锁问题。
  • Oracle中number(p, s)字段的精度不要超过p: [1, 38], s:[p-65, min(p, 30)]的精度表示范围。其中,s取值依赖于p的取值变化,即下限为p-65, 上限为p或30中取最小值。例如:当p=1, s的取值范围是[-64, 1]。当p=38, s取值范围是[-27, 30]。int字段的值不要超过(65,0)的精度表示范围。原因是MySQL数字的表示范围比Oracle小。

详见异构数据库兼容性风险须知

虚拟列检查

源数据库中不能存在虚拟列。

详见源库表结构是否存在虚拟列

归档日志和补充日志检查

增量同步时,源库Oracle需要开启日志归档模式和最小补充日志,所需同步表必须开启PK/UI或以ALL级别的补充日志,不限制库级或表级补充日志方式,如果只开启表级补充日志,重建或者RENAME表后需要重新设置;请确保以上配置在同步过程中始终保持开启状态。

-

目标数据库检查

状态检查

目标数据库实例的状态必须正常。

-

源数据库检查

物理复制库检查

增量阶段源库为Oracle物理备库(PHYSICAL STANDBY)时不支持解析lob类型数据(无法生成数据字典),如果增量同步的表中出现lob类型会导致增量同步异常。

详见物理复制库检查

同步对象类

选择对象检查

支持库、表结构、主键、唯一键、普通索引、表数据的同步,其他数据库对象暂不支持,如存储过程、触发器、函数、序列、包、同义词、用户等。

-

表字段类型检查

源数据库表含有不支持的表字段类型。支持的表字段类型有: VARCHAR,VARCHAR2,NVARCHAR2,NUMBER,FLOAT,LONG,DATE,BINARY_FLOAT,BINARY_DOUBLE,RAW,LONG RAW,CHAR,NCHAR,CLOB,NCLOB,BLOB,ROWID,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE。

详见源库表字段类型检查

排序字符集检查

目标数据库的主键或者唯一键列,在不区分大小写的排序字符集下,即“…_ci”结尾的不区分大小写的排序字符集,可能在数据迁移时发生“重复键”报错。

详见目标库排序字符集检查

无主键表检查

由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。

详见源库无主键表检查

数据约束检查

数据传输时可能出现写入目标库的数据不满足约束检查而失败或丢失的风险。

详见存在约束不验证添加前数据

字符集检查

源数据库仅支持同步如下字符集:ZHS16GBK、AL32UTF8、UTF8、US7ASCII、WE8MSWIN1252、WE8ISO8859P1、WE8ISO8859P2、WE8ISO8859P4、WE8ISO8859P5、WE8ISO8859P7、WE8ISO8859P9、WE8ISO8859P13、WE8ISO8859P15。

详见源数据库字符集是否支持

同名检查

对象名同步到目标库后会转换成小写,为避免同步失败,选择的源库表中不能存在表名称字母相同但大小写不同的表。

详见目标数据库是否存在和源数据库同名的数据库

库表名规范检查

  • 库名和表名不支持字符有:非ASCII字符、“. ”、 “>”、 “<”、 “\”、 “`”、 “|”、 “,”、 “? ”、 “! ”、 “"”和 “'”。
  • 源数据库中的库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Oracle->GaussDB集中式

表14 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

全量同步:

需要具有CREATE SESSION,SELECT ANY DICTIONARY,针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

全量+增量、增量同步:

  • 12c及以上版本租户模式:
    • 12c及以上版本CDB数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。
    • 12c及以上版本PDB数据库同步时,除了需要具有PDB内的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;),还需要具有CDB的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING,SET CONTAINER(GRANT SET CONTAINER TO <userName> CONTAINER=ALL;)权限。
  • 12c及以上版本非租户模式:

    需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

  • 11g及以下版本数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

-

目标数据库权限

  • 库级权限:需要使用root或其他有Sysadmin角色的DATABASE用户登录postgres基库,赋予用户DATABASE的CREATE、CONNECT权限。

    授权语句:GRANT CREATE, CONNECT ON DATABASE <database> TO <user>;

  • SCHEMA级权限:需要使用 root、或其他有Sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库,赋予用户SCHEMA的CREATE、USAGE权限。

    授权语句:GRANT CREATE, USAGE ON SCHEMA <schema> TO <user>;

  • 表级权限:需要使用 root、或其他有Sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库 ,赋予用户SCHEMA下表的DML相关权限(SELECT权限在处理无主键表时需要)。

    授予SCHEMA下所有表的DML权限:GRANT SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER ON ALL TABLES IN SCHEMA <schema> TO <user>;

    授予SCHEMA下指定表的DML权限:GRANT SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER ON TABLE <schema.table> TO <user>;

  • 目标库使用gsloader等工具创建相关系统表(如 public.pgxc_copy_error_log,public.gs_copy_summary)时,DRS访问相关系统表需要有系统表的all privilege权限,详细信息可参考《GaussDB工具参考》

-

Oracle源数据库用户MAINTAINED属检查

Oracle 12c及以上版本不支持使用ORACLE_MAINTAINED=Y的用户账号进行增量同步(system/sys除外),因为该属性的账号无日志解析权限。

-

版本类

源数据库版本

支持10g、11g、12c、18c、19c、21c版本

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本

详见支持的数据库

增量同步类

字符集兼容性检查

目标数据库字符集需要完全兼容源库字符集。

详见字符集兼容性检查

虚拟列检查

源数据库中不能存在虚拟列。

详见源库表结构是否存在虚拟列

归档日志和补充日志检查

增量同步时,源库Oracle需要开启日志归档模式和最小补充日志,所需同步表必须开启PK/UI或以ALL级别的补充日志,不限制库级或表级补充日志方式,如果只开启表级补充日志,重建或者RENAME表后需要重新设置;请确保以上配置在同步过程中始终保持开启状态。

-

源数据库检查

物理复制库检查

增量阶段源库为Oracle物理备库(PHYSICAL STANDBY)时不支持解析lob类型数据(无法生成数据字典),如果增量同步的表中出现lob类型会导致增量同步异常。

详见物理复制库检查

同步对象类

选择对象检查

  • 全量同步时支持表、普通索引、主键与唯一约束、数据的同步。
  • 增量同步时支持表的实时同步。

-

目标数据库对象一致性检查

检查目标库对象是否满足同步要求。

详见目标数据库对象一致性检查

外键检查

同步的表要禁用外键,因为DRS并行回放会使得不同表之间的写入顺序和源库不一致,可能会触发外键约束限制,造成同步失败。

详见是否禁用了外键或者同步的表在目标库上是否有外键

表字段类型检查

源数据库表含有不支持的表字段类型。支持的表字段类型有: VARCHAR,VARCHAR2,NVARCHAR2,NUMBER,FLOAT,LONG,DATE,BINARY_FLOAT,BINARY_DOUBLE,RAW,LONG RAW,CHAR,NCHAR,CLOB,NCLOB,BLOB,ROWID,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE。

详见源库表字段类型检查

无主键表检查

由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。

详见源库无主键表检查

数据约束检查

数据传输时可能出现写入目标库的数据不满足约束检查而失败或丢失的风险。

详见存在约束不验证添加前数据

字符集检查

源数据库仅支持同步如下字符集:ZHS16GBK、AL32UTF8、UTF8、US7ASCII、WE8MSWIN1252、WE8ISO8859P1、WE8ISO8859P2、WE8ISO8859P4、WE8ISO8859P5、WE8ISO8859P7、WE8ISO8859P9、WE8ISO8859P13、WE8ISO8859P15。

详见源数据库字符集是否支持

库表名规范检查

库名、表名等数据库对象名称支持英文字符、“#”、“$”、“_”等符号, DRS不支持非ASCII字符、“. ”、 “>”、 “<”、 “\”、 “`”、 “|”、 “,”、 “? ”、 “! ”、 “"”和 “'”等字符。对象名同步到目标库后会转换成小写,为避免同步失败,选择的源库表中不能存在表名称字母相同但大小写不同的表。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Oracle->GaussDB分布式版

表15 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

全量同步:

需要具有CREATE SESSION,SELECT ANY DICTIONARY,针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

全量+增量、增量同步:

  • 12c及以上版本租户模式:
    • 12c及以上版本CDB数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。
    • 12c及以上版本PDB数据库同步时,除了需要具有PDB内的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;),还需要具有CDB的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING,SET CONTAINER(GRANT SET CONTAINER TO <userName> CONTAINER=ALL;)权限。
  • 12c及以上版本非租户模式:

    需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

  • 11g及以下版本数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

-

目标数据库权限

  • 库级权限:需要使用root或其他有Sysadmin角色的DATABASE用户登录postgres基库,赋予用户DATABASE的CREATE、CONNECT权限。

    授权语句:GRANT CREATE, CONNECT ON DATABASE <database> TO <user>;

  • SCHEMA级权限:需要使用 root、或其他有Sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库,赋予用户SCHEMA的CREATE、USAGE权限。

    授权语句:GRANT CREATE, USAGE ON SCHEMA <schema> TO <user>;

  • 表级权限:需要使用 root、或其他有Sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库 ,赋予用户SCHEMA下表的DML相关权限(SELECT权限在处理无主键表时需要)。

    授予SCHEMA下所有表的DML权限:GRANT SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER ON ALL TABLES IN SCHEMA <schema> TO <user>;

    授予SCHEMA下指定表的DML权限:GRANT SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER ON TABLE <schema.table> TO <user>;

  • 目标库使用gsloader等工具创建相关系统表(如 public.pgxc_copy_error_log,public.gs_copy_summary)时,DRS访问相关系统表需要有系统表的all privilege权限,详细信息可参考《GaussDB工具参考》

-

Oracle源数据库用户MAINTAINED属检查

Oracle 12c及以上版本不支持使用ORACLE_MAINTAINED=Y的用户账号进行增量同步(system/sys除外),因为该属性的账号无日志解析权限。

-

版本类

源数据库版本

支持10g、11g、12c、18c、19c、21c版本

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本

详见支持的数据库

增量同步类

字符集兼容性检查

目标数据库字符集需要完全兼容源库字符集。

详见字符集兼容性检查

虚拟列检查

源数据库中不能存在虚拟列。

详见源库表结构是否存在虚拟列

归档日志和补充日志检查

增量同步时,源库Oracle需要开启日志归档模式和最小补充日志,所需同步表必须开启PK/UI或以ALL级别的补充日志,不限制库级或表级补充日志方式,如果只开启表级补充日志,重建或者RENAME表后需要重新设置;请确保以上配置在同步过程中始终保持开启状态。

-

源数据库检查

物理复制库检查

增量阶段源库为Oracle物理备库(PHYSICAL STANDBY)时不支持解析lob类型数据(无法生成数据字典),如果增量同步的表中出现lob类型会导致增量同步异常。

详见物理复制库检查

同步对象类

选择对象检查

  • 全量同步时支持表、普通索引、主键与唯一约束、数据的同步。
  • 增量同步时支持表的实时同步。

-

目标数据库对象一致性检查

检查目标库对象是否满足同步要求。

详见目标数据库对象一致性检查

外键检查

同步的表要禁用外键,因为DRS并行回放会使得不同表之间的写入顺序和源库不一致,可能会触发外键约束限制,造成同步失败。

详见是否禁用了外键或者同步的表在目标库上是否有外键

表字段类型检查

源数据库表含有不支持的表字段类型。支持的表字段类型有: VARCHAR,VARCHAR2,NVARCHAR2,NUMBER,FLOAT,LONG,DATE,BINARY_FLOAT,BINARY_DOUBLE,RAW,LONG RAW,CHAR,NCHAR,CLOB,NCLOB,BLOB,ROWID,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE。

详见源库表字段类型检查

无主键表检查

由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。

详见源库无主键表检查

数据约束检查

数据传输时可能出现写入目标库的数据不满足约束检查而失败或丢失的风险。

详见存在约束不验证添加前数据

字符集检查

源数据库仅支持同步如下字符集:ZHS16GBK、AL32UTF8、UTF8、US7ASCII、WE8MSWIN1252、WE8ISO8859P1、WE8ISO8859P2、WE8ISO8859P4、WE8ISO8859P5、WE8ISO8859P7、WE8ISO8859P9、WE8ISO8859P13、WE8ISO8859P15。

详见源数据库字符集是否支持

库表名规范检查

库名、表名等数据库对象名称支持英文字符、“#”、“$”、“_”等符号, DRS不支持非ASCII字符、“. ”、 “>”、 “<”、 “\”、 “`”、 “|”、 “,”、 “? ”、 “! ”、 “"”和 “'”等字符。对象名同步到目标库后会转换成小写,为避免同步失败,选择的源库表中不能存在表名称字母相同但大小写不同的表。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Oracle->GaussDB(DWS)

表16 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

全量同步:

需要具有CREATE SESSION,SELECT ANY DICTIONARY,针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

全量+增量、增量同步:

  • 12c及以上版本租户模式:
    • 12c及以上版本CDB数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。
    • 12c及以上版本PDB数据库同步时,除了需要具有PDB内的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;),还需要具有CDB的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING,SET CONTAINER(GRANT SET CONTAINER TO <userName> CONTAINER=ALL;)权限。
  • 12c及以上版本非租户模式:

    需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

  • 11g及以下版本数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

-

目标数据库权限

  • 目标数据库不存在DATABASE时需要有建库的权限;不存在SCHEMA时需要有在database中创建schema的权限;不存在表时需要有在对应schema中创建表的权限。
  • 对于每张表需要有INSERT、SELECT、UPDATE、DELETE权限。

-

Oracle源数据库用户MAINTAINED属检查

Oracle 12c及以上版本不支持使用ORACLE_MAINTAINED=Y的用户账号进行增量同步(system/sys除外),因为该属性的账号无日志解析权限。

-

版本类

源数据库版本

支持10g、11g、12c、18c、19c、21c版本

详见支持的数据库

目标数据库版本

支持8.1.3、8.2.0版本

详见支持的数据库

增量同步类

字符集兼容性检查

目标数据库字符集需要完全兼容源库字符集。

详见字符集兼容性检查

虚拟列检查

源数据库中不能存在虚拟列。

详见源库表结构是否存在虚拟列

归档日志和补充日志检查

增量同步时,源库Oracle需要开启日志归档模式和最小补充日志,所需同步表必须开启PK/UI或以ALL级别的补充日志,不限制库级或表级补充日志方式,如果只开启表级补充日志,重建或者RENAME表后需要重新设置;请确保以上配置在同步过程中始终保持开启状态。

-

目标数据库检查

状态检查

目标数据库实例的状态必须正常。

-

源数据库检查

物理复制库检查

增量阶段源库为Oracle物理备库(PHYSICAL STANDBY)时不支持解析lob类型数据(无法生成数据字典),如果增量同步的表中出现lob类型会导致增量同步异常。

详见物理复制库检查

同步对象类

选择对象检查

  • 支持表、普通索引(B-Tree索引)、约束(主键、空、非空)的同步。
  • 不支持视图、外键、存储过程、触发器、函数、事件、虚拟列、唯一约束、唯一索引、外键索引、Check约束的同步。

-

表字段类型检查

源数据库表含有不支持的表字段类型。支持的表字段类型有: VARCHAR,VARCHAR2,NVARCHAR2,NUMBER,FLOAT,LONG,DATE,BINARY_FLOAT,BINARY_DOUBLE,RAW,LONG RAW,CHAR,NCHAR,CLOB,NCLOB,BLOB,ROWID,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE。

详见源库表字段类型检查

无主键表检查

由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。

详见源库无主键表检查

同名检查

同步表结构时,如果目标库存在与源库同名约束会导致建表失败。

详见目标数据库是否存在和源数据库同名的数据库

数据约束检查

数据传输时可能出现写入目标库的数据不满足约束检查而失败或丢失的风险。

详见存在约束不验证添加前数据

字符集检查

源数据库仅支持同步如下字符集:ZHS16GBK、AL32UTF8、UTF8、US7ASCII、WE8MSWIN1252、WE8ISO8859P1、WE8ISO8859P2、WE8ISO8859P4、WE8ISO8859P5、WE8ISO8859P7、WE8ISO8859P9、WE8ISO8859P13、WE8ISO8859P15。

详见源数据库字符集是否支持

库表名规范检查

  • 库名、表名不支持的字符有:非ASCII字符、“. ”、 “>”、 “<”、 “\”、 “`”、 “|”、 “,”、 “? ”、 “! ”、 “"”和 “'”。
  • 不支持选择源数据库的空库进行同步。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Oracle->DDM

表17 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

全量同步:

需要具有CREATE SESSION,SELECT ANY DICTIONARY,针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

全量+增量同步:

  • 12c及以上版本租户模式:
    • 12c及以上版本CDB数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。
    • 12c及以上版本PDB数据库同步时,除了需要具有PDB内的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;),还需要具有CDB的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING,SET CONTAINER(GRANT SET CONTAINER TO <userName> CONTAINER=ALL;)权限。
  • 12c及以上版本非租户模式:

    需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

  • 11g及以下版本数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

-

目标数据库权限

提供的目标数据库账号必须拥有如下权限:SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、INDEX、EVENT、RELOAD、CREATE VIEW。

-

Oracle源数据库用户MAINTAINED属检查

Oracle 12c及以上版本不支持使用ORACLE_MAINTAINED=Y的用户账号进行增量同步(system/sys除外),因为该属性的账号无日志解析权限。

-

版本类

源数据库版本

支持10g、11g、12c、18c、19c、21c版本

详见支持的数据库

增量同步类

字符集兼容性检查

目标数据库字符集需要完全兼容源库字符集。

详见字符集兼容性检查

虚拟列检查

源数据库中不能存在虚拟列。

详见源库表结构是否存在虚拟列

归档日志和补充日志检查

增量同步时,源库Oracle需要开启日志归档模式和最小补充日志,所需同步表必须开启PK/UI或以ALL级别的补充日志,不限制库级或表级补充日志方式,如果只开启表级补充日志,重建或者RENAME表后需要重新设置;请确保以上配置在同步过程中始终保持开启状态。

-

源数据库检查

物理复制库检查

增量阶段源库为Oracle物理备库(PHYSICAL STANDBY)时不支持解析lob类型数据(无法生成数据字典),如果增量同步的表中出现lob类型会导致增量同步异常。

详见物理复制库检查

同步对象类

选择对象检查

目前只支持同步源库的数据,不支持同步源库表结构及其他数据库对象。

-

表结构检查

目标库的冗余列(源库中不存在的列)不能存在非空约束,否则会导致数据迁移因为非空约束而阻塞。

详见源库Oracle与目标库中间件表结构(包括列数,主键索引)是否对齐

表字段类型检查

源数据库表含有不支持的表字段类型。支持的表字段类型有: VARCHAR,VARCHAR2,NVARCHAR2,NUMBER,FLOAT,LONG,DATE,BINARY_FLOAT,BINARY_DOUBLE,RAW,LONG RAW,CHAR,NCHAR,CLOB,NCLOB,BLOB,ROWID,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE。

详见源库表字段类型检查

无主键表检查

由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。

详见源库无主键表检查

数据约束检查

数据传输时可能出现写入目标库的数据不满足约束检查而失败或丢失的风险。

详见存在约束不验证添加前数据

字符集检查

源数据库仅支持同步如下字符集:ZHS16GBK、AL32UTF8、UTF8、US7ASCII、WE8MSWIN1252、WE8ISO8859P1、WE8ISO8859P2、WE8ISO8859P4、WE8ISO8859P5、WE8ISO8859P7、WE8ISO8859P9、WE8ISO8859P13、WE8ISO8859P15。

详见源数据库字符集是否支持

库表名规范检查

  • 不支持表名包含除下划线外的其他特殊字符的表的同步。
  • 源数据库中的库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。
  • 不支持选择源数据库的空库进行同步。
  • 同步前,目标数据库必须存在待同步数据库及表,且库名,表名,列名,索引名、约束名等必须为对应的小写名称。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Oracle->PostgreSQL

表18 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

全量同步:

需要具有CREATE SESSION,SELECT ANY DICTIONARY,针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

全量+增量同步:

  • 12c及以上版本租户模式:
    • 12c及以上版本CDB数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。
    • 12c及以上版本PDB数据库同步时,除了需要具有PDB内的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;),还需要具有CDB的CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING,SET CONTAINER(GRANT SET CONTAINER TO <userName> CONTAINER=ALL;)权限。
  • 12c及以上版本非租户模式:

    需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION,LOGMINING权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

  • 11g及以下版本数据库同步时,需要具有CREATE SESSION,SELECT ANY DICTIONARY,EXECUTE_CATALOG_ROLE,SELECT ANY TRANSACTION权限,以及针对单表的SELECT权限(GRANT SELECT ON <userName.tbName> to drsUser;)。

-

目标数据库权限

每张表必须具有如下权限:INSERT、SELECT、UPDATE、DELETE、CONNECT、CREATE、REFERENCES。

-

Oracle源数据库用户MAINTAINED属检查

Oracle 12c及以上版本不支持使用ORACLE_MAINTAINED=Y的用户账号进行增量同步(system/sys除外),因为该属性的账号无日志解析权限。

-

版本类

源数据库版本

支持10g、11g、12c、18c、19c、21c版本

详见支持的数据库

目标数据库版本

支持9.5、9.6、10、11、12、13、14、15、16版本

详见支持的数据库

增量同步类

异构数据库兼容性

请确认所需迁移的表中以字符串为主键或唯一键的列不包含空格,否则有可能导致数据不一致或迁移失败。

详见异构数据库兼容性风险须知

虚拟列检查

源数据库中不能存在虚拟列。

详见源库表结构是否存在虚拟列

字符集兼容性检查

目标数据库字符集需要完全兼容源库字符集。

详见字符集兼容性检查

归档日志和补充日志检查

增量同步时,源库Oracle需要开启日志归档模式和最小补充日志,所需同步表必须开启PK/UI或以ALL级别的补充日志,不限制库级或表级补充日志方式,如果只开启表级补充日志,重建或者RENAME表后需要重新设置;请确保以上配置在同步过程中始终保持开启状态。

-

目标数据库检查

状态检查

目标数据库实例的状态必须正常。

-

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

源数据库检查

物理复制库检查

增量阶段源库为Oracle物理备库(PHYSICAL STANDBY)时不支持解析lob类型数据(无法生成数据字典),如果增量同步的表中出现lob类型会导致增量同步异常。

详见物理复制库检查

同步对象类

选择对象检查

  • 支持表、索引、约束(主键、空、非空)的同步。
  • 不支持视图、外键、存储过程、触发器、函数、事件、虚拟列的同步。

-

表字段类型检查

源数据库表含有不支持的表字段类型。支持的表字段类型有: VARCHAR,VARCHAR2,NVARCHAR2,NUMBER,FLOAT,LONG,DATE,BINARY_FLOAT,BINARY_DOUBLE,RAW,LONG RAW,CHAR,NCHAR,CLOB,NCLOB,BLOB,ROWID,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE。

详见源库表字段类型检查

无主键表检查

由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。

详见源库无主键表检查

数据约束检查

数据传输时可能出现写入目标库的数据不满足约束检查而失败或丢失的风险。

详见存在约束不验证添加前数据

字符集检查

源数据库仅支持同步如下字符集:ZHS16GBK、AL32UTF8、UTF8、US7ASCII、WE8MSWIN1252、WE8ISO8859P1、WE8ISO8859P2、WE8ISO8859P4、WE8ISO8859P5、WE8ISO8859P7、WE8ISO8859P9、WE8ISO8859P13、WE8ISO8859P15。

详见源数据库字符集是否支持

日志解析权限检查

源数据库连接用户不具有日志解析权限,会导致增量迁移失败。

详见源数据库是否具有日志解析权限

同名检查

对象名同步到目标库后会转换成小写,为避免同步失败,选择的源库表中不能存在表名称字母相同但大小写不同的表。

详见目标数据库是否存在和源数据库同名的数据库

库表名规范检查

库名、表名不支持的字符有:非ASCII字符、“. ”、 “>”、 “<”、 “\”、 “`”、 “|”、 “,”、 “? ”、 “! ”、 “"”和 “'”。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

DDM->MySQL

表19 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 源数据库DDM账户至少需要具备一个权限,例如:SELECT。
  • DDM物理分片数据库账号需要具备如下权限:SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

-

目标数据库权限

需要具备如下权限:SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE。

RDS for MySQL实例的root账户默认已具备上述权限。

详见MySQL权限授权方法

参数类

GTID状态

源物理分片数据库GTID状态建议为开启状态,源物理分片数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

-

性能参数

源物理分片数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

增量同步类

Binlog开启

增量同步时,源物理分片数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源物理分片数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

server_id值设置

增量同步时,必须设置源物理分片数据库的server_id。

  • 如果源物理分片数据库版本小于或等于MySQL5.6,server_id的取值范围在2-4294967296之间。
  • 如果源物理分片数据库版本大于或等于MySQL5.7,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见源数据库和目标数据库表名大小写敏感性检查

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致。

详见数据库参数group_concat_max_len一致性检查

数据块加密参数

目标库和源库block_encryption_mode需要一致。

-

同步对象类

选择对象检查

  • 全量同步支持数据、表结构和索引的同步。
  • 源库不允许存在拆分键为timestamp类型的表。

-

库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。

详见映射数据库对象检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

库表名规范检查

源分库分表中间件中的库名、表名不能包含:'<>/\以及非ASCII字符。

-

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

DDM->GaussDB(DWS)

表20 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 源数据库DDM账户至少需要具备一个权限,例如:SELECT。
  • DDM物理分片数据库账号需要具备如下权限:SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

-

目标数据库权限

提供的目标数据库账号必须具有每张表的如下权限:INSERT、SELECT、UPDATE、DELETE、CONNECT、CREATE。

-

参数类

GTID状态

源物理分片数据库GTID状态建议为开启状态,源物理分片数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

-

性能参数

源物理分片数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

增量同步类

Binlog开启

增量同步时,源物理分片数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源物理分片数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

server_id值设置

增量同步时,必须设置源物理分片数据库的server_id。

  • 如果源物理分片数据库版本小于或等于MySQL5.6,server_id的取值范围在2-4294967296之间。
  • 如果源物理分片数据库版本大于或等于MySQL5.7,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见源数据库和目标数据库表名大小写敏感性检查

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致。

详见数据库参数group_concat_max_len一致性检查

数据块加密参数

目标库和源库block_encryption_mode需要一致。

-

同步对象类

选择对象检查

  • 全量同步支持数据、表结构和普通索引(B-Tree索引)的同步。
  • 目标库不支持唯一键表,同步过程中将忽略源数据库中的唯一键表。
  • 不支持同步无主键表,如果选择同步的表中存在无主键表,则同步失败。
  • 不支持唯一约束、唯一索引的同步。
  • 不支持同步既是无主键表,又是分区表的自建表,可能会导致任务失败。
  • 同步对象列名不能为CTID、XMIN、CMIN、XMAX、CMAX、TABLEOID、XC_NODE_ID、TID等GaussDB(DWS)禁止的字段,否则会导致任务失败。

-

库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。

详见映射数据库对象检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

库表名规范检查

源分库分表中间件中的库名、表名不能包含:'<>/\以及非ASCII字符。

-

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

DDM->DDM

表21 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 源数据库DDM账户至少需要具备一个权限,例如:SELECT。
  • DDM物理分片数据库账号需要具备如下权限:SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

-

目标数据库权限

需要具备如下基本权限:CREATE、DROP、ALTER、INDEX、INSERT、DELETE、UPDATE、SELECT, 同时必须具备扩展权限:全表SELECT权限。目标中间件账户必须具备对所同步数据库的权限。

-

参数类

GTID状态

源物理分片数据库GTID状态建议为开启状态,源物理分片数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

-

性能参数

源物理分片数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

增量同步类

Binlog开启

增量同步时,源物理分片数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源物理分片数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

server_id值设置

增量同步时,必须设置源物理分片数据库的server_id。

  • 如果源物理分片数据库版本小于或等于MySQL5.6,server_id的取值范围在2-4294967296之间。
  • 如果源物理分片数据库版本大于或等于MySQL5.7,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见源数据库和目标数据库表名大小写敏感性检查

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致。

详见数据库参数group_concat_max_len一致性检查

数据块加密参数

目标库和源库block_encryption_mode需要一致。

-

同步对象类

选择对象检查

  • 全量同步支持数据、表结构和索引的同步。
  • 仅支持MyISAM和InnoDB表的同步。
  • 源库不允许存在拆分键为timestamp类型的表。

-

库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。

详见映射数据库对象检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

库表名规范检查

源分库分表中间件中的库名、表名不能包含:'<>/\以及非ASCII字符。

-

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

DB2 for LUW->GaussDB集中式

表22 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步:需要用户具有CONNECT、DATAACCESS权限。
  • 全量+增量:需要用户具有DBADM权限。
  • 如果源数据库表结构存在DB2SECURITYLABEL字段类型,需要确保该用户具有该表全部数据的读权限。

-

目标数据库权限

  • 库级权限:需要使用root或其他有sysadmin角色的DATABASE用户登录postgres基库,赋予用户DATABASE的CREATE、CONNECT权限。
  • SCHEMA级权限:需要使用 root、或其他有sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库,赋予用户SCHEMA的CREATE、USAGE权限。
  • 表级权限:需要使用 root、或其他有sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库 ,赋予用户SCHEMA下所有表的SELECT,UPDATE,INSERT和DELETE权限。
  • 目标库使用gsloader等工具创建相关系统表(如 public.pgxc_copy_error_log,public.gs_copy_summary)时,DRS访问相关系统表需要有系统表的all privilege权限,详细信息可参考《GaussDB工具参考》

-

版本类

源数据库版本

支持9.7、10.1、10.5、11.1、11.5版本

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本

详见支持的数据库

参数类

DataCapture参数

选择全量+增量同步时,需要确保开启源数据库的归档日志,确保需要同步的表的DataCapture属性为Y。

-

同步对象类

选择对象检查

  • 全量同步时支持表、普通索引、主键与唯一约束、数据的同步。
  • 增量同步时支持表的实时同步。
  • 全量同步结构不支持位图索引、倒排索引、函数索引、XML索引。
  • 不支持默认值含有表达式的函数的表的同步。
  • 不支持同步源库中的临时表。
  • 全量+增量任务不支持带XML字段的无主键表。

-

目标数据库对象一致性检查

检查目标库对象是否满足同步要求。

详见目标数据库对象一致性检查

表字段类型检查

  • TIMESTAMP类型支持的最大精度是6。
  • 增量同步支持的LOB类型大小限制为10M以内。
  • 不支持自定义类型。
  • 增量同步不支持长度大于3998的VARCHAR、VARGRAPHIC类型。

详见源数据库表字段类型检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源迁移库无主键表检查

字符集检查

源数据库仅支持同步如下字符集:GBK、UTF8。

详见源数据库字符集是否支持

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源数据库选择对象预检查

库表名规范检查

  • 全量同步表结构时,目标库存在与某用户名称同名的schema,用其他用户进行同步表结构到schema时,需要使用grant [role] to [role]的方式为此用户赋权,否则可能因为无法创建表结构而导致同步失败。
  • 库名、表名等数据库对象名称支持英文字符、“#”、“$”、“_”等符号, DRS 不支持非ASCII字符、“. ”、 “>”、 “<”、 “\”、 “`”、 “|”、 “,”、 “? ”、 “! ”、 “"”和 “'”等字符。对象名同步到目标库后会转换成小写,为避免同步失败,选择的源库表中不能存在表名称字母相同但大小写不同的表。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

DB2 for LUW->GaussDB分布式版

表23 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步:需要用户具有CONNECT、DATAACCESS权限。
  • 全量+增量:需要用户具有DBADM权限。
  • 如果源数据库表结构存在DB2SECURITYLABEL字段类型,需要确保该用户具有该表全部数据的读权限。

-

目标数据库权限

  • 库级权限:需要使用root或其他有sysadmin角色的DATABASE用户登录postgres基库,赋予用户DATABASE的CREATE、CONNECT权限。
  • SCHEMA级权限:需要使用 root、或其他有sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库,赋予用户SCHEMA的CREATE、USAGE权限。
  • 表级权限:需要使用 root、或其他有sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库 ,赋予用户SCHEMA下所有表的SELECT,UPDATE,INSERT和DELETE权限。
  • 目标库使用gsloader等工具创建相关系统表(如 public.pgxc_copy_error_log,public.gs_copy_summary)时,DRS访问相关系统表需要有系统表的all privilege权限,详细信息可参考《GaussDB工具参考》

-

版本类

源数据库版本

支持9.7、10.1、10.5、11.1、11.5版本

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本

详见支持的数据库

参数类

DataCapture参数

选择全量+增量同步时,需要确保开启源数据库的归档日志,确保需要同步的表的DataCapture属性为Y。

-

同步对象类

选择对象检查

  • 全量同步时支持表、普通索引、主键与唯一约束、数据的同步。
  • 增量同步时支持表的实时同步。
  • 全量同步结构不支持位图索引、倒排索引、函数索引、XML索引。
  • 不支持默认值含有表达式的函数的表的同步。
  • 不支持同步源库中的临时表。
  • 全量+增量任务不支持带XML字段的无主键表。

-

目标数据库对象一致性检查

检查目标库对象是否满足同步要求。

详见目标数据库对象一致性检查

表字段类型检查

  • TIMESTAMP类型支持的最大精度是6。
  • 增量同步支持的LOB类型大小限制为10M以内。
  • 不支持自定义类型。
  • 增量同步不支持长度大于3998的VARCHAR、VARGRAPHIC类型。

详见源数据库表字段类型检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源迁移库无主键表检查

字符集检查

源数据库仅支持同步如下字符集:GBK、UTF8。

详见源数据库字符集是否支持

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源数据库选择对象预检查

库表名规范检查

  • 全量同步表结构时,目标库存在与某用户名称同名的schema,用其他用户进行同步表结构到schema时,需要使用grant [role] to [role]的方式为此用户赋权,否则可能因为无法创建表结构而导致同步失败。
  • 库名、表名等数据库对象名称支持英文字符、“#”、“$”、“_”等符号, DRS 不支持非ASCII字符、“. ”、 “>”、 “<”、 “\”、 “`”、 “|”、 “,”、 “? ”、 “! ”、 “"”和 “'”等字符。对象名同步到目标库后会转换成小写,为避免同步失败,选择的源库表中不能存在表名称字母相同但大小写不同的表。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

DB2 for LUW->GaussDB(DWS)

表24 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步:需要用户具有CONNECT、DATAACCESS权限。
  • 全量+增量:需要用户具有DBADM权限。
  • 如果源数据库表结构存在DB2SECURITYLABEL字段类型,需要确保该用户具有该表全部数据的读权限。

-

目标数据库权限

  • 目标数据库不存在DATABASE时需要有建库的权限;不存在SCHEMA时需要有在database中创建schema的权限;不存在表时需要有在对应schema中创建表的权限。
  • 对于每张表需要有INSERT、SELECT、UPDATE、DELETE权限。

-

版本类

源数据库版本

支持9.7、10.1、10.5、11.1、11.5版本

详见支持的数据库

目标数据库版本

支持8.1.3、8.2.0版本

详见支持的数据库

参数类

DataCapture参数

选择全量+增量同步时,需要确保开启源数据库的归档日志,确保需要同步的表的DataCapture属性为Y。

-

同步对象类

选择对象检查

  • 全量同步时支持表、普通索引、主键与唯一约束、数据的同步。
  • 增量同步时支持表的实时同步。
  • 全量同步结构不支持位图索引、倒排索引、函数索引、XML索引。
  • 不支持默认值含有表达式的函数的表的同步。
  • 不支持同步源库中的临时表。
  • 全量+增量任务不支持带XML字段的无主键表。
  • 源库单个schema的同步对象数量不能超过32766。

-

目标数据库对象一致性检查

检查目标库对象是否满足同步要求。

详见目标数据库对象一致性检查

表字段类型检查

  • TIMESTAMP类型支持的最大精度是6。
  • 增量同步支持的LOB类型大小限制为10M以内。
  • 不支持自定义类型。
  • 增量同步不支持长度大于3998的VARCHAR、VARGRAPHIC类型。
  • 同步对象列名不能为CTID、XMIN、CMIN、XMAX、CMAX、TABLEOID、XC_NODE_ID、TID等GaussDB(DWS)禁止的字段,否则会导致任务失败。

详见源数据库表字段类型检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源迁移库无主键表检查

字符集检查

源数据库仅支持同步如下字符集:GBK、UTF8。

详见源数据库字符集是否支持

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源数据库选择对象预检查

库表名规范检查

库名、表名等数据库对象名称支持英文字符、“#”、“$”、“_”等符号, DRS 不支持非ASCII字符、“. ”、 “>”、 “<”、 “\”、 “`”、 “|”、 “,”、 “? ”、 “! ”、 “"”和 “'”等字符。对象名同步到目标库后会转换成小写,为避免同步失败,选择的源库表中不能存在表名称字母相同但大小写不同的表。

-

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

TiDB->TaurusDB

表25 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

SELECT,CONFIG权限。

-

目标数据库权限

SELECT,CREATE,DROP,INSERT,DELETE,UPDATE,ALTER,REFERENCES,INDEX权限。

-

版本类

源数据库版本

4.0.0及以上版本(不包括dev版本)。

详见支持的数据库

目标数据库版本

8.0版本。

详见支持的数据库

增量同步类

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

同步对象类

选择对象检查

  • 支持选中表的表结构、数据、约束和索引。
  • 支持的字段类型

    BIGINT、BINARY、BIT、BLOB、BOOLEAN、CHAR、DATE、DATETIME、DECIMAL、DOUBLE、ENUM、FLOAT、INT、JSON、LONGBLOB、LONGTEXT、MEDIUMBLOB、MEDIUMINT、SET、SMALLINT、TEXT、TIME、TIMESTAMP、TINYBLOB、TINYINT、TINYTEXT、VARBINARY、VARCHAR、YEAR。

-

库表名规范检查

  • 库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。
  • 使用非字母、非数字、非下划线等字符作为库表名称,或库表映射后名称包含中划线、井号时,名称的长度请不要超过42个字符。
  • 同步对象的库名、表名不能包含:'<`>/\以及非ASCII字符。

-

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源迁移库无主键表检查

同名检查

目标数据库不能包含与源数据库同名的表。

详见目标数据库是否存在和源数据库同名的表

源数据库检查

选择的同步对象在源数据库中必须存在。

详见源库选择对象预检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Microsoft SQL Server->GaussDB(DWS)

表26 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

需要具备sysadmin权限,或者view server state权限以及待同步数据库的db_datareader或db_owner权限。

-

目标数据库权限

  • 目标库不存在待同步数据库时,需要CREATEDB权限。
  • 目标库存在数据库但不存在SCHEMA时,需要数据库的CONNECT和CREATE权限。
  • 目标库存在数据库和SCHEMA但不存在表时,需要数据库的CONNECT权限,SCHEMA的USAGE和CREATE权限。
  • 目标库数据库、SCHEMA和表都存在时,需要数据库的CONNECT权限,SCHEMA的USAGE权限,表的INSERT、UPDATE、DELETE、SELECT、ALTER、REFERENCES和INDEX权限。

-

版本类

源数据库版本

  • 本地自建Microsoft SQL Server(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • ECS自建Microsoft SQL Server数据库(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • 其他云上Microsoft SQL Server数据库(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • RDS for SQL Server(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)

详见支持的数据库

目标数据库版本

支持8.1.3、8.2.0版本

详见支持的数据库

增量同步类

CDC开启

SQL Server为源的增量同步基于SQL Server提供的CDC能力,如果SQL Server源库的CDC功能出现异常(如被关闭、事务日志满等情况),则增量同步就会受到影响。

详见源库表是否开启了CDC

CDC数据保留时间检查

源数据库CDC数据保留时间不足1天,会导致增量同步异常。请修改为1440分钟(1天)或以上,建议4320分钟(3天)。

详见源库CDC数据保留时间是否足够

一致性检查

计算机名

源数据库和目标数据库的计算机名不能相同。

详见源库服务器计算机名是否一致

同步对象类

选择对象检查

  • 支持选中表的表结构、数据和索引。
  • 同步对象选择的表个数不能超过1000。对于超过1000个表的情况,建议分批次同步(待上一个同步任务结束后,再重新创建任务)。
  • 不支持列加密。
  • 不支持同步自增属性列。
  • 支持的字段类型

    TINYINT、SMALLINT、INT、BIGINT、DECIMAL、NUMERIC、FLOAT、REAL、SMALLMONEY、MONEY、BIT、DATE、DATETIME、DATETIME2、DATETIMEOFFSET、TIME、TIMESTAMP、XML、CHAR、VARCHAR、NCHAR、NVARCHAR、BINARY、VARBINARY、IMAGE、HIERARCHYID、NTEXT、TEXT、UNIQUEIDENTIFIER。

  • 不支持的字段类型:SQL_VARIANT、GEOMETRY、GEOGRAPHY。

-

库表名规范检查

  • 源数据库待同步对象的库名、schema名、表名只能包含如下字符:字母、数字、下划线和中划线,库名长度不能超过64个字符。
  • 源数据库待同步对象的表中列名不能包含如下字符:[]?。
  • 源数据库中不允许存在名称为cdc的用户名或schema。
  • 同步对象列名不能为CTID、XMIN、CMIN、XMAX、CMAX、TABLEOID、XC_NODE_ID、TID等GaussDB(DWS)禁止的字段,否则会导致任务失败。

-

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

同名检查

除了SQL Server系统数据库之外,目标数据库不能包含与源数据库同名的对象。

详见目标数据库是否存在和源数据库同名的对象

源数据库检查

选择的同步对象在源数据库中必须存在。

详见源库选择对象预检查

源数据库实例不允许为空。

详见源数据库实例是否为空

源数据库的备份恢复模式必须设置为FULL模式。

详见源数据库恢复模式检查

源数据库必须开启SQL Server Agent代理服务。

详见源数据库SQL Server代理运行状态检查

源数据库中不允许存在被禁用的表的聚簇索引,否则会导致同步失败。

详见源数据库是否存在被禁用的聚集索引

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Microsoft SQL Server->GaussDB集中式

表27 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下最小权限:

    需要具备sysadmin权限,或者待同步数据库的db_datareader或db_owner权限。

  • 全量+增量、增量同步需要具备如下最小权限:

    需要具备sysadmin权限,或者view server state权限以及待同步数据库的db_datareader或db_owner权限。

-

目标数据库权限

  • 库级权限:需要使用root或其他有sysadmin角色的DATABASE用户登录postgres基库,赋予用户DATABASE的CREATE、CONNECT权限。
  • SCHEMA级权限:需要使用 root、或其他有sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库,赋予用户SCHEMA的CREATE、USAGE权限。
  • 表级权限:需要使用 root、或其他有sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库 ,赋予用户SCHEMA下所有表的SELECT,UPDATE,INSERT和DELETE权限。
  • 目标库使用gsloader等工具创建相关系统表(如 public.pgxc_copy_error_log,public.gs_copy_summary)时,DRS访问相关系统表需要有系统表的all privilege权限,详细信息可参考《GaussDB工具参考》

-

版本类

源数据库版本

  • 本地自建Microsoft SQL Server(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • ECS自建Microsoft SQL Server数据库(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • 其他云上Microsoft SQL Server数据库(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • RDS for SQL Server(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)

详见支持的数据库

目标数据库版本

1.1.0及以上版本。

详见支持的数据库

增量同步类

CDC开启

SQL Server为源的增量同步基于SQL Server提供的CDC能力,如果SQL Server源库的CDC功能出现异常(如被关闭、事务日志满等情况),则增量同步就会受到影响。

详见源库表是否开启了CDC

CDC数据保留时间检查

源数据库CDC数据保留时间不足1天,会导致增量同步异常。请修改为1440分钟(1天)或以上,建议4320分钟(3天)。

详见源库CDC数据保留时间是否足够

一致性检查

计算机名

源数据库和目标数据库的计算机名不能相同。

详见源库服务器计算机名是否一致

同步对象类

选择对象检查

  • 支持选中表的表结构、数据和索引。
  • 同步对象选择的表个数不能超过1000。对于超过1000个表的情况,建议分批次同步(待上一个同步任务结束后,再重新创建任务)。
  • 不支持列加密。
  • 不支持同步自增属性列。
  • 支持的字段类型

    TINYINT、SMALLINT、INT、BIGINT、DECIMAL、NUMERIC、FLOAT、REAL、SMALLMONEY、MONEY、BIT、DATE、DATETIME、DATETIME2、DATETIMEOFFSET、TIME、TIMESTAMP、XML、CHAR、VARCHAR、NCHAR、NVARCHAR、BINARY、VARBINARY、IMAGE、HIERARCHYID、NTEXT、TEXT、UNIQUEIDENTIFIER。

  • 不支持的字段类型:SQL_VARIANT、GEOMETRY、GEOGRAPHY。

-

库表名规范检查

  • 源数据库待同步对象的库名、schema名、表名只能包含如下字符:字母、数字、下划线和中划线,库名长度不能超过64个字符。
  • 源数据库待同步对象的表中列名不能包含如下字符:[]?。
  • 源数据库中不允许存在名称为cdc的用户名或schema。
  • 同步对象列名不能为CTID、XMIN、CMIN、XMAX、CMAX、TABLEOID、XC_NODE_ID、TID等GaussDB(DWS)禁止的字段,否则会导致任务失败。

-

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

同名检查

除了SQL Server系统数据库之外,目标数据库不能包含与源数据库同名的对象。

详见目标数据库是否存在和源数据库同名的对象

源数据库检查

选择的同步对象在源数据库中必须存在。

详见源库选择对象预检查

源数据库实例不允许为空。

详见源数据库实例是否为空

源数据库的备份恢复模式必须设置为FULL模式。

详见源数据库恢复模式检查

源数据库必须开启SQL Server Agent代理服务。

详见源数据库SQL Server代理运行状态检查

源数据库中不允许存在被禁用的表的聚簇索引,否则会导致同步失败。

详见源数据库是否存在被禁用的聚集索引

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Microsoft SQL Server->GaussDB分布式版

表28 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下最小权限:

    需要具备sysadmin权限,或者待同步数据库的db_datareader或db_owner权限。

  • 全量+增量、增量同步需要具备如下最小权限:

    需要具备sysadmin权限,或者view server state权限以及待同步数据库的db_datareader或db_owner权限。

-

目标数据库权限

  • 库级权限:需要使用root或其他有sysadmin角色的DATABASE用户登录postgres基库,赋予用户DATABASE的CREATE、CONNECT权限。
  • SCHEMA级权限:需要使用 root、或其他有sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库,赋予用户SCHEMA的CREATE、USAGE权限。
  • 表级权限:需要使用 root、或其他有sysadmin角色的DATABASE用户、或使用数据库的OWNER用户登录数据库 ,赋予用户SCHEMA下所有表的SELECT,UPDATE,INSERT和DELETE权限。
  • 目标库使用gsloader等工具创建相关系统表(如 public.pgxc_copy_error_log,public.gs_copy_summary)时,DRS访问相关系统表需要有系统表的all privilege权限,详细信息可参考《GaussDB工具参考》

-

版本类

源数据库版本

  • 本地自建Microsoft SQL Server(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • ECS自建Microsoft SQL Server数据库(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • 其他云上Microsoft SQL Server数据库(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • RDS for SQL Server(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)

详见支持的数据库

目标数据库版本

1.1.0及以上版本。

详见支持的数据库

增量同步类

CDC开启

SQL Server为源的增量同步基于SQL Server提供的CDC能力,如果SQL Server源库的CDC功能出现异常(如被关闭、事务日志满等情况),则增量同步就会受到影响。

详见源库表是否开启了CDC

CDC数据保留时间检查

源数据库CDC数据保留时间不足1天,会导致增量同步异常。请修改为1440分钟(1天)或以上,建议4320分钟(3天)。

详见源库CDC数据保留时间是否足够

一致性检查

计算机名

源数据库和目标数据库的计算机名不能相同。

详见源库服务器计算机名是否一致

同步对象类

选择对象检查

  • 支持选中表的表结构、数据和索引。
  • 同步对象选择的表个数不能超过1000。对于超过1000个表的情况,建议分批次同步(待上一个同步任务结束后,再重新创建任务)。
  • 不支持列加密。
  • 不支持同步自增属性列。
  • 支持的字段类型

    TINYINT、SMALLINT、INT、BIGINT、DECIMAL、NUMERIC、FLOAT、REAL、SMALLMONEY、MONEY、BIT、DATE、DATETIME、DATETIME2、DATETIMEOFFSET、TIME、TIMESTAMP、XML、CHAR、VARCHAR、NCHAR、NVARCHAR、BINARY、VARBINARY、IMAGE、HIERARCHYID、NTEXT、TEXT、UNIQUEIDENTIFIER。

  • 不支持的字段类型:SQL_VARIANT、GEOMETRY、GEOGRAPHY。

-

库表名规范检查

  • 源数据库待同步对象的库名、schema名、表名只能包含如下字符:字母、数字、下划线和中划线,库名长度不能超过64个字符。
  • 源数据库待同步对象的表中列名不能包含如下字符:[]?。
  • 源数据库中不允许存在名称为cdc的用户名或schema。
  • 同步对象列名不能为CTID、XMIN、CMIN、XMAX、CMAX、TABLEOID、XC_NODE_ID、TID等GaussDB(DWS)禁止的字段,否则会导致任务失败。

-

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

同名检查

除了SQL Server系统数据库之外,目标数据库不能包含与源数据库同名的对象。

详见目标数据库是否存在和源数据库同名的对象

源数据库检查

选择的同步对象在源数据库中必须存在。

详见源库选择对象预检查

源数据库实例不允许为空。

详见源数据库实例是否为空

源数据库的备份恢复模式必须设置为FULL模式。

详见源数据库恢复模式检查

源数据库必须开启SQL Server Agent代理服务。

详见源数据库SQL Server代理运行状态检查

源数据库中不允许存在被禁用的表的聚簇索引,否则会导致同步失败。

详见源数据库是否存在被禁用的聚集索引

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

Microsoft SQL Server->Microsoft SQL Server

表29 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

最少需要具备sysadmin权限,或者view server state权限以及待同步数据库的db_datareader或db_owner权限。

-

目标数据库权限

如果库不存在,需要对库级别开启create any database权限;

如果库存在需要库级别开启connect,create table,alter any schema 和select权限。

-

版本类

源数据库版本

  • 本地自建Microsoft SQL Server(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • ECS自建Microsoft SQL Server数据库(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • 其他云上Microsoft SQL Server数据库(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)
  • RDS for SQL Server(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)

详见支持的数据库

目标数据库版本

RDS for SQL Server(企业版2012、2014、2016、2017、2019版本,标准版2016 SP2及以上版本、2017、2019版本)

详见支持的数据库

同步版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见版本是否符合从低到高或者同版本迁移

目标数据库检查

状态检查

目标数据库实例的状态必须正常。

-

增量同步类

CDC开启

SQL Server为源的增量同步基于SQL Server提供的CDC能力,如果SQL Server源库的CDC功能出现异常(如被关闭、事务日志满等情况),则增量同步就会受到影响。

详见源库表是否开启了CDC

CDC数据保留时间检查

源数据库CDC数据保留时间不足1天,会导致增量同步异常。请修改为1440分钟(1天)或以上,建议4320分钟(3天)。

详见源库CDC数据保留时间是否足够

一致性检查

计算机名

源数据库和目标数据库的计算机名不能相同。

详见源库服务器计算机名是否一致

同步对象类

选择对象检查

  • 支持选中表的表结构、数据和索引。
  • 同步对象选择的表个数不能超过1000。对于超过1000个表的情况,建议分批次同步(待上一个同步任务结束后,再重新创建任务)。
  • 不支持列加密。
  • 不支持同步自增属性列。
  • 支持的字段类型

    TINYINT、SMALLINT、INT、BIGINT、DECIMAL、NUMERIC、FLOAT、REAL、SMALLMONEY、MONEY、BIT、DATE、DATETIME、DATETIME2、DATETIMEOFFSET、TIME、TIMESTAMP、XML、CHAR、VARCHAR、NCHAR、NVARCHAR、BINARY、VARBINARY、IMAGE、HIERARCHYID、NTEXT、TEXT、UNIQUEIDENTIFIER。

  • 不支持的字段类型:SQL_VARIANT、GEOMETRY、GEOGRAPHY。

-

库表名规范检查

  • 源数据库待同步对象的库名、schema名、表名只能包含如下字符:字母、数字、下划线和中划线,库名长度不能超过64个字符。
  • 源数据库待同步对象的表中列名不能包含如下字符:[]?。
  • 源数据库中不允许存在名称为cdc的用户名或schema。
  • 同步对象列名不能为CTID、XMIN、CMIN、XMAX、CMAX、TABLEOID、XC_NODE_ID、TID等GaussDB(DWS)禁止的字段,否则会导致任务失败。

-

同名检查

除了SQL Server系统数据库之外,目标数据库不能包含与源数据库同名的对象。

详见目标数据库是否存在和源数据库同名的对象

源数据库检查

选择的同步对象在源数据库中必须存在。

详见源库选择对象预检查

源数据库实例不允许为空。

详见源数据库实例是否为空

源数据库的备份恢复模式必须设置为FULL模式。

详见源数据库恢复模式检查

源数据库必须开启SQL Server Agent代理服务。

详见源数据库SQL Server代理运行状态检查

不支持同步源数据库中开启TDE(Transparent Data Encryption)加密的数据库。如果不需要同步TDE加密的库,请在对象选择中去掉。如果需要同步TDE加密的库,请先将TDE关闭。

详见源数据库存在加密的数据库对象

源数据库中不允许存在被禁用的表的聚簇索引,否则会导致同步失败。

详见源数据库是否存在被禁用的聚集索引

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

MongoDB->DDS

表30 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

副本集:连接源数据库的用户需要有admin库的readAnyDatabase权限,有local库的read权限。

-

目标数据库权限

连接目标数据库的用户需要有admin库的dbAdminAnyDatabase权限,有目标数据库的readWrite权限。

-

版本类

源数据库版本

  • 自建Mongo数据库(3.2、3.4、3.6、4.0、4.2、4.4版本)
  • 其他云上Mongo数据库(3.2、3.4、3.6、4.0、4.2、4.4版本)
  • DDS(3.2、3.4、4.0、4.2、4.4版本)
    说明:

    源数据库不支持GeminiDB Mongo。

详见支持的数据库

目标数据库版本

DDS(3.4、4.0、4.2、4.4版本)

详见支持的数据库

同步版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见版本是否符合从低到高或者同版本迁移

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例的状态必须正常,如果数据库实例是主备实例,复制状态也必须正常。

-

chunk数目检查

检查目标数据库的最大chunk数目是否足以支撑源库数据的分片分裂,当chunk个数达到目标库的最大支撑数目时,chunk不再分裂,会影响写入性能。

详见目标库最大支持chunk数目检查

同步对象类

选择对象检查

  • 副本集:目前只支持集合(包括验证器,是否是固定集合),索引和视图的同步。
  • 不支持同步系统库(如local、admin、config等)和系统集合,如果业务数据在系统库下,则需要先将业务数据移动到用户数据库下,可以使用renameCollection命令进行移出。
  • 不支持视图的创建语句中有正则表达式。
  • 不支持_id字段没有索引的集合。
  • 不支持BinData()的第一个参数为2。
  • 源库为4.4版本集群时,不支持复合哈希索引,不支持复合哈希分片键。
  • 源库为4.4版本副本集时,不支持复合哈希索引。

-

对象依赖关系检查

在进行用户迁移时,如果所选迁移的用户与某些角色存在依赖关系,需要同时选择迁移该用户及所依赖的角色,否则会导致迁移失败。

-

关联对象检查

相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用集合、视图引用视图。

详见迁移对象未选择外键依赖的表

库表名规范检查

  • 源数据库的库名不能包含/\."$和空格。
  • 源数据库中的集合名或视图名中不能包含$或以system.开头。
  • 同步对象映射名称长度在1到63个字符之间,不支持以下字符:/ \ . " $<>。
  • 请勿在源库集合的String类型字段中存储非UTF-8类型字符串,否则会导致同步前后数据不一致。

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

对于在源数据库已经存在TTL索引的集合,或者在增量同步期间在源库数据创建了TTL索引的集合,由于源数据库和目标库数据库时区,时钟的不一致,不能保证同步完成之后数据的一致性。

详见源数据库集合TTL索引检查

源数据库实例不允许为空。

详见源数据库实例是否为空

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

MariaDB->MariaDB

表31 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

SELECT、SHOW VIEW、EVENT、LOCK TABLES、RELOAD、REPLICATION SLAVE、REPLICATION CLIENT(或BINLOG MONIOTOR,MariaDB 10.5及以上版本更改为此权限)。

-

目标数据库权限

SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES、INDEX,RDS for MariaDB实例的root账户默认已具备上述权限。

-

版本类

源数据库版本

支持10.3、10.4、10.5版本

详见支持的数据库

目标数据库版本

支持10.5版本

详见支持的数据库

同步版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见版本是否符合从低到高或者同版本迁移

参数类

性能参数

源数据库log_slave_updates参数需设置为开启状态,否则会导致同步失败。

详见校验源数据库参数log_slave_updates

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

最大允许传输包的大小

DRS同步时会有大量数据写入目标库,目标库max_allowed_packet参数过小会导致无法写入,建议将目标库max_allowed_packet参数值设置为大于100MB。

详见检查目标库的max_allowed_packet参数

sql_mode取值检查

同步的对象中包含引擎为MyISAM的表,则目标数据库sql_mode不能包含no_engine_substitution参数,否则可能会导致同步失败。

详见源数据库是否存在不允许使用的sql_mode值

增量同步类

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

Binlog保留时长

在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。

详见源数据库binlog保留时间检查

server_id值设置

增量同步时,必须设置MariaDB源数据库的server_id,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。

-

索引列长度检查

源数据库索引列长度必须符合要求。

详见源数据库索引列长度检查

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例的状态必须正常,如果数据库实例是主备实例,复制状态也必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

字符序

目标库和源库的collation_server需要一致。

详见collation_server的一致性检查

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见源数据库和目标数据库表名大小写敏感性检查

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致。

详见数据库参数group_concat_max_len一致性检查

InnoDB检查模式

目标库和源库innodb_strict_mode需要一致。

详见数据库参数innodb_strict_mode一致性检查

SQL模式

目标库和源库sql_mode需要一致。

详见数据库参数sql_mode的一致性检查

同步对象类

选择对象检查

  • 支持表、主键索引、唯一索引、普通索引、存储过程、视图、函数的同步。
  • 仅支持MyISAM和InnoDB表的同步。
  • 不支持事件、触发器的同步。
  • 视图、存储过程、函数依赖的表不支持做表名映射。

-

  • 表名映射时,不支持该表的外键约束同步。
  • 库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。

详见映射数据库对象检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

关联对象检查

相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。

详见迁移对象未选择外键依赖的表

加密表检查

源数据库是否存在加密表。

详见源库加密表检查

同名检查

除了系统数据库之外,当目标数据库和源数据库同名时,目标数据库中如果存在与源数据库同名的表,则表结构必须与源库保持一致。

详见目标数据库是否存在和源数据库同名的表

库表名规范检查

  • 源数据库中的库名不能包含:'<`>/\"以及非ASCII字符。
  • 源数据库中的表名、视图名不能包含:'<>/\"以及非ASCII字符。
  • 源数据库中的库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。
  • 映射到目标库中的库名不能包含:“.”、 “<”、“>”、“”、和“'”。
  • 使用非字母、非数字、非下划线等字符作为库表名称,或库表映射后名称包含中划线、井号时,名称的长度请不要超过42个字符。

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

MariaDB->MySQL

表32 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

SELECT、SHOW VIEW、EVENT、LOCK TABLES、RELOAD、REPLICATION SLAVE、REPLICATION CLIENT(或BINLOG MONIOTOR,MariaDB 10.5及以上版本更改为此权限)。

-

目标数据库权限

SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES,RDS for MySQL实例的root账户默认已具备上述权限。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。

-

版本类

源数据库版本

支持10.0、10.1、10.2、10.3、10.4、10.5版本

详见支持的数据库

目标数据库版本

支持5.5、5.6、5.7、8.0版本

详见支持的数据库

参数类

性能参数

源数据库log_slave_updates参数需设置为开启状态,否则会导致同步失败。

详见校验源数据库参数log_slave_updates

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

最大允许传输包的大小

DRS同步时会有大量数据写入目标库,目标库max_allowed_packet参数过小会导致无法写入,建议将目标库max_allowed_packet参数值设置为大于100MB。

详见检查目标库的max_allowed_packet参数

sql_mode取值检查

同步的对象中包含引擎为MyISAM的表,则目标数据库sql_mode不能包含no_engine_substitution参数,否则可能会导致同步失败。

详见源数据库是否存在不允许使用的sql_mode值

增量同步类

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

Binlog保留时长

在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。

详见源数据库binlog保留时间检查

server_id值设置

增量同步时,必须设置MariaDB源数据库的server_id,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。

-

索引列长度检查

源数据库索引列长度必须符合要求。

详见源数据库索引列长度检查

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例的状态必须正常,如果数据库实例是主备实例,复制状态也必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

字符序

目标库和源库的collation_server需要一致。

详见collation_server的一致性检查

时钟

目标库和源库的时钟需要一致。

-

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见源数据库和目标数据库表名大小写敏感性检查

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致。

详见数据库参数group_concat_max_len一致性检查

InnoDB检查模式

目标库和源库innodb_strict_mode需要一致。

详见数据库参数innodb_strict_mode一致性检查

SQL模式

目标库和源库sql_mode需要一致。

详见数据库参数sql_mode的一致性检查

同步对象类

选择对象检查

  • 支持表、主键索引、唯一索引、普通索引、存储过程、视图、函数的同步。
  • 仅支持MyISAM和InnoDB表的同步。
  • 不支持事件、触发器的同步。
  • 视图、存储过程、函数依赖的表不支持做表名映射。

-

  • 表名映射时,不支持该表的外键约束同步。
  • 库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。

详见映射数据库对象检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

关联对象检查

相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。

详见迁移对象未选择外键依赖的表

加密表检查

源数据库是否存在加密表。

详见源库加密表检查

同名检查

除了系统数据库之外,当目标数据库和源数据库同名时,目标数据库中如果存在与源数据库同名的表,则表结构必须与源库保持一致。

详见目标数据库是否存在和源数据库同名的表

库表名规范检查

  • 源数据库中的库名不能包含:'<`>/\"以及非ASCII字符。
  • 源数据库中的表名、视图名不能包含:'<>/\"以及非ASCII字符。
  • 源数据库中的库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。
  • 映射到目标库中的库名不能包含:“.”、 “<”、“>”、“”、和“'”。
  • 使用非字母、非数字、非下划线等字符作为库表名称,或库表映射后名称包含中划线、井号时,名称的长度请不要超过42个字符。

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

MariaDB->TaurusDB

表33 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

SELECT、SHOW VIEW、EVENT、LOCK TABLES、RELOAD、REPLICATION SLAVE、REPLICATION CLIENT(或BINLOG MONIOTOR,MariaDB 10.5及以上版本更改为此权限)。

-

目标数据库权限

SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES,TaurusDB实例的root账户默认已具备上述权限。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。

-

版本类

源数据库版本

支持10.0、10.1、10.2、10.3、10.4、10.5版本

详见支持的数据库

目标数据库版本

支持8.0版本

详见支持的数据库

参数类

性能参数

源数据库log_slave_updates参数需设置为开启状态,否则会导致同步失败。

详见校验源数据库参数log_slave_updates

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

最大允许传输包的大小

DRS同步时会有大量数据写入目标库,目标库max_allowed_packet参数过小会导致无法写入,建议将目标库max_allowed_packet参数值设置为大于100MB。

详见检查目标库的max_allowed_packet参数

sql_mode取值检查

同步的对象中包含引擎为MyISAM的表,则目标数据库sql_mode不能包含no_engine_substitution参数,否则可能会导致同步失败。

详见源数据库是否存在不允许使用的sql_mode值

增量同步类

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

Binlog保留时长

在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。

详见源数据库binlog保留时间检查

server_id值设置

增量同步时,必须设置MariaDB源数据库的server_id,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。

-

索引列长度检查

源数据库索引列长度必须符合要求。

详见源数据库索引列长度检查

目标数据库检查

磁盘空间检查

目标数据库实例必须有足够的磁盘空间。

详见目标数据库磁盘可用空间是否足够

状态检查

目标数据库实例的状态必须正常,如果数据库实例是主备实例,复制状态也必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

字符序

目标库和源库的collation_server需要一致。

详见collation_server的一致性检查

时钟

目标库和源库的时钟需要一致。

-

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见源数据库和目标数据库表名大小写敏感性检查

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致。

详见数据库参数group_concat_max_len一致性检查

InnoDB检查模式

目标库和源库innodb_strict_mode需要一致。

详见数据库参数innodb_strict_mode一致性检查

SQL模式

目标库和源库sql_mode需要一致。

详见数据库参数sql_mode的一致性检查

同步对象类

选择对象检查

  • 支持表、主键索引、唯一索引、普通索引、存储过程、视图、函数的同步。
  • 仅支持MyISAM和InnoDB表的同步。
  • 不支持事件、触发器的同步。
  • 视图、存储过程、函数依赖的表不支持做表名映射。

-

  • 表名映射时,不支持该表的外键约束同步。
  • 库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。

详见映射数据库对象检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

关联对象检查

相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。

详见迁移对象未选择外键依赖的表

加密表检查

源数据库是否存在加密表。

详见源库加密表检查

同名检查

除了系统数据库之外,当目标数据库和源数据库同名时,目标数据库中如果存在与源数据库同名的表,则表结构必须与源库保持一致。

详见目标数据库是否存在和源数据库同名的表

库表名规范检查

  • 源数据库中的库名不能包含:'<`>/\"以及非ASCII字符。
  • 源数据库中的表名、视图名不能包含:'<>/\"以及非ASCII字符。
  • 源数据库中的库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。
  • 映射到目标库中的库名不能包含:“.”、 “<”、“>”、“”、和“'”。
  • 使用非字母、非数字、非下划线等字符作为库表名称,或库表映射后名称包含中划线、井号时,名称的长度请不要超过42个字符。

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

TaurusDB->TaurusDB

表34 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

-

目标数据库权限

SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES,TaurusDB实例的root账户默认已具备上述权限。

当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。

-

版本类

源数据库版本

支持8.0版本

详见支持的数据库

目标数据库版本

支持8.0版本

详见支持的数据库

同步版本检查

仅支持目标数据库版本等于或高于源数据库版本。

详见版本是否符合从低到高或者同版本迁移

参数类

GTID状态

源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。

详见源库的GTID功能检查

性能参数

源数据库log_slave_updates参数需设置为开启状态,否则会导致同步失败。

详见校验源数据库参数log_slave_updates

源数据库的binlog_row_image参数需设置为full,否则会导致同步失败。

详见binlog_row_image参数是否为full

最大允许传输包的大小

DRS同步时会有大量数据写入目标库,目标库max_allowed_packet参数过小会导致无法写入,建议将目标库max_allowed_packet参数值设置为大于100MB。

详见检查目标库的max_allowed_packet参数

DRS在同步数据量大或同步大字段情况下,源数据库max_allowed_packet参数过小可能会导致任务失败。

详见检查源库的max_allowed_packet参数

sql_mode取值检查

同步的对象中包含引擎为MyISAM的表,则目标数据库sql_mode不能包含no_engine_substitution参数,否则可能会导致同步失败。

详见源数据库是否存在不允许使用的sql_mode值

增量同步类

Binlog开启

增量同步时,源数据库的Binlog日志必须打开。

详见源数据库binlog日志是否开启

Binlog格式

源数据库的Binlog格式必须为行格式。

详见源数据库binlog格式检查

Binlog保留时长

在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致同步失败。

详见源数据库binlog保留时间检查

server_id值设置

增量同步时,必须设置源数据库的server_id,server_id的取值范围在1-4294967296之间。

详见源数据库参数server_id是否符合增量迁移要求

表字段检查

同步对象中如果存在包含longtext、longblob类型字段的表,建议创建大规格及以上规格的DRS任务进行同步,否则可能会导致capture OOM。

-

索引列长度检查

源数据库索引列长度必须符合要求。

详见源数据库索引列长度检查

目标数据库检查

状态检查

目标数据库实例的状态必须正常,如果数据库实例是主备实例,复制状态也必须正常。

-

一致性检查

字符集

目标库和源库的字符集需要一致。

详见源数据库和目标数据库的字符集是否一致

字符序

目标库和源库的collation_server需要一致。

详见collation_server的一致性检查

时钟

目标库和源库的时钟需要一致。

-

时区

目标库和源库的time_zone需要一致。

详见time_zone的一致性检查

大小写敏感

目标库和源库的lower_case_table_names参数设置需要一致。

详见源数据库和目标数据库表名大小写敏感性检查

group_concat函数计算结果字符的最大长度

目标库和源库的group_concat_max_len参数需要一致。

详见数据库参数group_concat_max_len一致性检查

InnoDB检查模式

目标库和源库innodb_strict_mode需要一致。

详见数据库参数innodb_strict_mode一致性检查

SQL模式

目标库和源库sql_mode需要一致。

详见数据库参数sql_mode的一致性检查

数据块加密参数

目标库和源库block_encryption_mode需要一致。

-

同步对象类

选择对象检查

  • 支持表、主键索引、唯一索引、普通索引、存储过程、视图、函数的同步。
  • 仅支持MyISAM和InnoDB表的同步。
  • 不支持事件、触发器的同步。
  • 视图、存储过程、函数依赖的表不支持做表名映射。

-

  • 表名映射时,不支持该表的外键约束同步。
  • 库名映射时,同步的对象中如果存在存储过程、视图、函数对象,全量阶段这些对象不会同步,会导致对象对比不一致。

详见映射数据库对象检查

无主键表检查

由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。

详见源库无主键表检查

关联对象检查

相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。

详见迁移对象未选择外键依赖的表

外键引用操作检查

不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。

详见源端存在不支持的外键引用操作

加密表检查

源数据库是否存在加密表。

详见源库加密表检查

同名检查

除了系统数据库之外,当目标数据库和源数据库同名时,目标数据库中如果存在与源数据库同名的表,则表结构必须与源库保持一致。

详见目标数据库是否存在和源数据库同名的表

库表名规范检查

  • 源数据库中的库名、表名、视图名不能包含:'<`>/\"以及非ASCII字符。
  • 源数据库中的库名或映射后的名称不允许以ib_logfile开头,也不能为ib_buffer_pool、ib_doublewrite、ibdata1、ibtmp1。
  • 使用非字母、非数字、非下划线等字符作为库表名称,或库表映射后名称包含中划线、井号时,名称的长度请不要超过42个字符。

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

SSL连接检查

SSL安全连接检查

选择SSL安全连接时,源数据库和目标数据库的SSL安全连接成功。

详见SSL安全连接检查

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

GaussDB集中式版->GaussDB集中式版

表35 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下权限:

    数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE。

  • 全量+增量同步需要具备如下权限:

    数据库的CONNECT权限,REPLICATION连接权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE。

-授予同步用户权限

目标数据库权限

具备sysadmin角色或者以下最小权限:

需要DATABASE的CONNECT和CREATE权限、SCHEMA的USAGE和CREATE权限、表的INSERT、UPDATE、DELETE、SELECT、ALTER、INDEX、COMMENT权限。

-

版本类

源数据库版本

支持1.0.0及以上版本,版本查询:select version();

以下是特性版本限制,特性版本号查询:select working_version_num();

支持并行解码最低版本92556;

支持备机读最低版本93088;

支持级联复制最低版本93042;

支持M兼容模式最低版本94301;

支持CN解码最低版本93024;

支持指定位点启动复制槽最低版本94472;

支持DDL逻辑解码最低版本93782;支持truncate最低版本94382;

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本,版本查询方式select version();

目标端数据库版本不小于源端数据库版本。

详见支持的数据库

参数类

性能参数

源数据库的max_replication_slots参数值必须大于当前已使用的复制槽数量。

详见源库参数MAX_REPLICATION_SLOTS校验

源数据库中无主键表的replica identity属性必须为full。

建议将主键表的REPLICA IDENTITY属性设置为FULL。

详见源库中表的复制属性检查

源库的enable_slot_log参数设置为on。

详见源数据库参数ENABLE_SLOT_LOG校验

源数据库的wal_level必须配置为logical。

详见源数据库参数WAL_LEVEL校验

数据同步类

表字段检查

支持bigint、 bit、 bit varying、 blob、 boolean、 box、 bytea、character、 character varying、 cidr、 circle、 clob、date、 double precision、inet、 integer、 interval、 mediumint、tinyint unsigned、smallint unsigned、 mediumint unsigned、 integer unsigned、bigint unsigned、 json、 jsonb、 lseg、 macaddr、 money、 number、 numeric、varchar2、 path、 point、 polygon、 raw、 real、smalldatetime、 smallint、 text、time with time zone、time without time zone、 timestamp with time zone、timestamp without time zone、tinyint、 tsquery、 tsvector、 refcursor、 uuid、 array、 float4、 decimal、 float、 double、char、 varchar、 tinytext、 mediumtext、 longtext、datetime、 timestamp、 time、 year、binary、 varbinary、 tinyblob、 mediumblob、 longblob等数据类型的同步

-

长事务检查

源数据库存在长时间未提交事务,无法创建复制槽,可能会导致任务增量同步失败。

详见源库长事务检查

无日志表检查

增量同步时,不支持无日志表(UNLOGGED TABLE)的同步。

-

一致性检查

schema和表检查

目标库和源库的schema、表结构需要一致。

-

数据库兼容类型检查

目标库和源库的数据库兼容类型要保持一致。

查询同步库的兼容类型:

select datname, datcompatibility from pg_database;

源端和目标端数据库字符集检查

源端和目标端字符集需要保持一致

-

同步对象类

选择对象检查

  • 支持模式、表、主键与唯一约束、表数据、序列的同步。
  • 不支持实例级同步。
  • 不支持系统模式(以下模式在目标库为系统模式,不支持同步系统schema:pg_toast、cstore、snapshot、sys、dbms_job、dbms_perf、pg_catalog、information_schema、utl_file、dbms_output、dbms_random、utl_raw、dbms_sql、dbms_lob、dbe_perf、pkg_service、pkg_util、dbe_file、dbe_random、dbe_output、dbe_raw、dbe_sql、dbe_lob、dbe_task、blockchain、db4ai、dbe_pldebugger、sqladvisor、dbe_application_info、dbe_match、dbe_pldeveloper、dbe_scheduler、dbe_session、dbe_utility、dbe_sql_util、dbe_xml、dbe_xmldom、dbe_xmlparser、dbe_compression、dbe_heat_map、dbe_ilm、dbe_ilm_admin、prvt_ilm、dbe_profiler、dbe_stats、rdsBackup、rdsMetric、rdsRepl),不支持同步public schema下的redis_progress_detail、redis_status、pgxc_redsitb、redis_progress的系统表。
  • 增量不支持间隔分区表的同步。

-

选择对象约束检查

源库所选表不能包含延迟约束 。

详见所选表是否包含延迟约束

库表列名规范检查

库名、模式名、表名不能包含/ < . > \ ' ` | , ? !

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

  • 增量实时同步任务,源数据库可以为备机。
  • 全量实时同步任务,源数据库可以为备机,但是不支持无主键表。

-

任务启动前请确保源数据库中不存在长时间未提交的事务。

详见源库长事务检查

源数据库的SSL状态正常,可以进行远程连接和复制连接。

详见GaussDB远程连接配置方法

目标端对象检查

目标库的表不能包含外键约束和触发器。

详见目标库表存在外键并且没有禁用

详见目标数据库已存在的表中有启用的触发器

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

GaussDB集中式版->GaussDB分布式版

表36 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下权限:

    数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE。

  • 全量+增量同步需要具备如下权限:

    数据库的CONNECT权限,REPLICATION连接权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE。

-授予同步用户权限

目标数据库权限

具备sysadmin角色或者以下最小权限:

需要DATABASE的CONNECT和CREATE权限、SCHEMA的USAGE和CREATE权限、表的INSERT、UPDATE、DELETE、SELECT、ALTER、INDEX、COMMENT权限。

-

版本类

源数据库版本

支持1.0.0及以上版本,版本查询:select version();

以下是特性版本限制,特性版本号查询:select working_version_num();

支持并行解码最低版本92556;

支持备机读最低版本93088;

支持级联复制最低版本93042;

支持M兼容模式最低版本94301;

支持CN解码最低版本93024;

支持指定位点启动复制槽最低版本94472;

支持DDL逻辑解码最低版本93782;支持truncate最低版本94382;

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本,版本查询方式select version();

目标端数据库版本不小于源端数据库版本。

详见支持的数据库

参数类

性能参数

源数据库的max_replication_slots参数值必须大于当前已使用的复制槽数量。

详见源库参数MAX_REPLICATION_SLOTS校验

源数据库中无主键表的replica identity属性必须为full。

建议将主键表的REPLICA IDENTITY属性设置为FULL。

详见源库中表的复制属性检查

源库的enable_slot_log参数设置为on。

详见源数据库参数ENABLE_SLOT_LOG校验

源数据库的wal_level必须配置为logical。

详见源数据库参数WAL_LEVEL校验

数据同步类

表字段检查

支持bigint、 bit、 bit varying、 blob、 boolean、 box、 bytea、character、 character varying、 cidr、 circle、 clob、date、 double precision、inet、 integer、 interval、 mediumint、tinyint unsigned、smallint unsigned、 mediumint unsigned、 integer unsigned、bigint unsigned、 json、 jsonb、 lseg、 macaddr、 money、 number、 numeric、varchar2、 path、 point、 polygon、 raw、 real、smalldatetime、 smallint、 text、time with time zone、time without time zone、 timestamp with time zone、timestamp without time zone、tinyint、 tsquery、 tsvector、 refcursor、 uuid、 array、 float4、 decimal、 float、 double、char、 varchar、 tinytext、 mediumtext、 longtext、datetime、 timestamp、 time、 year、binary、 varbinary、 tinyblob、 mediumblob、 longblob等数据类型的同步

-

长事务检查

源数据库存在长时间未提交事务,无法创建复制槽,可能会导致任务增量同步失败。

详见源库长事务检查

无日志表检查

增量同步时,不支持无日志表(UNLOGGED TABLE)的同步。

-

无主键分区表检查

无主键分区表检查增量同步时,不支持无主键分区表的同步。

-

一致性检查

schema和表检查

目标库和源库的schema、表结构需要一致。

-

数据库兼容类型检查

目标库和源库的数据库兼容类型要保持一致。

查询同步库的兼容类型:

select datname, datcompatibility from pg_database;

源端和目标端数据库字符集检查

源端和目标端字符集需要保持一致

-

同步对象类

选择对象检查

  • 支持模式、表、主键与唯一约束、表数据、序列的同步。
  • 不支持实例级同步。
  • 不支持系统模式(以下模式在目标库为系统模式,不支持同步系统schema:pg_toast、cstore、snapshot、sys、dbms_job、dbms_perf、pg_catalog、information_schema、utl_file、dbms_output、dbms_random、utl_raw、dbms_sql、dbms_lob、dbe_perf、pkg_service、pkg_util、dbe_file、dbe_random、dbe_output、dbe_raw、dbe_sql、dbe_lob、dbe_task、blockchain、db4ai、dbe_pldebugger、sqladvisor、dbe_application_info、dbe_match、dbe_pldeveloper、dbe_scheduler、dbe_session、dbe_utility、dbe_sql_util、dbe_xml、dbe_xmldom、dbe_xmlparser、dbe_compression、dbe_heat_map、dbe_ilm、dbe_ilm_admin、prvt_ilm、dbe_profiler、dbe_stats、rdsBackup、rdsMetric、rdsRepl),不支持同步public schema下的redis_progress_detail、redis_status、pgxc_redsitb、redis_progress的系统表。
  • 增量不支持间隔分区表的同步。

-

选择对象约束检查

  • 源库所选表不能包含延迟约束 。

详见所选表是否包含延迟约束

库表列名规范检查

  • 库名、模式名、表名不能包含/ < . > \ ' ` | , ? !

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

  • 增量实时同步任务,源数据库可以为备机。
  • 全量实时同步任务,源数据库可以为备机,但是不支持无主键表。

-

任务启动前请确保源数据库中不存在长时间未提交的事务。

详见源库长事务检查

源数据库的SSL状态正常,可以进行远程连接和复制连接。

详见GaussDB远程连接配置方法

目标端对象检查

目标库的表不能包含外键约束和触发器。

详见目标库表存在外键并且没有禁用

详见目标数据库已存在的表中有启用的触发器

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

GaussDB分布式版->GaussDB集中式版

表37 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下权限:

    数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE。

  • 全量+增量同步需要具备如下权限:

    数据库的CONNECT权限,REPLICATION连接权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE。

-授予同步用户权限

目标数据库权限

具备sysadmin角色或者以下最小权限:

需要DATABASE的CONNECT和CREATE权限、SCHEMA的USAGE和CREATE权限、表的INSERT、UPDATE、DELETE、SELECT、ALTER、INDEX、COMMENT权限。

-

版本类

源数据库版本

支持1.0.0及以上版本,版本查询:select version();

以下是特性版本限制,特性版本号查询:select working_version_num();

支持并行解码最低版本92556;

支持备机读最低版本93088;

支持级联复制最低版本93042;

支持M兼容模式最低版本94301;

支持CN解码最低版本93024;

支持指定位点启动复制槽最低版本94472;

支持DDL逻辑解码最低版本93782;支持truncate最低版本94382;

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本,版本查询方式select version();

目标端数据库版本不小于源端数据库版本。

详见支持的数据库

参数类

性能参数

源数据库的max_replication_slots参数值必须大于当前已使用的复制槽数量。

详见源库参数MAX_REPLICATION_SLOTS校验

源数据库中无主键表的replica identity属性必须为full。

建议将主键表的REPLICA IDENTITY属性设置为FULL。

详见源库中表的复制属性检查

源库的enable_slot_log参数设置为on。

详见源数据库参数ENABLE_SLOT_LOG校验

源数据库的wal_level必须配置为logical。

详见源数据库参数WAL_LEVEL校验

数据同步类

表字段检查

支持bigint、 bit、 bit varying、 blob、 boolean、 box、 bytea、character、 character varying、 cidr、 circle、 clob、date、 double precision、inet、 integer、 interval、 mediumint、tinyint unsigned、smallint unsigned、 mediumint unsigned、 integer unsigned、bigint unsigned、 json、 jsonb、 lseg、 macaddr、 money、 number、 numeric、varchar2、 path、 point、 polygon、 raw、 real、smalldatetime、 smallint、 text、time with time zone、time without time zone、 timestamp with time zone、timestamp without time zone、tinyint、 tsquery、 tsvector、 refcursor、 uuid、 array、 float4、 decimal、 float、 double、char、 varchar、 tinytext、 mediumtext、 longtext、datetime、 timestamp、 time、 year、binary、 varbinary、 tinyblob、 mediumblob、 longblob等数据类型的同步

-

长事务检查

源数据库存在长时间未提交事务,无法创建复制槽,可能会导致任务增量同步失败。

详见源库长事务检查

无日志表检查

增量同步时,不支持无日志表(UNLOGGED TABLE)的同步。

-

一致性检查

schema和表检查

目标库和源库的schema、表结构需要一致。

-

源端和目标端数据库字符集检查

源端和目标端字符集需要保持一致

-

数据库兼容类型检查

目标库和源库的数据库兼容类型要保持一致。

查询同步库的兼容类型:

select datname, datcompatibility from pg_database;

多任务模式dn数量检查

用户填写的子任务数量和源端数据库的dn数量要保持一致

-

同步对象类

选择对象检查

  • 支持模式、表、主键与唯一约束、表数据的同步。
  • 不支持实例级同步。
  • 不支持系统模式(以下模式在目标库为系统模式,不支持同步系统schema:pg_toast、cstore、snapshot、sys、dbms_job、dbms_perf、pg_catalog、information_schema、utl_file、dbms_output、dbms_random、utl_raw、dbms_sql、dbms_lob、dbe_perf、pkg_service、pkg_util、dbe_file、dbe_random、dbe_output、dbe_raw、dbe_sql、dbe_lob、dbe_task、blockchain、db4ai、dbe_pldebugger、sqladvisor、dbe_application_info、dbe_match、dbe_pldeveloper、dbe_scheduler、dbe_session、dbe_utility、dbe_sql_util、dbe_xml、dbe_xmldom、dbe_xmlparser、dbe_compression、dbe_heat_map、dbe_ilm、dbe_ilm_admin、prvt_ilm、dbe_profiler、dbe_stats、rdsBackup、rdsMetric、rdsRepl),不支持同步public schema下的redis_progress_detail、redis_status、pgxc_redsitb、redis_progress的系统表。
  • 增量不支持间隔分区表的同步。

-

选择对象约束检查

  • 源库所选表不能包含延迟约束 。

详见所选表是否包含延迟约束

库表列名规范检查

  • 库名、模式名、表名不能包含/ < . > \ ' ` | , ? !

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

  • 增量实时同步任务,源数据库可以为备机。
  • 全量实时同步任务,源数据库可以为备机,但是不支持无主键表。

-

任务启动前请确保源数据库中不存在长时间未提交的事务。

详见源库长事务检查

源数据库的SSL状态正常,可以进行远程连接和复制连接。

详见GaussDB远程连接配置方法

目标端对象检查

目标库的表不能包含外键约束和触发器。

详见目标库表存在外键并且没有禁用

详见目标数据库已存在的表中有启用的触发器

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

GaussDB分布式版->GaussDB分布式版

表38 预检查一览表

分类

预检查项

检查项详情

不通过解决方法

权限类

源数据库权限

  • 全量同步需要具备如下权限:

    数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE。

  • 全量+增量同步需要具备如下权限:

    数据库的CONNECT权限,REPLICATION连接权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限,无主键表的UPDATE。

-授予同步用户权限

目标数据库权限

具备sysadmin角色或者以下最小权限:

需要DATABASE的CONNECT和CREATE权限、SCHEMA的USAGE和CREATE权限、表的INSERT、UPDATE、DELETE、SELECT、ALTER、INDEX、COMMENT权限。

-

版本类

源数据库版本

支持1.0.0及以上版本,版本查询:select version();

以下是特性版本限制,特性版本号查询:select working_version_num();

支持并行解码最低版本92556;

支持备机读最低版本93088;

支持级联复制最低版本93042;

支持M兼容模式最低版本94301;

支持CN解码最低版本93024;

支持指定位点启动复制槽最低版本94472;

支持DDL逻辑解码最低版本93782;支持truncate最低版本94382;

详见支持的数据库

目标数据库版本

支持1.0.0及以上版本,版本查询方式select version();

目标端数据库版本不小于源端数据库版本。

详见支持的数据库

参数类

性能参数

源数据库的max_replication_slots参数值必须大于当前已使用的复制槽数量。

详见源库参数MAX_REPLICATION_SLOTS校验

源数据库中无主键表的replica identity属性必须为full。

建议将主键表的REPLICA IDENTITY属性设置为FULL。

详见源库中表的复制属性检查

源库的enable_slot_log参数设置为on。

详见源数据库参数ENABLE_SLOT_LOG校验

源数据库的wal_level必须配置为logical。

详见源数据库参数WAL_LEVEL校验

数据同步类

表字段检查

支持bigint、 bit、 bit varying、 blob、 boolean、 box、 bytea、character、 character varying、 cidr、 circle、 clob、date、 double precision、inet、 integer、 interval、 mediumint、tinyint unsigned、smallint unsigned、 mediumint unsigned、 integer unsigned、bigint unsigned、 json、 jsonb、 lseg、 macaddr、 money、 number、 numeric、varchar2、 path、 point、 polygon、 raw、 real、smalldatetime、 smallint、 text、time with time zone、time without time zone、 timestamp with time zone、timestamp without time zone、tinyint、 tsquery、 tsvector、 refcursor、 uuid、 array、 float4、 decimal、 float、 double、char、 varchar、 tinytext、 mediumtext、 longtext、datetime、 timestamp、 time、 year、binary、 varbinary、 tinyblob、 mediumblob、 longblob等数据类型的同步

-

长事务检查

源数据库存在长时间未提交事务,无法创建复制槽,可能会导致任务增量同步失败。

详见源库长事务检查

无日志表检查

增量同步时,不支持无日志表(UNLOGGED TABLE)的同步。

-

无主键分区表检查

无主键分区表检查增量同步时,不支持无主键分区表的同步。

-

一致性检查

schema和表检查

目标库和源库的schema、表结构需要一致。

-

源端和目标端数据库字符集检查

源端和目标端字符集需要保持一致

-

数据库兼容类型检查

目标库和源库的数据库兼容类型要保持一致。

查询同步库的兼容类型:

select datname, datcompatibility from pg_database;

多任务模式dn数量检查

用户填写的子任务数量和源端数据库的dn数量要保持一致

-

同步对象类

选择对象检查

  • 支持模式、表、主键与唯一约束、表数据的同步。
  • 不支持实例级同步。
  • 不支持系统模式(以下模式在目标库为系统模式,不支持同步系统schema:pg_toast、cstore、snapshot、sys、dbms_job、dbms_perf、pg_catalog、information_schema、utl_file、dbms_output、dbms_random、utl_raw、dbms_sql、dbms_lob、dbe_perf、pkg_service、pkg_util、dbe_file、dbe_random、dbe_output、dbe_raw、dbe_sql、dbe_lob、dbe_task、blockchain、db4ai、dbe_pldebugger、sqladvisor、dbe_application_info、dbe_match、dbe_pldeveloper、dbe_scheduler、dbe_session、dbe_utility、dbe_sql_util、dbe_xml、dbe_xmldom、dbe_xmlparser、dbe_compression、dbe_heat_map、dbe_ilm、dbe_ilm_admin、prvt_ilm、dbe_profiler、dbe_stats、rdsBackup、rdsMetric、rdsRepl),不支持同步public schema下的redis_progress_detail、redis_status、pgxc_redsitb、redis_progress的系统表。
  • 增量不支持间隔分区表的同步。

-

选择对象约束检查

  • 源库所选表不能包含延迟约束 。

详见所选表是否包含延迟约束

库表列名规范检查

  • 库名、模式名、表名不能包含/ < . > \ ' ` | , ? !

-

源数据库检查

预检查阶段进行同步对象检查时,源数据库连接正常。

详见源库选择对象预检查

  • 增量实时同步任务,源数据库可以为备机。
  • 全量实时同步任务,源数据库可以为备机,但是不支持无主键表。

-

任务启动前请确保源数据库中不存在长时间未提交的事务。

详见源库长事务检查

源数据库的SSL状态正常,可以进行远程连接和复制连接。

详见GaussDB远程连接配置方法

目标端对象检查

目标库的表不能包含外键约束和触发器。

详见目标库表存在外键并且没有禁用

详见目标数据库已存在的表中有启用的触发器

网络情况

网络检查

目标数据库的IP,端口,用户名和密码连接成功。

详见目标数据库连接是否成功

源数据库的IP,端口,用户名和密码连接成功。

详见源数据库连接是否成功

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容

提示

您即将访问非华为云网站,请注意账号财产安全