华为云用户手册

  • SASL_PLAINTEXT认证 使用SASL机制连接Kafka,需要设置SASL相关配置。 图2 SASL_PLAINTEXT 表1 参数信息 参数 描述 SASL机制 用于客户端连接的SASL机制,支持以下四项,Kafka server默认是 GSSAPI 机制,更多说明可参考SASL机制。 GSSAPI PLAIN SC RAM -SHA-256 SCRAM-SHA-512 令牌委托 是否为委托令牌鉴权,SASL机制选择“SCRAM-SHA-256”或者“SCRAM-SHA-512”时可见。 用户名 登录使用的用户名。 密码 登录使用的密码
  • SSL认证 使用SSL加密方式连接Kafka,需要设置SSL相关配置。 图3 SSL 表2 参数信息 参数 描述 Truststore证书 后缀名为jks的SSL证书,证书文件生成可参考SSL证书。 Truststore证书密码 证书对应的秘钥。 主机名端点识别算法 指定通过服务端证书验证服务端主机名的端点识别算法,选填,不填表示禁用主机名验证。 SSL双向认证 是否开启SSL双向认证。 Keystore证书 SSL双向认证开启可见,需要上传后缀名为jks的双向认证证书。 Keystore证书密码 SSL双向认证开启可见,SSL双向认证证书对应的秘钥。 Keystore私钥密码 选填,Keystore证书中私钥的密码。
  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 GaussDB 分布式(支持与目标端相同兼容模式同步,不支持M兼容模式同步。版本数据库内核版本为505.2及以下版本,内核版本与数据库引擎版本的关系请参考云数据库GaussDB的数据库引擎版本说明。) GaussDB集中式版(版本数据库内核版本为505.2及以下版本,内核版本与数据库引擎版本的关系请参考云数据库GaussDB的数据库引擎版本说明。) 说明: 仅支持目标库版本等于或高于源库版本。
  • 数据库用户权限要求 在使用DRS进行同步时,连接源库和目标库的数据库用户需要满足以下权限要求,才能启动实时同步任务。不同类型的同步任务,需要的用户权限也不同,详细可参考表3进行赋权。DRS会在“预检查”阶段对数据库用户权限进行自动检查,并给出处理建议。 建议创建单独用于DRS任务连接的数据库用户,避免因为数据库用户密码修改,导致的任务连接失败。 连接源或目标数据库的用户密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库用户被锁定影响使用。 由于 分布式数据库 为源链路需要检查每个DN的连通性,建议使用非root数据库用户进行同步,避免因为密码填写错误在连接DN过程中导致用户被锁定。 表3 数据库用户权限 类型名称 全量同步 增量同步 全量+增量同步 源数据库连接用户 具备sysadmin角色或者以下最小权限: 需要DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT或UPDATE权限(无主键表锁表需要UPDATE权限)、SEQUENCE的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 具备sysadmin角色或者以下最小权限: 需要REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。 具备sysadmin角色或者以下最小权限: 需要REPLICATION权限或继承了内置角色gs_role_replication的权限、DATABASE的CONNECT权限、SCHEMA的USAGE权限、表的SELECT或UPDATE权限(无主键表锁表需要UPDATE权限)、SEQUENCE的SELECT权限。 需要具备远程连接权限,添加方法可参考GaussDB远程连接配置方法。 需要保证安全组和防火墙策略放开对应连接端口,详细说明可参考GaussDB为源链路增量同步连接及端口说明。 目标数据库连接用户 具备sysadmin角色或者以下最小权限: 需要DATABASE的CONNECT和CREATE权限、SCHEMA的USAGE和CREATE权限、表的INSERT、UPDATE、DELETE、SELECT、ALTER、INDEX、COMMENT权限。 目标库使用gsloader等工具创建相关系统表(如 public.pgxc_copy_error_log,public.gs_copy_summary)时,DRS访问相关系统表需要有系统表的all privilege权限,详细信息可参考《GaussDB工具参考》。
  • 实例监控指标 数据复制服务 性能监控指标,如表1所示。 表1 数据复制服务支持的监控指标 指标ID 指标名称 指标含义 取值范围 单位 进制 测量对象 监控周期(原始指标) cpu_util CPU使用率 该指标用于统计测量对象的CPU使用率,以比率为单位。 0-100 % 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 mem_util 内存使用率 该指标用于统计测量对象的内存使用率。 0-100 % 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 network_incoming_bytes_rate 网络输入吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输入的流量。 ≥ 0 byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 network_outgoing_bytes_rate 网络输出吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输出的流量。 ≥ 0 byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_read_bytes_rate 磁盘读吞吐量 该指标用于统计每秒从磁盘读取的字节数。 ≥ 0 byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_write_bytes_rate 磁盘写吞吐量 该指标用于统计每秒写入磁盘的字节数。 ≥ byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_util 磁盘利用率 该指标用于统计测量对象的磁盘利用率。 0-100 % 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_bytes_rate 读源库吞吐量 该指标用于统计每秒从源库读取表数据或者WAL的字节数。 ≥ 0 byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_rows_rate 读源库频率 该指标用于统计每秒从源库读取表数据或者WAL的行数。 ≥ 0 row/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_latency 源库WAL抽取延迟 该指标用于统计当前从源库抽取WAL的延迟。 ≥ 0 ms 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_bytes_rate 写目标库吞吐量 该指标用于统计每秒向目标库写入数据的字节数。 ≥ 0 byte/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_rows_rate 写目标库频率 该指标用于统计每秒向目标库写入数据的行数。 ≥ 0 row/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_transactions_rate DML TPS 该指标用于统计每秒向目标库写入的DML事务数。 ≥ 0 transaction/s 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_ddls_number或apply_ddls_rate 说明: apply_ddls_rate在2022年12月之后替换为apply_ddls_number。 DDL TPS 该指标用于统计向目标库写入的DDL事务总数。 ≥ 0 transaction 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_latency 数据同步延迟 该指标用于统计当前数据向目标库回放延迟。 ≥ 0 ms 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_average_execute_time 事务平均执行时间 该指标用于统计当前一个事务在目标库的平均执行时间(一个事务的RT=执行时间+提交时间)。 ≥ 0 ms 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_average_commit_time 事务平均提交时间 该指标用于统计当前一个事务在目标库的平均提交时间(一个事务的RT=执行时间+提交时间)。 ≥ 0 ms 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_current_state 同步状态 该指标用于表示当前内核数据的同步状态(10:异常,1:空闲,2:执行DML,3:执行DDL),不代表任务状态。 10:异常 1:空闲 2:执行DML 3:执行DDL 不涉及 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_thread_workers 同步线程数量 该指标用于表示当前数据同步的工作线程数量。 ≥ 0 Counts 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_job_status 任务状态 该指标用于表示当前任务所处的状态(0:正常,1:异常,2:暂停)。 0:正常 1:异常 2:暂停 不涉及 不涉及 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟
  • 支持审计操作的关键列表 云审计 服务是安全解决方案中专业的日志审计服务,记录了数据复制服务的相关操作事件,方便您日后的查询、审计和回溯。 表1 云审计服务支持的数据复制服务操作列表 操作名称 资源类型 事件名称 创建任务 job createJob 编辑任务 job modifyJob 删除任务 job deleteJob 启动任务 job startJob 续传任务 job retryJob 父主题: 对接云审计服务
  • 源为其他云同步方案概览 DRS支持将其他云数据库(例如AWS的RDS for MySQL、Aurora for MySQL)中的数据同步至华为云数据库(例如云数据库RDS for MySQL)中。 表2 同步方案 源数据库云厂商 源数据库类型 目标数据库(华为云) 方案 AWS RDS for MySQL RDS for MySQL 将MySQL同步到MySQL AWS RDS for MySQL TaurusDB 将MySQL同步到TaurusDB AWS Aurora for MySQL RDS for MySQL 将MySQL同步到MySQL AWS Aurora for MySQL TaurusDB 将MySQL同步到TaurusDB AWS RDS for MariaDB RDS for MariaDB 将MariaDB同步到MariaDB AWS RDS for PostgreSQL RDS for PostgreSQL 将PostgreSQL同步到PostgreSQL AWS Aurora for PostgreSQL(非Serverless) RDS for PostgreSQL 将PostgreSQL同步到PostgreSQL AWS RDS for Oracle GaussDB集中式版 将Oracle同步到GaussDB集中式版 AWS RDS for Oracle GaussDB分布式版 将Oracle同步到GaussDB分布式版 AWS RDS for Microsoft SQL Server RDS for SQL Server 将Microsoft SQL Server同步到Microsoft SQL Server AWS RDS for Microsoft SQL Server GaussDB集中式版 5.3.31 将Microsoft SQL Server同步到GaussDB集中式 AWS RDS for Microsoft SQL Server GaussDB分布式版 5.3.32 将Microsoft SQL Server同步到GaussDB分布式版 Azure Database for MySQL RDS for MySQL 将MySQL同步到MySQL Azure Database for MySQL TaurusDB 将MySQL同步到TaurusDB Azure Database for MariaDB RDS for MariaDB 将MariaDB同步到MariaDB Azure Database for PostgreSQL RDS for PostgreSQL 将PostgreSQL同步到PostgreSQL Azure SQL Server on Azure VMs RDS for SQL Server 将Microsoft SQL Server同步到Microsoft SQL Server Azure Azure SQL Database(DB) RDS for SQL Server 将Microsoft SQL Server同步到Microsoft SQL Server Azure Azure SQL Managed Insatnce(MI) RDS for SQL Server 将Microsoft SQL Server同步到Microsoft SQL Server Azure SQL Server on Azure VMs GaussDB集中式版 5.3.31 将Microsoft SQL Server同步到GaussDB集中式 Azure Azure SQL Database(DB) GaussDB集中式版 5.3.31 将Microsoft SQL Server同步到GaussDB集中式 Azure Azure SQL Managed Insatnce(MI) GaussDB集中式版 5.3.31 将Microsoft SQL Server同步到GaussDB集中式 Azure SQL Server on Azure VMs GaussDB分布式版 5.3.32 将Microsoft SQL Server同步到GaussDB分布式版 Azure Azure SQL Database(DB) GaussDB分布式版 5.3.32 将Microsoft SQL Server同步到GaussDB分布式版 Azure Azure SQL Managed Insatnce(MI) GaussDB分布式版 5.3.32 将Microsoft SQL Server同步到GaussDB分布式版 Google Cloud SQL for MySQL RDS for MySQL 将MySQL同步到MySQL Google Cloud SQL for MySQL TaurusDB 将MySQL同步到TaurusDB Google Cloud SQL for PostgreSQL RDS for PostgreSQL 将PostgreSQL同步到PostgreSQL 阿里云 RDS MySQL RDS for MySQL 将MySQL同步到MySQL 阿里云 RDS MySQL TaurusDB 将MySQL同步到TaurusDB 阿里云 PolarDB MySQL RDS for MySQL 将MySQL同步到MySQL 阿里云 PolarDB MySQL TaurusDB 将MySQL同步到TaurusDB 阿里云 RDS MariaDB RDS for MariaDB 将MariaDB同步到MariaDB 阿里云 RDS PostgreSQL RDS for PostgreSQL 将PostgreSQL同步到PostgreSQL 阿里云 PolarDB PostgreSQL标准版和企业版 RDS for PostgreSQL 将PostgreSQL同步到PostgreSQL 腾讯云 TencentDB for MySQL RDS for MySQL 将MySQL同步到MySQL 腾讯云 TencentDB for MySQL TaurusDB 将MySQL同步到TaurusDB 腾讯云 TDSQL-C MySQL RDS for MySQL 将MySQL同步到MySQL 腾讯云 TDSQL-C MySQL TaurusDB 将MySQL同步到TaurusDB 腾讯云 TencentDB for PostgreSQL RDS for PostgreSQL 将PostgreSQL同步到PostgreSQL
  • 支持的数据库类型 目前,DRS实时同步支持的源数据库和目标数据库类型,如下表所示。 表1 同步方案 源数据库类型 目标数据库类型 同步模式 相关文档 本地自建MySQL数据库 E CS 自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL RDS for MySQL 增量数据同步 全量数据同步 全量+增量数据同步 将MySQL同步到MySQL(入云) TaurusDB 增量数据同步 全量+增量数据同步 将MySQL同步到TaurusDB RDS for PostgreSQL 全量数据同步 全量+增量数据同步 将MySQL同步到PostgreSQL GaussDB分布式版 增量数据同步 全量数据同步 全量+增量数据同步 将MySQL同步到GaussDB分布式版(入云) 将MySQL同步到GaussDB分布式版(自建) GaussDB集中式版 增量数据同步 全量数据同步 全量+增量数据同步 将MySQL同步到GaussDB集中式版(入云) 将MySQL同步到GaussDB集中式版(自建) GaussDB(DWS) 说明: 本服务目前已不支持,请使用 数据治理中心 进行同步。 增量数据同步 全量数据同步 全量+增量数据同步 将MySQL同步到GaussDB(DWS) 数据治理 中心 RDS for MariaDB 增量数据同步 全量数据同步 全量+增量数据同步 将MySQL同步到MariaDB(入云) RDS for MySQL 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 增量数据同步 全量+增量数据同步 将MySQL同步到MySQL(出云) Kafka 增量数据同步 全量+增量数据同步 将MySQL同步到Kafka(出云) CSS /ES 全量+增量数据同步 将MySQL同步到CSS/ES(出云) 本地自建Oracle数据库 ECS自建Oracle数据库 全量+增量数据同步 将MySQL同步到Oracle 本地自建MariaDB数据库 ECS自建MariaDB数据库 其他云上MariaDB数据库 增量数据同步 全量数据同步 全量+增量数据同步 将MySQL同步到MariaDB(出云) 本地自建MySQL数据库 ECS自建MySQL数据库 Kafka 增量数据同步 全量+增量数据同步 将MySQL同步到Kafka(自建-自建) CSS/ES 全量+增量数据同步 将MySQL同步到CSS/ES(自建-自建) 本地自建PostgreSQL数据库 ECS自建PostgreSQL数据库 其他云上PostgreSQL数据库 RDS for PostgreSQL RDS for PostgreSQL 增量数据同步 全量数据同步 全量+增量数据同步 将PostgreSQL同步到PostgreSQL GaussDB(DWS) 说明: 目前仅支持白名单用户使用。 全量+增量数据同步 将PostgreSQL同步到GaussDB(DWS) GaussDB集中式版 增量数据同步 全量数据同步 全量+增量数据同步 说明: 目前单增量数据同步仅支持白名单用户使用。 将PostgreSQL同步到GaussDB集中式版 GaussDB分布式版 增量数据同步 全量数据同步 全量+增量数据同步 说明: 目前单增量数据同步仅支持白名单用户使用。 将PostgreSQL同步到GaussDB分布式版 本地自建PostgreSQL数据库 ECS自建PostgreSQL数据库 Kafka 增量数据同步 将PostgreSQL同步到Kafka(自建-自建) RDS for PostgreSQL 本地自建PostgreSQL数据库 ECS自建PostgreSQL数据库 增量数据同步 全量数据同步 全量+增量数据同步 将PostgreSQL同步到PostgreSQL(出云) Kafka 增量数据同步 将PostgreSQL同步到Kafka(出云) DDM RDS for MySQL 增量数据同步 全量数据同步 全量+增量数据同步 将DDM同步到MySQL(入云) 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 增量数据同步 全量数据同步 全量+增量数据同步 将DDM同步到MySQL(出云) DDM 全量+增量数据同步 将DDM同步到DDM GaussDB(DWS) 说明: 本服务目前已不支持,请使用数据治理中心进行同步。 全量+增量数据同步 将DDM同步到GaussDB(DWS) 数据治理中心 本地自建Oracle数据库 ECS自建Oracle数据库 增量数据同步 全量数据同步 全量+增量数据同步 将DDM同步到Oracle Kafka 增量数据同步 将DDM同步到Kafka 本地自建Oracle数据库 ECS自建Oracle数据库 RDS for MySQL 增量数据同步 全量数据同步 全量+增量数据同步 将Oracle同步到MySQL TaurusDB 全量数据同步 全量+增量数据同步 将Oracle同步到TaurusDB RDS for PostgreSQL 全量数据同步 全量+增量数据同步 将Oracle同步到PostgreSQL GaussDB集中式版 增量数据同步 全量数据同步 全量+增量数据同步 将Oracle同步到GaussDB集中式版(入云) 将Oracle同步到GaussDB集中式版(自建-自建) GaussDB分布式版 增量数据同步 全量数据同步 全量+增量数据同步 将Oracle同步到GaussDB分布式版(入云) 将Oracle同步到GaussDB分布式版(自建-自建) DDM 全量数据同步 全量+增量数据同步 将Oracle同步到DDM GaussDB(DWS) 说明: 目前仅支持白名单用户使用。 增量数据同步 全量数据同步 全量+增量数据同步 将Oracle同步到GaussDB(DWS) Kafka 增量数据同步 将Oracle同步到Kafka GaussDB分布式版 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB分布式版同步到MySQL(出云) 将GaussDB分布式版同步到MySQL(自建-自建) 本地自建Oracle数据库 ECS自建Oracle数据库 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB分布式版同步到Oracle(出云) 将GaussDB分布式版同步到Oracle(自建-自建) GaussDB(DWS) 说明: 目前仅支持白名单用户使用。 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB分布式版同步到GaussDB(DWS) Kafka 增量数据同步 将GaussDB分布式版同步到Kafka(出云) 将GaussDB分布式版同步到Kafka(自建-自建) GaussDB分布式版 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB分布式版同步到GaussDB分布式版(出云) 将GaussDB分布式版同步到GaussDB分布式版(自建-自建) GaussDB集中式版 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB分布式版同步到GaussDB集中式版(出云) 将GaussDB分布式版同步到GaussDB集中式版(自建-自建) 本地自建PostgreSQL数据库 ECS自建PostgreSQL数据库 说明: 目前仅支持白名单用户使用。 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB分布式版同步到PostgreSQL(出云) 将GaussDB分布式版同步到PostgreSQL(自建-自建) GaussDB集中式版 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB集中式版同步到MySQL(出云) 将GaussDB集中式版同步到MySQL(自建-自建) 本地自建Oracle数据库 ECS自建Oracle数据库 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB集中式版同步到Oracle(出云) 将GaussDB集中式版同步到Oracle(自建-自建) Kafka 增量数据同步 将GaussDB集中式版同步到Kafka(出云) 将GaussDB集中式版同步到Kafka(自建-自建) GaussDB(DWS) 说明: 目前仅支持白名单用户使用。 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB集中式版同步到GaussDB(DWS) GaussDB分布式版 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB集中式版同步到GaussDB分布式版(出云) 将GaussDB集中式版同步到GaussDB分布式版(自建-自建) GaussDB集中式版 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB集中式版同步到GaussDB集中式版(出云) 将GaussDB集中式版同步到GaussDB集中式版(自建-自建) 本地自建PostgreSQL数据库 ECS自建PostgreSQL数据库 说明: 目前仅支持白名单用户使用。 全量数据同步 增量数据同步 全量+增量数据同步 将GaussDB集中式版同步到PostgreSQL(出云) 将GaussDB集中式版同步到PostgreSQL(自建-自建) TaurusDB TaurusDB 增量数据同步 全量+增量数据同步 将TaurusDB同步到TaurusDB 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL 增量数据同步 全量+增量数据同步 将TaurusDB同步到MySQL GaussDB(DWS) 说明: 本服务目前已不支持,请使用数据治理中心进行同步。 全量+增量数据同步 数据治理中心 Kafka 增量数据同步 全量+增量数据同步 将TaurusDB同步到Kafka CSS/ES 全量+增量数据同步 将TaurusDB同步到CSS/ES 本地自建Oracle数据库 ECS自建Oracle数据库 全量+增量数据同步 将TaurusDB同步到Oracle DDS 自建MongoDB 其他云上MongoDB 增量数据同步支持以下方式: 副本集到副本集 集群到集群(源数据库集群版本不小于4.0) 将DDS同步到MongoDB Kafka 增量数据同步 将DDS同步到Kafka DB2 for LUW GaussDB分布式版 全量数据同步 全量+增量数据同步 将DB2 for LUW同步到GaussDB集中式版(入云) 将DB2 for LUW同步到GaussDB集中式版(自建) GaussDB集中式版 全量数据同步 全量+增量数据同步 将DB2 for LUW同步到GaussDB分布式版(入云) 将DB2 for LUW同步到GaussDB分布式版 自建) TiDB TaurusDB 全量+增量数据同步 将TiDB同步到TaurusDB 本地自建Microsoft SQL Server数据库 ECS自建Microsoft SQL Server数据库 其他云上完全兼容Microsoft SQL Server的数据库 RDS for SQL Server GaussDB(DWS) 说明: 目前仅支持白名单用户使用。 全量+增量数据同步 将Microsoft SQL Server同步到GaussDB(DWS) GaussDB集中式版 增量数据同步 全量数据同步 全量+增量数据同步 将Microsoft SQL Server同步到GaussDB集中式版 GaussDB分布式版 增量数据同步 全量数据同步 全量+增量数据同步 将Microsoft SQL Server同步到GaussDB分布式版 Microsoft SQL Server 全量+增量数据同步 将Microsoft SQL Server同步到Microsoft SQL Server RDS for MySQL 说明: 目前仅支持白名单用户使用。 增量数据同步 全量数据同步 全量+增量数据同步 将Microsoft SQL Server同步到MySQL TaurusDB 说明: 目前仅支持白名单用户使用。 增量数据同步 全量数据同步 全量+增量数据同步 将Microsoft SQL Server同步到TaurusDB PostgreSQL 说明: 目前仅支持白名单用户使用。 增量数据同步 全量数据同步 全量+增量数据同步 将Microsoft SQL Server同步到PostgreSQL RDS for SQL Server Kafka 说明: 目前仅支持白名单用户使用。 增量数据同步 将Microsoft SQL Server同步到Kafka(出云) 本地自建Microsoft SQL Server数据库 ECS自建Microsoft SQL Server数据库 其他云上完全兼容Microsoft SQL Server的数据库 Kafka 说明: 目前仅支持白名单用户使用。 增量数据同步 将Microsoft SQL Server同步到Kafka(自建-自建) 本地自建Mongo数据库 ECS自建Mongo数据库 其他云上Mongo数据库 DDS DDS 全量+增量数据同步支持以下方式: 副本集到副本集 将MongoDB同步到DDS 本地自建MariaDB数据库 ECS自建MariaDB数据库 其他云上MariaDB数据库 RDS for MariaDB 全量+增量数据同步 将MariaDB同步到MariaDB 本地自建MariaDB数据库 ECS自建MariaDB数据库 其他云上MariaDB数据库 RDS for MySQL 增量数据同步 全量+增量数据同步 将MariaDB同步到MySQL TaurusDB 增量数据同步 全量+增量数据同步 将MariaDB同步到TaurusDB RDS for MariaDB 本地自建MariaDB数据库 ECS自建MariaDB数据库 其他云上MariaDB数据库 全量+增量数据同步 将MariaDB同步到MariaDB Cassandra GeminiDB Cassandra 全量数据同步 将Cassandra同步到GeminiDB Cassandra 其他云上DynamoDB(Web服务) GeminiDB Dynamo 说明: 目前仅支持白名单用户使用。 全量数据同步 全量+增量数据同步 将Dynamo同步到GeminiDB Dynamo 本地自建官方开源单机或主备Redis数据库 ECS自建官方开源单机或主备Redis数据库 GeminiDB Redis 说明: 目前仅支持白名单用户使用。 全量数据同步 全量+增量数据同步 将Redis 同步到GeminiDB Redis 本地自建官方Redis开源集群 ECS自建官方Redis开源集群 GeminiDB Redis 说明: 目前仅支持白名单用户使用。 全量+增量数据同步 将Redis集群同步到GeminiDB Redis GeminiDB Redis 本地自建开源Codis ECS自建开源Codis 本地自建Redis单机/主备 ECS自建Redis单机/主备 GeminiDB Redis 说明: 目前仅支持白名单用户使用。 全量+增量数据同步 将GeminiDB Redis同步到Redis 本地自建Redis集群 ECS自建Redis集群 说明: 目前仅支持白名单用户使用。 全量+增量数据同步 将GeminiDB Redis同步到Redis集群
  • 支持审计操作的关键列表 云审计服务是安全解决方案中专业的日志审计服务,记录了数据复制服务的相关操作事件,方便您日后的查询、审计和回溯。 表1 云审计服务支持的数据复制服务操作列表 操作名称 资源类型 事件名称 创建任务 job createJob 编辑任务 job modifyJob 删除任务 job deleteJob 启动任务 job startJob 续传任务 job retryJob 父主题: 对接云审计服务
  • DRS对比任务取消后,数据库有对比任务的查询进程未结束 以源库Mysql数据库为例,进行行数对比,取消对比任务,在源库有对比任务的查询进程未及时结束,清理残留进程,按照如下步骤操作: 使用管理员权限用户登录Mysql数据库,执行show processlist; 按照Host和Command获取Id,其中Host是drs任务节点IP,Command是select count(1)开头的查询语句. 步骤2获取到的id是112773,执行kill 112773; 执行show processlist;再次确认残留进程是否删掉. 父主题: 数据对比
  • 任务状态说明 校验任务提供了多种任务状态,以便区分不同的阶段,方便用户进行任务管理。任务的状态和说明,请参见表1。 表1 任务状态和说明 状态 说明 配置 任务已创建,但还没有启动任务,可以继续配置任务。 启动中 正在启动校验任务。 运行中 校验任务运行中。 任务启动失败 校验任务启动失败。 结束任务中 正在释放校验任务所使用的实例和资源。 已结束 释放校验任务所占实例成功。 父主题: 校验任务管理
  • 操作步骤 在“校验任务管理 ”页面,选择需要修改校验对象的任务,单击任务名称。 页面跳转至“基本信息”,切换到“对象选择”页签。 选择需要增加或者修改的表,单击操作列的“编辑”。 图1 对象选择 在“对象选择”页面,进行对象选择,可参考4。 在“校验规则”页,可选择需要的表进进行规则校验。 如果不需要校验规则,单击“下一步”。 如果需要进行校验规则,可参考5,设置相关规则。 在“预检查”页面,进行任务预校验,校验全部通过后,单击“下一步”。 在“任务确认”页面,确认校验任务信息无误后,单击“提交并启动”。
  • 创建对比任务 在“校验任务管理”界面,选择指定的校验任务,单击任务名称。 页面跳转至“基本信息”,切换到“校验任务”页签,进入“对比”信息页面。 选择对比的内容。 创建对象级对比:选择“对象级对比”页签,单击“开始对比”后稍等一段时间再单击,观察源数据库和目标数据库的各个对比项结果是否一致。若需要查看结果详情,可单击指定对比项操作列的“详情”按钮。 图1 对象对比 创建数据级对比:选择“数据级对比”页签,单击“创建对比任务”,选择“对比类型”和“对象选择”,单击“是”提交对比任务。 图2 创建数据对比任务 行数对比:用于对比源和目标端的表的行数是否相等。 内容对比:用于对比源和目标端的表的内容是否相同。 静态对比:适用于无数据变化的非业务时间。 对象选择:可根据具体的业务场景选择需要进行对比的对象。 创建数据过滤对比:选择“数据级对比”页签,单击“创建对比任务”,选择“对比类型”、“对比方式”勾选“进行数据过滤”选项。 图3 创建数据过滤对比任务 选择具体的对象,单击“下一步”,选择需要校验的表,输入过滤条件,单击“校验规则”。 图4 选择对象 校验完成后,点击“生成过滤规则”,然后单击“是”完成对比任务的创建。 图5 过滤规则 对比任务提交成功后,在“数据级对比”页签,单击刷新列表,可以查看到所选对比类型的对比结果。 图6 同步数据对比 若需要查看行数对比或者内容对比详情,可单击指定对比类型操作列的“查看对比报表”,页面将跳转至新的窗口,可观察对比结果的详细情况。 图7 数据级对比详情 单击“导出报告”,可导出对比报告。 导出的报告,可以单击“下载报告”,将报告下载至本地。 已取消的对比任务也支持查看对比报表。 导出的报告保留24小时,请尽快下载至本地。
  • 对比使用场景 对比实时校验项可以清晰反馈出源数据库和目标数据库的数据是否存在差异。为了尽可能减少业务的影响和业务中断时间,校验场景提供了以下几种对比方式: 对象级对比:支持对数据库、表、索引等进行对比。 数据级对比-行对比:对比选择的表的行数是否一致,只查询表的行数,对比速度较快,建议优先使用。 数据级比对-内容比对-静态比对:比对选择的表的内容是否一致,对比速度取决于表的数据量。 内容对比和行数对比不能同时运行。 内容对比和对象级对比不能同时运行。
  • 数据库权限 表2 数据库权限 数据库 校验所需权限 MySQL/RDS for MySQL SELECT TaurusDB SELECT DDM SELECT TiDB SELECT MariaDB SELECT PostgresSQL/RDS for PostgreSQL 数据库的CONNECT权限,模式的USAGE权限,表的SELECT权限,序列的SELECT权限。 Oracle 需要具有CREATE SESSION,SELECT ANY DICTIONARY,针对单表的SELECT权限。 GaussDB集中式版 需要使用root或其他具有Sysadmin角色的数据库用户登录POSTGRES基库,赋予用户以下权限: 库级权限:DATABASE的CONNECT权限。 SCHEMA级权限:SCHEMA的USAGE权限。 表级权限:SCHEMA下所有表的SELECT权限。 GaussDB分布式版 需要使用root或其他具有Sysadmin角色的数据库用户登录POSTGRES基库,赋予用户以下权限: 库级权限:DATABASE的CONNECT权限。 SCHEMA级权限:SCHEMA的USAGE权限。 表级权限:SCHEMA下所有表的SELECT权限。 MongoDB/DDS/AWS DocumentDB 副本集:连接源数据库的用户需要有admin库的readAnyDatabase权限,有local库的read权限。 单节点:连接源数据库的用户需要有admin库的readAnyDatabase权限,有local库的read权限。 Microsoft SQL Server 需要具备sysadmin权限,或者待同步数据库的db_datareader或db_owner权限。 DB2 for LUW 需要用户具有CONNECT、DATAAC CES S权限。 如果源数据库表结构存在DB2SECURITYLABEL字段类型,需要确保该用户具有该表全部数据的读权限。 CSS/ES 需要用户具有READ权限。 Cassandra 需要具备以下最小权限: 权限系统表system_auth.roles和system_auth.role_permissions的SELECT权限、所需同步表的SELECT权限
  • 支持的数据库类型 目前,DRS校验任务支持的源数据库和目标数据库类型,如下表所示。 表1 支持的数据库 源数据库类型 目标数据库类型 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL RDS for MySQL TaurusDB RDS for PostgreSQL GaussDB分布式版 GaussDB集中式版 RDS for MariaDB RDS for MySQL 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 CSS/ES 本地自建Oracle数据库 ECS自建Oracle数据库 本地自建MariaDB数据库 ECS自建MariaDB数据库 其他云上MariaDB数据库 本地自建MySQL数据库 ECS自建MySQL数据库 CSS/ES 本地自建PostgreSQL数据库 ECS自建PostgreSQL数据库 其他云上PostgreSQL数据库 RDS for PostgreSQL RDS for PostgreSQL GaussDB集中式版 GaussDB分布式版 RDS for PostgreSQL 本地自建PostgreSQL数据库 ECS自建PostgreSQL数据库 DDM RDS for MySQL 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 DDM 本地自建Oracle数据库 ECS自建Oracle数据库 本地自建Oracle数据库 ECS自建Oracle数据库 RDS for MySQL TaurusDB RDS for PostgreSQL GaussDB集中式版 GaussDB分布式版 DDM GaussDB分布式版 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL 本地自建Oracle数据库 ECS自建Oracle数据库 GaussDB分布式版 GaussDB集中式版 GaussDB集中式版 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL 本地自建Oracle数据库 ECS自建Oracle数据库 GaussDB分布式版 GaussDB集中式版 TaurusDB TaurusDB 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL CSS/ES 本地自建Oracle数据库 ECS自建Oracle数据库 DDS 自建MongoDB 其他云上MongoDB DB2 for LUW GaussDB分布式版 GaussDB集中式版 TiDB TaurusDB - GaussDB集中式版 GaussDB分布式版 Microsoft SQL Server 本地自建Mongo数据库 ECS自建Mongo数据库 其他云上Mongo数据库 DDS DDS 本地自建MariaDB数据库 ECS自建MariaDB数据库 其他云上MariaDB数据库 RDS for MariaDB 本地自建MariaDB数据库 ECS自建MariaDB数据库 其他云上MariaDB数据库 RDS for MySQL TaurusDB RDS for MariaDB 本地自建MariaDB数据库 ECS自建MariaDB数据库 其他云上MariaDB数据库 Cassandra GeminiDB Cassandra 其他云上DynamoDB(Web服务) GeminiDB Dynamo 说明: 目前仅支持白名单用户使用。 Redis GeminiDB Redis GeminiDB Redis Redis
  • 操作说明 在“实时灾备”页面,单击“创建灾备任务”。 在“灾备实例”页面,填选任务名称、描述、灾备实例等信息,其中DRS任务类型选择“双AZ”,完成后单击“下一步”。 图1 主备实例 返回“实时灾备管理”页面可以可以看到,DRS会为每一个子任务创建一个备任务。 图2 主备任务 配置并启动灾备正向任务后,DRS会启动主AZ任务进行同步,此时备AZ任务处于暂停状态。 图3 主备倒换前 当正向任务到灾备中时,启动反向任务,反向任务的备任务处于暂停状态。 当正向任务主AZ任务发生异常,DRS会自动启动备AZ任务继续进行同步。 图4 主备倒换后 当反向任务主AZ任务发生异常,DRS会自动启动备AZ任务继续进行同步。 图5 主备任务
  • 支持的同步对象范围 在使用DRS进行同步时,不同类型的同步任务,支持的同步对象范围不同,详细情况可参考表2。DRS会根据用户选择,在“预检查”阶段对同步对象进行自动检查。 表2 支持的同步对象 类型名称 使用须知 同步对象范围 同步对象选择维度:仅支持全部同步。 支持的同步对象: 支持String,Hash,List,Set,Sorted Set类型同步。 不支持Lua脚本和事务的同步。 不支持Stream,Exhash ,Bloomfilter类型同步。 不支持自定义类型。 不支持同步目标库不支持的命令。 不支持同步没有hash_tag的批量操作命令。
  • 使用须知 DRS全量+增量同步过程一般包含四个阶段:任务启动阶段、全量阶段、增量阶段、结束任务阶段(单全量任务则包含三个阶段)。为了确保同步各个阶段的平顺,在创建同步任务前,请务必阅读以下使用须知。 表3 使用须知 类型名称 使用和操作约定 任务启动前须知 源数据库要求: 源库必须是本云GeminiDB Redis实例。 一个GeminiDB Redis实例只能同时作为一个DRS任务的源端数据库。 源数据库GeminiDB Redis内核版本(gemini version)为4.2.0及以上。 notify-keyspace-events 配置项开启通知过期事件互斥,如需使用同步功能,需关闭 通知过期事件的功能. 创建全量+增量任务,需要支持PSYNC命令。 源数据库GeminiDB Redis需要开启复制功能。 set config set enable-replication 1。 为准确计算时延,DRS会在源库中插入一个前缀为DRS_REDIS_TIMESTAMP_HEARTBEAT的 key记录更新时间点,如果源库为集群架构,DRS会在源库各个shard上均插入该key,同步过程中会过滤该key,同步任务结束,该key就会过期。增量过程中,该key值在源库存在,在目标库不存在,该key值对比结果可能会不一致。若实际业务中也存在前缀为DRS_REDIS_TIMESTAMP_HEARTBEAT的key值,可能导致数据不一致。 源库为只读实例或者DRS无写入权限时,上报的时延可能不准。 目标数据库要求: 同步前目标库建议为空。 目标数据库实例必须有足够的存储空间。 暂不支持Redis 6.0版本填写用户名。 如果目标库是通过容器、云服务器、或NAT等方式创建的集群,请保证集群的config设置可以使DRS发现全部的主备节点。 其他使用须知: 全量+增量任务使用解析RDB的方式读取数据。 如果源库GeminiDB Redis复制功能超时时间repl-timeout过小(当前默认是3600s),可以适当进行扩大,防止任务失败时间过长,导致任务无法续传。 同步过程中,如果源库GeminiDB Redis增配导致任务失败,需要重置任务。且为保障数据一致性,在重置任务前,建议先清空已迁移至目标的数据。(任务增量中且源库内核版本(gemini version)6.3.0及以上无需重置) 同步过程中,不支持源库GeminiDB Redis减配,如果源库需要减配,请重新创建同步任务。(任务增量中且源库内核版本(gemini version)6.3.0及以上无需重置) 对于List对象,由于在调用PSYNC进行重传时,不会对目标端已有的数据进行清空,可能导致出现重复数据。 源库GeminiDB Redis为主备版时,不支持在源库执行包含多个key的命令(例如mset等),否则可能因为key不在同一个slot或者涉及多个slot,导致报错:CROSSSLOT Keys in request don't hash to the same slot。 全量同步阶段须知 同步过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。 同步过程中,不允许对正在同步中的目标数据库进行修改操作。 增量同步过程须知 同步过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。 同步过程中,不允许对正在同步中的目标数据库进行修改操作。
  • 使用建议 如果您使用的是全量同步模式,确保源和目标数据库无业务写入,保证同步前后数据一致。如果您使用的是全量+增量同步模式,支持在源数据库有业务数据写入的情况下进行迁移。 数据库同步与环境多样性和人为操作均有密切关系,为了确保同步的平顺,建议您在进行正式的数据库迁移之前进行一次演练,可以帮助您提前发现问题并解决问题。 同步阶段,确保目标数据库无业务写入,保证同步前后数据一致。 基于以下原因,建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性同步成功率,避免同步对业务造成性能影响。 在网络无瓶颈的情况下,全量同步会对源数据库增加约20MB/s的查询压力,以及占用2~4个CPU。 DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。 更多DRS对数据库的影响,可参考DRS对源数据库和目标数据库有什么影响。
  • 使用须知 DRS全量+增量同步过程一般包含四个阶段:任务启动阶段、全量阶段、增量阶段、结束任务阶段(单全量任务则包含三个阶段)。为了确保同步各个阶段的平顺,在创建迁移任务前,请务必阅读以下使用须知。 表3 使用须知 类型名称 使用和操作限制 任务启动前须知 源数据库要求: 源库必须是本云GeminiDB Redis实例。 一个GeminiDB Redis实例只能同时作为一个DRS任务的源端数据库。 源数据库GeminiDB Redis内核版本(gemini version)为4.2.0及以上;对于单增量任务,源库内核版本(gemini version)需要为6.3.0及以上。 源库存在数据的数据库序号,需要小于目标库的最大序号,比如源库10号库存在数据,则目标库最大序号需要大于或等于10。 创建全量+增量任务,需要支持PSYNC命令。 源数据库GeminiDB Redis需要开启复制功能。 set config set enable-replication 1。 notify-keyspace-events 配置项开启通知过期事件互斥,如需使用迁移功能,需关闭 通知过期事件的功能. 为准确计算时延,DRS会在源库中插入一个前缀为DRS_REDIS_TIMESTAMP_HEARTBEAT的 key记录更新时间点,如果源库为集群架构,DRS会在源库各个shard上均插入该key,同步过程中会过滤该key,同步任务结束,该key就会过期。增量过程中,该key值在源库存在,在目标库不存在,该key值对比结果可能会不一致。若实际业务中也存在前缀为DRS_REDIS_TIMESTAMP_HEARTBEAT的key值,可能导致数据不一致。 源库为只读实例或者DRS无写入权限时,上报的时延可能不准。 目标数据库要求: 同步前目标库建议为空。 目标数据库实例必须有足够的存储空间。 如果目标库是Redis 5.0主备版,目标库测试连接请填写主节点、从节点、哨兵节点的所有IP和对应端口,且主从节点和哨兵节点的密码必须设置成一致。 如果目标库是Redis 4.0主备版,且主从节点设置了requirepass参数(有密码),DRS此时把主备Redis当成单机版Redis,暂不支持目标库发生主备倒换场景,目标库测试连接请只填写主节点IP和端口。 如果目标库是Redis 4.0主备版,且主从节点没有设置requirepass参数(无密码),可以支持目标库发生主备倒换场景,目标库测试连接请填写主节点、从节点、哨兵节点的所有IP和对应端口。 其他使用须知: 全量+增量任务使用解析RDB的方式读取数据。 如果源库GeminiDB Redis复制功能超时时间repl-timeout过小(当前默认是3600s),可以适当进行扩大,防止任务失败时间过长,导致任务无法续传。 同步过程中,如果源库GeminiDB Redis增配导致任务失败,需要重置任务。且为保障数据一致性,在重置任务前,建议先清空已迁移至目标的数据。(任务增量中且源库内核版本(gemini version)6.3.0及以上无需重置) 同步过程中,不支持源库GeminiDB Redis减配,如果源库需要减配,请重新创建同步任务。(任务增量中且源库内核版本(gemini version)6.3.0及以上无需重置) 对于List对象,由于在调用PSYNC进行重传时,不会对目标端已有的数据进行清空,可能导致出现重复数据。 源库GeminiDB Redis为主备版时,不支持在源库执行包含多个key的命令(例如mset等),否则可能因为key不在同一个slot或者涉及多个slot,导致报错:CROSSSLOT Keys in request don't hash to the same slot。 全量同步阶段须知 同步过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。 同步过程中,不允许对正在迁移中的目标数据库进行修改操作。 增量同步过程须知 同步过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。 同步过程中,不允许对正在迁移中的目标数据库进行修改操作。
  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 GeminiDB Redis(经典部署模式:Proxy集群版、主备版) 本地自建Codis集群(开源Codis 3.0及以上版本) ECS自建Codis集群(开源Codis 3.0及以上版本) 本地自建Redis单机版(2.8.x、3.0.x、3.2.x、4.0.x、5.0.x版本) ECS自建Redis单机版(2.8.x、3.0.x、3.2.x、4.0.x、5.0.x版本) 本地自建Redis主备版(4.0.x、5.0.x版本) ECS自建Redis主备版(4.0.x、5.0.x版本) GeminiDB Redis(经典部署模式:Proxy集群版、主备版) 目前仅支持白名单用户使用。
  • 支持的同步对象范围 在使用DRS进行同步时,不同类型的同步任务,支持的同步对象范围不同,详细情况可参考表2。DRS会根据用户选择,在“预检查”阶段对同步对象进行自动检查。 表2 支持的同步对象 类型名称 使用须知 同步对象范围 同步对象选择维度:仅支持全部同步。 支持的同步对象: 支持String,Hash,List,Set,Sorted Set类型同步。 不支持Lua脚本和事务的同步。 不支持Stream,Exhash ,Bloomfilter类型同步。 不支持自定义类型。 不支持同步目标库不支持的命令。
  • 使用建议 如果您使用的是全量同步模式,确保源和目标数据库无业务写入,保证同步前后数据一致。如果您使用的是全量+增量同步模式,支持在源数据库有业务数据写入的情况下进行迁移。 数据库同步与环境多样性和人为操作均有密切关系,为了确保同步的平顺,建议您在进行正式的数据库迁移之前进行一次演练,可以帮助您提前发现问题并解决问题。 同步阶段,确保目标数据库无业务写入,保证同步前后数据一致。 基于以下原因,建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性同步成功率,避免同步对业务造成性能影响。 在网络无瓶颈的情况下,全量同步会对源数据库增加约20MB/s的查询压力,以及占用2~4个CPU。 DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。 更多DRS对数据库的影响,可参考DRS对源数据库和目标数据库有什么影响。
  • 使用须知 DRS全量+增量同步过程一般包含四个阶段:任务启动阶段、全量阶段、增量阶段、结束任务阶段(单全量任务则包含三个阶段)。为了确保同步各个阶段的平顺,在创建同步任务前,请务必阅读以下使用须知。 表3 使用须知 类型名称 使用和操作限制 任务启动前须知 源数据库对象要求: 创建全量+增量任务,需要支持PSYNC命令。 为准确计算时延,DRS会在源库中插入一个前缀为DRS_REDIS_TIMESTAMP_HEARTBEAT的 key记录更新时间点,如果源库为集群架构,DRS会在源库各个shard上均插入该key,同步过程中会过滤该key,同步任务结束,该key就会过期。增量过程中,该key值在源库存在,在目标库不存在,该key值对比结果可能会不一致。若实际业务中也存在前缀为DRS_REDIS_TIMESTAMP_HEARTBEAT的key值,可能导致数据不一致。 源库为只读实例或者DRS无写入权限时,上报的时延可能不准。 目标数据库对象要求: 目标库必须是本云GeminiDB Redis实例。 同步前目标库GeminiDB Redis实例建议为空。 目标数据库实例版本要高于或等于源数据库版本。 其他使用须知: 全量+增量任务使用解析RDB的方式读取数据。 迁移Lua脚本时,源库需要同时有其它数据,否则无法解析出RDB中的Lua脚本,导致Lua脚本同步失败。 DRS不会对目标库进行FLUSH等高危操作,所以对于List列表类型数据,可能出现重复的数据。 源库测试连接时,必须填写Redis集群所有分片的IP地址。同时为了避免影响源端Redis实例的业务访问,强烈建议从源实例的副本节点(从节点)进行数据同步,即推荐填写Redis集群的Slave节点IP地址。 为保障增量同步有效进行,建议同步前,评估源库Redis参数,将源库的配置文件redis.conf中repl-backlog-size参数的值适当调大。 同步过程中,如果源库Redis集群发生扩缩容(例如增加或者减少分片)、规格变配(例如扩大内存),则需要重新配置同步任务。且为保证数据一致性,在重新配置任务前,建议先清空已迁移至目标GeminiDB Redis的数据。 如果源库中的某些Key设置了过期(expire)策略,由于可能存在Key已过期但未被及时删除的情况,所以在目标库中查看Key数量(例如通过info命令查看)时会比源库的Key数量少。为保障数据的一致性,建议设置延长Key的过期时间。 全量迁移阶段须知 同步过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。 同步过程中,如果源库Redis集群发生主备倒换,任务会失败,需要清空目标库重置任务。 同步过程中,不允许对正在迁移中的目标数据库进行修改操作。 增量迁移阶段须知 同步过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。 同步过程中,如果源库Redis集群发生主备倒换,任务会失败,需要清空目标库重置任务。 同步过程中,不允许对正在同步中的目标数据库进行修改操作。
  • 支持的同步对象范围 在使用DRS进行同步时,不同类型的同步任务,支持的同步对象范围不同,详细情况可参考表2。DRS会根据用户选择,在“预检查”阶段对同步对象进行自动检查。 表2 支持的同步对象 类型名称 使用须知 同步对象范围 同步对象选择维度:全部同步。 支持的同步对象: 支持String,Hash,List,Set,Sorted Set类型迁移。 支持Lua脚本迁移。 不支持事务的迁移。 不支持Stream,BitMap,HyperLogLog,GEO类型迁移。 不支持自定义类型。 不支持迁移目标库GeminiDB Redis不支持的命令。
  • 使用建议 如果您使用的是全量同步模式,确保源和目标数据库无业务写入,保证同步前后数据一致。如果您使用的是全量+增量同步模式,支持在源数据库有业务数据写入的情况下进行同步。 数据库同步与环境多样性和人为操作均有密切关系,为了确保同步的平顺,建议您在进行正式的数据库同步之前进行一次演练,可以帮助您提前发现问题并解决问题。 同步阶段,确保目标数据库无业务写入,保证同步前后数据一致。 基于以下原因,建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性同步成功率,避免同步对业务造成性能影响。 在网络无瓶颈的情况下,全量同步会对源数据库增加约20MB/s的查询压力,以及占用2~4个CPU。 DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。 更多DRS对数据库的影响,可参考DRS对源数据库和目标数据库有什么影响。
  • 使用建议 如果您使用的是全量同步模式,确保源和目标数据库无业务写入,保证同步前后数据一致。如果您使用的是全量+增量同步模式,支持在源数据库有业务数据写入的情况下进行同步。 数据库同步与环境多样性和人为操作均有密切关系,为了确保同步的平顺,建议您在进行正式的数据库同步之前进行一次演练,可以帮助您提前发现问题并解决问题。 同步阶段,确保目标数据库无业务写入,保证同步前后数据一致。 基于以下原因,建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性同步成功率,避免同步对业务造成性能影响。 在网络无瓶颈的情况下,全量同步会对源数据库增加约20MB/s的查询压力,以及占用2~4个CPU。 DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。 更多DRS对数据库的影响,可参考DRS对源数据库和目标数据库有什么影响。
  • 使用须知 DRS全量+增量同步过程一般包含四个阶段:任务启动阶段、全量阶段、增量阶段、结束任务阶段(单全量任务则包含三个阶段)。为了确保同步各个阶段的平顺,在创建同步任务前,请务必阅读以下使用须知。 表3 使用须知 类型名称 使用和操作限制 任务启动前须知 源数据库对象要求: 创建全量+增量任务,需要支持PSYNC命令。 为准确计算时延,DRS会在源库中插入一个前缀为DRS_REDIS_TIMESTAMP_HEARTBEAT的 key记录更新时间点,如果源库为集群架构,DRS会在源库各个shard上均插入该key,同步过程中会过滤该key,同步任务结束,该key就会过期。增量过程中,该key值在源库存在,在目标库不存在,该key值对比结果可能会不一致。若实际业务中也存在前缀为DRS_REDIS_TIMESTAMP_HEARTBEAT的key值,可能导致数据不一致。 源库为只读实例或者DRS无写入权限时,上报的时延可能不准。 目标数据库对象要求: 目标库必须是本云GeminiDB Redis实例。 迁移前目标库GeminiDB Redis实例必须为空。 目标数据库实例版本要高于或等于源数据库版本。 其他使用须知: 单全量任务使用SCAN方式读取数据。 全量+增量任务使用解析RDB的方式读取数据。 源库不支持PSYNC命令的情况下,请使用单全量模式同步。 源库支持PSYNC命令,请使用全量+增量模式同步。 单全量任务不支持同步过期时间。 单全量任务不支持Lua脚本迁移。 同步Lua脚本时,源库需要同时有其它数据,否则无法解析出RDB中的Lua脚本,导致Lua脚本迁移失败。 源库为自建单机版Redis时,增量阶段支持append,blpop,brpop,decr,decrby,del,expire,expireat,flushall,flushdb,getset,hdel,hincrby,hincrbyfloat,hmset,hset,hsetnx,incr,incrby,incrbyfloat,linsert,lpop,lpush,lpushx,lrem,lset,ltrim,move,mset,msetnx,multi,persist,pexpire,pexpireat,psetex,publish,rename,rpop,rpush,rpushx,sadd,select,set,setbit,setex,setnx,setrange,smove,spop,srem,zadd,zincrby,zrem,zremrangebylex,zremrangebyrank,zremrangebyscore。 源库为单机版Redis时,由于GeminiDB Redis只允许单个命令操作单个slot,若在源库执行包含多个key的命令操作时,key不在同一个slot或涉及多个slot,会出现报错:CROSSSLOT Keys in request don't hash to the same slot。 DRS不会对目标库进行FLUSH等高危操作,所以对于List列表类型数据,可能出现重复的数据。 为保障增量迁移有效进行,建议同步前,评估源库Redis参数,将源库的配置文件redis.conf中repl-backlog-size参数的值适当调大。 同步过程中,如果自建Redis发生扩缩容(例如增加或者减少分片)、规格变配(例如扩大内存),则需要重新配置同步任务。且为保证数据一致性,在重新配置任务前,建议先清空已迁移至目标GeminiDB Redis的数据。 如果源库中的某些Key设置了过期(expire)策略,由于可能存在Key已过期但未被及时删除的情况,所以在目标库中查看Key数量(例如通过info命令查看)时会比源库的Key数量少。为保障数据的一致性,建议设置延长Key的过期时间。 全量迁移阶段须知 同步过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。 同步过程中,不允许对正在迁移中的目标数据库进行修改操作。 增量迁移阶段须知 同步过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。 同步过程中,不允许对正在迁移中的目标数据库进行修改操作。
  • 支持的同步对象范围 在使用DRS进行同步时,不同类型的同步任务,支持的同步对象范围不同,详细情况可参考表2。DRS会根据用户选择,在“预检查”阶段对同步对象进行自动检查。 表2 支持的同步对象 类型名称 使用须知 同步对象范围 同步对象选择维度:支持选择库级。 支持的同步对象: 支持String,Hash,List,Set,Sorted Set类型同步。 支持Lua脚本迁移(单全量任务不支持)。 不支持事务的同步。 不支持Stream,BitMap,HyperLogLog,GEO类型同步。 不支持自定义类型。 不支持同步目标库GeminiDB Redis不支持的命令。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全