华为云用户手册

  • 支持审计的关键操作列表 通过云审计服务,您可以记录与GeminiDB Cassandra相关的操作事件,便于日后的查询、审计和回溯。 表1 GeminiDB Cassandra的关键操作列表 操作名称 资源类型 事件名称 创建实例 instance NoSQLCreateInstance 删除实例 instance NoSQLDeleteInstance 扩容节点 instance NoSQLEnlargeInstance 缩容节点 instance NoSQLReduceInstance 重启实例 instance NoSQLRestartInstance 恢复到新实例 instance NoSQLRestoreNewInstance 磁盘扩容 instance NoSQLExtendInstanceVolume 重置密码 instance NoSQLResetPassword 修改实例名称 instance NoSQLRenameInstance 规格变更 instance NoSQLResizeInstance 绑定弹性公网IP instance NoSQLBindEIP 解绑弹性公网IP instance NoSQLUnBindEIP 实例冻结 instance NoSQLFreezeInstance 实例解冻 instance NoSQLUnfreezeInstance 创建备份 backup NoSQLCreateBackup 删除备份 backup NoSQLDeleteBackup 设置备份策略 backup NoSQLSetBackupPolicy 添加实例标签 tag NoSQLAddTags 修改实例标签 tag NoSQLModifyInstanceTag 删除实例标签 tag NoSQLDeleteInstanceTag 创建参数模板 parameterGroup NoSQLCreateConfigurations 修改参数模板 parameterGroup NoSQLUpdateConfigurations 修改实例参数 parameterGroup NoSQLUpdateInstanceConfigurations 复制参数模板 parameterGroup NoSQLCopyConfigurations 重置参数模板 parameterGroup NoSQLResetConfigurations 应用参数模板 parameterGroup NoSQLApplyConfigurations 删除参数模板 parameterGroup NoSQLDeleteConfigurations 删除扩容失败的节点 instance NoSQLDeleteEnlargeFailNode 切换SSL instance NoSQLSwitchSSL 修改实例安全组 instance NoSQLModifySecurityGroup 存储空间自动扩容 instance NoSQLModifyAutoEnlargePolicy 搭建双活关系 instance NoSQLBuildBiactiveInstance 实例导出参数模板 instance NoSQLSaveConfigurations 回收站策略 instance NoSQLModifyRecyclePolicy 父主题: 审计
  • 新建独享型负载均衡器并进行配置 购买独享型负载均衡器,详情参考创建独享型负载均衡器。需要注意以下事项: 选择“规格”时,需要选择网络型(TCP/UDP)。 在网络配置中,必须开启‘跨VPC后端’, 以支持负载均衡器添加后端IP。 需要使用新创建或者已有的“弹性公网IP”,以支持公网访问。 添加监听器,详情参考添加TCP监听器。需要注意以下事项: 图1 添加监控器 在“配置监听器”时,前端协议选择TCP,前端端口建议设置为Redis常用端口6379。 在配置“添加后端服务器”时,选择“跨VPC后端”,单击“添加跨VPC后端”。在跨VPC后端IP,配置GeminiDB Redis实例的负载均衡地址、端口信息。 “配置健康检查”保持开启即可。 创建对等连接 ,选择“本端VPC”和“对端VPC”。 “本端VPC”选择ELB所在的VPC。 若选择的“所属VPC”和GeminiDB Redis在同一个虚拟私有云(VPC)中,“对端VPC”选择任一个非ELB所在的VPC。 若选择的“所属VPC”和GeminiDB Redis不在同一个虚拟私有云(VPC)中,“对端VPC”选择GeminiDB Redis实例所在的VPC。 详情参考创建相同账户下的对等连接。 单击创建好的对等连接名称,进入对等连接基本信息页面。 图2 对等连接 单击“路由表”,进入路由表基本信息页面。 图3 路由表 配置对等连接的本端路由、对端路由。 添加本端路由:单击“添加路由”,弹出“添加路由”窗口,“目的地址”输入对等连接中“对端VPC网段”值,“下一跳类型”选择“对等连接”,“下一跳”选择4中创建的对等连接,单击“确定”。 添加对端路由:单击“添加路由”,弹出“添加路由”窗口,“目的地址”输入对等连接中“本端VPC网段”值,“下一跳类型”选择“对等连接”,“下一跳”选择4中创建的对等连接,单击“确定”。 对添加的GeminiDB Redis的负载均衡地址进行健康检查,单击“监听器”,当健康检查结果为“正常”时,表示正常使用。
  • RDS购买磁盘加密后,备份文件会加密吗 对于RDS for MySQL实例: RDS购买磁盘加密后,在实例创建成功后不可修改磁盘加密状态,且无法更改密钥。选择“磁盘加密”,存放在对象存储服务上的备份数据不会被加密,如需开通备份数据加密,请联系华为云客服人员申请。 对于RDS for PostgreSQL实例: RDS购买磁盘加密后,在实例创建成功后不可修改磁盘加密状态,且无法更改密钥。选择“磁盘加密”,存放在对象存储服务上的备份数据也会被加密。 对于RDS for SQL Server实例: RDS购买磁盘加密后,在实例创建成功后不可修改磁盘加密状态,且无法更改密钥。选择“磁盘加密”,存放在对象存储服务上的备份数据不会被加密。 设置了磁盘加密或备份数据加密后,提醒您保存好密钥,一旦密钥被禁用、删除或冻结,会导致数据库不可用,并且可能无法恢复数据,具体场景如下: 针对磁盘加密,备份数据不加密的场景:可以通过备份恢复到新实例的方式恢复数据。 针对磁盘加密,并且备份数据加密的场景:无法恢复数据。 父主题: 产品咨询
  • root用户权限说明 RDS for PostgreSQL开放了root用户权限。为了便于用户使用RDS for PostgreSQL并保证在无操作风险的前提下,为root用户在特定场景进行了提权。 各个版本root用户提权情况见下表。 表1 root用户权限说明 版本 是否提权 提权起始版本 pgcore9 否 不涉及 pgcore10 否 不涉及 pgcore11 是 11.11 pgcore12 是 12.6 pgcore13 是 13.2 pgcore14 是 14.4 pgcore15 是 15.4 pgcore16 是 16.2 root提权涉及以下场景: 创建事件触发器 创建包装器 创建逻辑复制-发布 创建逻辑复制-订阅 查询和维护复制源 创建replication用户 创建全文索引模板以及Parser 对系统表执行vacuum 对系统表执行analyze 创建插件 授予用户某个对象的权限
  • 问题描述 普通用户创建schema失败 命令:CREATE SCHEMA my_schema; 报错:ERROR: permission denied for database postgres 普通用户创建表失败 命令:CREATE TABLE my_table(id int PRIMARY KEY,name VARCHAR(30)); ERROR: permission denied for schema public
  • RDS的备份是如何收费的 云数据库RDS所有的全量备份和binlog备份都存储在对象存储服务上,不占用用户购买实例的存储空间,RDS提供了和实例磁盘大小相同的部分免费存储空间,用于存放您的备份数据。 自动备份的生命周期和实例的生命周期相同。如果实例删除,那么自动备份也会同时被删除,如果您有手动备份,手动备份不会自动删除,具体请参见删除手动备份。 举个例子,假如用户购买实例时,存储空间选择了200GB,那么所有的备份空间合计,只有超过200GB才开始计费,前200GB是免费的。对于超过免费容量的存储空间,目前仅支持按需计费,用多少收取多少费用,具体收费请参见云数据库备份空间计费规则。 免费的存储空间是在收取了数据盘的存储空间费用后赠送的,数据盘存储空间冻结以后不再收费,因此不再享受备份赠送空间。 用户实例冻结后,将没有免费的存储空间,会导致实例原有备份收费。 如果选择解冻实例,将恢复免费的存储空间。 如果直接删除冻结的实例,原有的自动备份将会同时被删除,原有的手动备份需要手动删除,删除后备份空间不会继续收费。 父主题: 备份与恢复
  • 问题背景与现象 Hive执行查询操作时报Job Submission failed with exception 'java.lang.RuntimeException(input file number exceeded the limits in the conf;input file num is: 2380435,max heap memory is: 16892035072,the limit conf is: 500000/4)',此报错中具体数值根据实际情况会发生变化,具体报错信息如下: ERROR : Job Submission failed with exception 'java.lang.RuntimeException(input file numbers exceeded the limits in the conf; input file num is: 2380435 , max heap memory is: 16892035072 , the limit conf is: 500000/4)' java.lang.RuntimeException: input file numbers exceeded the limits in the conf; input file num is: 2380435 , max heap memory is: 16892035072 , the limit conf is: 500000/4 at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.checkFileNum(ExecDriver.java:545) at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:430) at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:137) at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:158) at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:101) at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1965) at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1723) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1475) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1283) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1278) at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:167) at org.apache.hive.service.cli.operation.SQLOperation.access$200(SQLOperation.java:75) at org.apache.hive.service.cli.operation.SQLOperation$1$1.run(SQLOperation.java:245) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1710) at org.apache.hive.service.cli.operation.SQLOperation$1.run(SQLOperation.java:258) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask (state=08S01,code=1)
  • 排查思路 检查集群状态:Manager页面无法正常访问,请首先确认MRS集群状态是否正常,如果集群已关闭或者正在创建中,或集群正在发生主备倒换,将无法访问Manager。 检查用户权限:当前用户是否有访问Manager的权限,“ReadOnlyAccess”表示MRS的只读权限,拥有该权限的用户仅能查看MRS的资源,无法访问Manager页面。 检查是否绑定弹性IP:如果需要从本地访问Manager,需要对集群绑定弹性IP且弹性IP可用才可访问。 检查安全组:MRS集群对应的安全组规则中,需要对当前用户开放9022端口。安全组规则中添加的用户本地IP是否发生变化。 检查浏览器:检查本地浏览器是否正常,例如是否配置了内部网络代理、是否添加了会拦截用户Token的安全设置。 检查Manager:EIP、安全组等相关网络配置正常的情况下,检查Manager是否运行正常。 检查用户密码:登录Manger使用的用户密码错误或失效。
  • 问题背景与现象 Hive执行查询操作时报错Error running child : java.lang.StackOverflowError,具体报错信息如下: FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.StackOverflowError at org.apache.hive.come.esotericsoftware.kryo.io.Input.readVarInt(Input.java:355) at org.apache.hive.come.esotericsoftware.kryo.util.DefautClassResolver.readName(DefautClassResolver.java:127) at org.apache.hive.come.esotericsoftware.kryo.util.DefautClassResolver.readClass(DefautClassResolver.java:115) at org.apache.hive.come.esotericsoftware.kryo.Kryo.readClass(Kryo.java.656) at org.apache.hive.come.esotericsoftware.kryo.kryo.readClassAnd0bject(Kryo.java:767) at org.apache.hive.come.esotericsoftware.kryo.serializers.collectionSerializer.read(CollectionSerializer.java:112)
  • 问题现象 在MRS 2.x集群详情页面调整集群Task节点,将Task节点调整成0个,最终缩容失败,提示如下: This operation is not allowed because the number of instances of NodeManager will be less than the minimum configuration after scale-in, which may cause data loss.
  • 原因分析 当一个block size大于2G时,hdfs在seek的时候会出现读取异常,持续频繁写入regionserver时出现了full gc,且时间比较久,导致hmaster与regionserver之间的心跳异常,然后hmaster把regionserver标记为dead状态,强制重启了Regionserver,重启后触发servercrash机制开始回滚wal日志。现在这个splitwal的文件已经达到将近2.1G,且其仅有一个block块,导致hdfs seek异常,引起splitwal失败,regionserver检测到当前这个wal日志还需要split,又会触发splitwal日志的机制进行回滚,就这样在split与split失败之间不停循环,导致无法上线该regionserver节点上的region,最后出现查询该RS上某一个region时会报region not online的异常。
  • 处理步骤 调整上层业务,将动态分区数控制在“hive.exec.max.dynamic.partitions”参数值范围内。 执行set hive.exec.max.dynamic.partitions = XXX;命令调大“hive.exec.max.dynamic.partitions”参数值。 SparkSQL中需要设置“spark.hadoop.hive.exec.max.dynamic.partitions”参数。
  • 数据库安全审计的审计数据可以保存多久? 数据库安全审计支持将在线和归档的审计数据至少保存180天的功能。未开启备份时,存储在审计实例上,原则上保存时间为180天,这取决于日志量大小。如果日志量较大,会以滚动删除的方式删除存放时间最久的日志以保证磁盘空间使用率。开启备份时,会同时保存在obs桶里,此时保存的时间会对应着obs存储的时间。 由于审计数据存放在日志数据库中,而日志数据库的硬盘容量可能影响保存时长。为了确保审计数据满足保存时长要求,建议您通过以下方式处理: 根据业务数据库审计数据实际情况,选择购买的数据库安全审计版本 审计数据容量较小:购买基础版 审计数据容量较大:购买专业版或高级版 数据库安全审计各版本的规格说明如所表1示。 备份审计日志 有关备份审计日志的详细操作,请参见备份数据库审计日志。 表1 数据库安全审计版本性能规格说明 版本 支持的数据库实例 系统资源要求 性能参数 入门版 最多支持1个数据库实例 CPU:4U 内存:16GB 硬盘:560GB 吞吐量峰值:1,000条/秒 入库速率:120万条/小时 1亿条在线SQL语句存储 15亿条归档SQL语句存储 基础版 最多支持3个数据库实例 CPU:4U 内存:16GB 硬盘:560GB 吞吐量峰值:3,000条/秒 入库速率:360万条/小时 4亿条在线SQL语句存储 50亿条归档SQL语句存储 专业版 最多支持6个数据库实例 CPU:8U 内存:32GB 硬盘:1,084GB 吞吐量峰值:6,000条/秒 入库速率:720万条/小时 6亿条在线SQL语句存储 100亿条归档SQL语句存储 高级版 最多支持30个数据库实例 CPU:16U 内存:64GB 硬盘:2,108GB 吞吐量峰值:30,000条/秒 入库速率:1,080万条/小时 15亿条在线SQL语句存储 600亿条归档SQL语句存储 数据库实例通过数据库IP+数据库端口计量。 如果同一数据库IP具有多个数据库端口,数据库实例数为数据库端口数。1个数据库IP只有1个数据库端口,即为一个数据库实例;1个数据库IP具有N个数据库端口,即为N个数据库实例。 例如:用户有2个数据库资产分别为IP1和IP2,IP1有一个数据库端口,则为1个数据库实例;IP2有3个数据库端口,则为3个数据库实例。IP1和IP2合计为4个数据库实例,选择服务版本规格时需要大于或等于4个数据库实例,即选用专业版(最多支持审计6个数据库实例)。 不支持修改规格。若要修改,请退订后重购。 云原生版仅支持在RDS控制台购买。 本表中的系统资源要求,是指购买数据库安全审计实例时会消耗的系统资源。购买时,用户的系统需要满足审计版本对应的配置。 本表中在线SQL语句的条数,是按照每条SQL语句的容量为1KB来计算的。 父主题: 数据库安全审计功能类
  • 数据库安全服务支持哪些性能规格? 数据库安全审计支持基础版、专业版和高级版三种服务版本。您可以根据业务需求选择相应的服务版本。 数据库安全审计各版本的性能规格说明如表1所示。 表1 数据库安全审计版本性能规格说明 版本 支持的数据库实例 系统资源要求 性能参数 入门版 最多支持1个数据库实例 CPU:4U 内存:16GB 硬盘:560GB 吞吐量峰值:1,000条/秒 入库速率:120万条/小时 1亿条在线SQL语句存储 15亿条归档SQL语句存储 基础版 最多支持3个数据库实例 CPU:4U 内存:16GB 硬盘:560GB 吞吐量峰值:3,000条/秒 入库速率:360万条/小时 4亿条在线SQL语句存储 50亿条归档SQL语句存储 专业版 最多支持6个数据库实例 CPU:8U 内存:32GB 硬盘:1,084GB 吞吐量峰值:6,000条/秒 入库速率:720万条/小时 6亿条在线SQL语句存储 100亿条归档SQL语句存储 高级版 最多支持30个数据库实例 CPU:16U 内存:64GB 硬盘:2,108GB 吞吐量峰值:30,000条/秒 入库速率:1,080万条/小时 15亿条在线SQL语句存储 600亿条归档SQL语句存储 父主题: 产品咨询类
  • 前提条件 确认实例账号具有相关权限。 请确认购买实例的账号具有“DBSS System Administrator”、“VPC Administrator”、“ECS Administrator”和“BSS Administrator”角色。 VPC Administrator:对虚拟私有云的所有执行权限。项目级角色,在同项目中勾选。 BSS Administrator:对账号中心、费用中心、资源中心中的所有菜单项执行任意操作。项目级角色,在同项目中勾选。 ECS Administrator:对弹性云服务器的所有执行权限。项目级角色,在同项目中勾选。
  • 前提条件 确认实例账号具有相关权限。 请确认购买实例的账号具有“DBSS System Administrator”、“VPC Administrator”、“ECS Administrator”和“BSS Administrator”角色。 VPC Administrator:对虚拟私有云的所有执行权限。项目级角色,在同项目中勾选。 BSS Administrator:对账号中心、费用中心、资源中心中的所有菜单项执行任意操作。项目级角色,在同项目中勾选。 ECS Administrator:对弹性云服务器的所有执行权限。项目级角色,在同项目中勾选。
  • 服务版本规格 数据库安全审计提供了基础版、专业版和高级版三种服务版本。您可以根据业务需求选择相应的服务版本。 各版本的性能规格说明如表1所示。 表1 数据库安全审计版本性能规格说明 版本 支持的数据库实例 系统资源要求 性能参数 入门版 最多支持1个数据库实例 CPU:4U 内存:16GB 硬盘:560GB 吞吐量峰值:1,000条/秒 入库速率:120万条/小时 1亿条在线SQL语句存储 15亿条归档SQL语句存储 基础版 最多支持3个数据库实例 CPU:4U 内存:16GB 硬盘:560GB 吞吐量峰值:3,000条/秒 入库速率:360万条/小时 4亿条在线SQL语句存储 50亿条归档SQL语句存储 专业版 最多支持6个数据库实例 CPU:8U 内存:32GB 硬盘:1,084GB 吞吐量峰值:6,000条/秒 入库速率:720万条/小时 6亿条在线SQL语句存储 100亿条归档SQL语句存储 高级版 最多支持30个数据库实例 CPU:16U 内存:64GB 硬盘:2,108GB 吞吐量峰值:30,000条/秒 入库速率:1,080万条/小时 15亿条在线SQL语句存储 600亿条归档SQL语句存储 数据库实例通过数据库IP+数据库端口计量。 如果同一数据库IP具有多个数据库端口,数据库实例数为数据库端口数。1个数据库IP只有1个数据库端口,即为一个数据库实例;1个数据库IP具有N个数据库端口,即为N个数据库实例。 例如:用户有2个数据库资产分别为IP1和IP2,IP1有一个数据库端口,则为1个数据库实例;IP2有3个数据库端口,则为3个数据库实例。IP1和IP2合计为4个数据库实例,选择服务版本规格时需要大于或等于4个数据库实例,即选用专业版(最多支持审计6个数据库实例)。 不支持修改规格。若要修改,请退订后重购。 云原生版仅支持在RDS控制台购买。 本表中的系统资源要求,是指购买数据库安全审计实例时会消耗的系统资源。购买时,用户的系统需要满足审计版本对应的配置。 本表中在线SQL语句的条数,是按照每条SQL语句的容量为1KB来计算的。
  • 实例监控指标 数据复制服务性能监控指标,如表1所示。 表1 数据复制服务支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) cpu_util CPU使用率 该指标用于统计测量对象的CPU使用率,以比率为单位。 0-100% 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 mem_util 内存使用率 该指标用于统计测量对象的内存使用率,以比率为单位。 0-100% 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 network_incoming_bytes_rate 网络输入吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输入的流量,以字节/秒为单位。 ≥ 0 bytes/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 network_outgoing_bytes_rate 网络输出吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输出的流量,以字节/秒为单位。 ≥ 0 bytes/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_read_bytes_rate 磁盘读吞吐量 该指标用于统计每秒从磁盘读取的字节数,以字节/秒为单位。 ≥ 0 bytes/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_write_bytes_rate 磁盘写吞吐量 该指标用于统计每秒写入磁盘的字节数,以字节/秒为单位。 ≥ 0 bytes/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_util 磁盘利用率 该指标用于统计测量对象的磁盘利用率,以比率为单位。 0-100% 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_bytes_rate 读源库吞吐量 该指标用于统计每秒从源库读取表数据或者WAL的字节数。 ≥ 0 bytes/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_rows_rate 读源库频率 该指标用于统计每秒从源库读取表数据或者WAL的行数,以行/秒为单位。 ≥ 0 row/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_latency 源库WAL抽取延迟 该指标用于统计当前从源库抽取WAL的延迟,以毫秒为单位。 ≥ms 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_bytes_rate 写目标库吞吐量 该指标用于统计每秒向目标库写入数据的字节数,以字节/秒为单位。 ≥ 0 bytes/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 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_job_status 任务状态 该指标用于表示当前任务所处的状态(0:正常,1:异常,2:暂停)。 0:正常 1:异常 2:暂停 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟
  • JSON-C格式 JSON-C格式与JSON格式类似,区别是对于删除操作,JSON数据放在old上,JSON-C放在data上。对于timestamp类型数据转换成yyyy-mm-dd hh:mm:ss的字符串。 JSON-C定义详情参考表5: 表5 JSON-C参数说明 参数名称 说明 mysqlType 源端表字段名称和类型。 id DRS内部定义的事件操作的序列号,单调递增。 es 源库产生这一条记录的时间,13位Unix时间戳,单位为毫秒。 ts 写入到目标kafka的时间,13位Unix时间戳,单位为毫秒。 database 数据库名称(Oracle数据库填写schema)。 table 表名。 type 操作类型,比如DELETE,UPDATE,INSERT,DDL。 isDdl 是否是DDL操作。 sql DDL的SQL语句,在DML操作中,取值为""。 sqlType 源端表字段的jdbc类型。 data 最新的数据,为JSON数组,如果type参数是插入则表示最新插入的数据,如果是更新,则表示更新后的最新数据;如果是删除,则表示被删除的数据。 old 旧数据,如果type参数是更新,则表示更新前的数据;如果是插入,取值为null。 pkNames 主键名称。
  • JSON格式 MySQL、GaussDB(MySQL)到Kafka的JSON格式定义详情参考表2,DDS到Kafka的JSON格式定义详情参考表3,Oracle、PostgreSQL、GaussDB、Microsoft SQL Server到Kafka的JSON格式定义详情参考表4。 表2 MySQL到Kafka的参数说明 参数名称 说明 mysqlType 源端表字段名称和类型。 id DRS内部定义的事件操作的序列号,单调递增。 es 源库产生这一条记录的时间,13位Unix时间戳,单位为毫秒。 ts 写入到目标kafka的时间,13位Unix时间戳,单位为毫秒。 database 数据库名称。 table 表名。 type 操作类型,比如DELETE,UPDATE,INSERT,DDL,全量同步为INIT和INIT_DDL。 isDdl 是否是DDL操作。 sql DDL的SQL语句,在DML操作中,取值为""。 sqlType 源端表字段的jdbc类型。 data 最新的数据,为JSON数组,如果type参数是插入则表示最新插入的数据,如果是更新,则表示更新后的最新数据。 old 旧数据,如果type参数是更新,则表示更新前的数据;如果是删除,则表示被删除的数据;如果是插入,取值为null。 pkNames 主键名称。 { "mysqlType":{ "c11":"binary", "c10":"varchar", "c13":"text", "c12":"varbinary", "c14":"blob", "c1":"varchar", "c2":"varbinary", "c3":"int", "c4":"datetime", "c5":"timestamp", "c6":"char", "c7":"float", "c8":"double", "c9":"decimal", "id":"int" }, "id":27677, "es":1624614713000, "ts":1625058726990, "database":"test01", "table":"test ", "type":"UPDATE", "isDdl":false, "sql":"", "sqlType":{ "c11":-2, "c10":12, "c13":-1, "c12":-3, "c14":2004, "c1":12, "c2":-3, "c3":4, "c4":94, "c5":93, "c6":1, "c7":6, "c8":8, "c9":3, "id":4 }, "data":[ { "c11":"[]", "c10":"华为云huaweicloud", "c13":"asfiajhfiaf939-0239uoituqorjoqirfoidjfqrniowejoiwqjroqwjrowqjojoiqgoiegnkjgoi23roiugouofdug9u90weurtg103", "c12":"[106, 103, 111, 106, 103, 111, 105, 100, 115, 106, 103, 111, 106, 111, 115, 111, 103, 57, 51, 52, 48, 57, 52, 51, 48, 57, 116, 106, 104, 114, 103, 106, 101, 119, 57, 116, 117, 48, 57, 51, 52, 48, 116, 101, 114, 111, 101, 106, 103, 57, 56, 51, 48, 52, 105, 101, 117, 114, 103, 57, 101, 119, 117, 114, 103, 48, 119, 101, 117, 116, 57, 114, 48, 52, 117, 48, 57, 53, 116, 117, 51, 48, 57, 50, 117, 116, 48, 57, 51, 117, 116, 48, 119, 57, 101]", "c14":"[106, 103, 111, 106, 103, 111, 105, 100, 115, 106, 103, 111, 106, 111, 115, 111, 103, 57, 51, 52, 48, 57, 52, 51, 48, 57, 116, 106, 104, 114, 103, 106, 101, 119, 57, 116, 117, 48, 57, 51, 52, 48, 116, 101, 114, 111, 101, 106, 103, 57, 56, 51, 48, 52, 105, 55, 57, 56, 52, 54, 53, 52, 54, 54, 54, 49, 52, 54, 53, 33, 64, 35, 36, 37, 94, 42, 40, 41, 95, 41, 43, 95, 43, 124, 125, 34, 63, 62, 58, 58, 101, 117, 114, 103, 57, 101, 119, 117, 114, 103, 48, 119, 101, 117, 116, 57, 114, 48, 52, 117, 48, 57, 53, 116, 117, 51, 48, 57, 50, 117, 116, 48, 57, 51, 117, 116, 48, 119, 57, 101]", "c1":"cf3f70a7-7565-44b0-ae3c-83bec549ea8e:104", "c2":"[]", "c3":"103", "c4":"2021-06-25 17:51:53", "c5":"1624614713.201", "c6":"!@#$%90weurtg103", "c7":"10357.0", "c8":"1.2510357E7", "c9":"9874510357", "id":"104" } ], "old":[ { "c11":"[]", "c10":"华为云huaweicloud", "c13":"asfiajhfiaf939-0239", "c12":"[106, 103, 111, 106, 103, 111, 105, 100, 115, 106, 103, 111, 106, 111, 115, 111, 103, 57, 51, 52, 48, 57, 52, 51, 48, 57, 116, 106, 104, 114, 103, 106, 101, 119, 57, 116, 117, 48, 57, 51, 52, 48, 116, 101, 114, 111, 101, 106, 103, 57, 56, 51, 48, 52, 105, 101, 117, 114, 103, 57, 101, 119, 117, 114, 103, 48, 119, 101, 117, 116, 57, 114, 48, 52, 117, 48, 57, 53, 116, 117, 51, 48, 57, 50, 117, 116, 48, 57, 51, 117, 116, 48, 119, 57, 101]", "c14":"[106, 103, 111, 106, 103, 111, 105, 100, 115, 106, 103, 111, 106, 111, 115, 111, 103, 57, 51, 52, 48, 57, 52, 51, 48, 57, 116, 106, 104, 114, 103, 106, 101, 119, 57, 116, 117, 48, 57, 51, 52, 48, 116, 101, 114, 111, 101, 106, 103, 57, 56, 51, 48, 52, 105, 55, 57, 56, 52, 54, 53, 52, 54, 54, 54, 49, 52, 54, 53, 33, 64, 35, 36, 37, 94, 42, 40, 41, 95, 41, 43, 95, 43, 124, 125, 34, 63, 62, 58, 58, 101, 117, 114, 103, 57, 101, 119, 117, 114, 103, 48, 119, 101, 117, 116, 57, 114, 48, 52, 117, 48, 57, 53, 116, 117, 51, 48, 57, 50, 117, 116, 48, 57, 51, 117, 116, 48, 119, 57, 101]", "c1":"cf3f70a7-7565-44b0-ae3c-83bec549ea8e:104", "c2":"[]", "c3":"103", "c4":"2021-06-25 17:51:53", "c5":"1624614713.201", "c6":"!@#$%90weurtg103", "c7":"10357.0", "c8":"1.2510357E7", "c9":"9874510357", "id":"103" } ], "pkNames":[ "id" ] } 表3 DDS到Kafka的参数说明 参数名称 说明 id DRS内部定义的事件操作的序列号,单调递增。 op 操作类型,比如DELETE,UPDATE,INSERT,DDL。 dbType 源库类型:Mongo。 db 数据库名称。 coll 集合名称。 value 这一条记录的变更值。 where 这一条记录的变更条件。 recordType 具体的记录类型,比如insert、update、replace、doc。其中,update和replace表示op中的UPDATE具体操作。doc表示op中的DELETE删除的是文档数据而非视图数据。 extra 拓展字段,一般和recordType保持一致,作为扩展oplog记录使用。 es 这一条记录的commit时间,13位Unix时间戳,单位为毫秒。 ts 写入到目标kafka的时间,13位Unix时间戳,单位为毫秒。 clusterTime 与事件关联的oplog条目的时间戳,格式为timestamp:incre(timestamp是10位unix时间戳,单位为秒;incre代表当前命令在同一秒内执行的次序)。 // insert操作 { "id": 256, "op": "INSERT", "dbType": "MongoDB", "db": "ljx", "coll": "ljx", "value": "{\"_id\": ObjectId(\"64650cf67dc36a464e76e583\"), \"c1\": \"baz\", \"tags\": [\"mongodb\", \"database\", \"NoSQL\"]}", "where": null, "recordType": "insert", "extra": "insert", "es": 1684315111439, "ts": 1684315111576, "clusterTime": "1684344064:1" } // replace操作 { "id": 340, "op": "UPDATE", "dbType": "MongoDB", "db": "ljx", "coll": "ljx", "value": "{\"_id\": ObjectId(\"64650cf67dc36a464e76e583\"), \"c1\": \"sss\"}", "where": "{\"_id\": ObjectId(\"64650cf67dc36a464e76e583\")}", "recordType": "replace", "extra": "replace", "es": 1684315951831, "ts": 1684315951961, "clusterTime": "1684344904:9" } // update 更新值操作 { "id": 386, "op": "UPDATE", "dbType": "MongoDB", "db": "ljx", "coll": "ljx", "value": "{\"$set\": {\"c1\": \"aaa\"}}", "where": "{\"_id\": ObjectId(\"64650cf67dc36a464e76e583\")}", "recordType": "update", "extra": "update", "es": 1684316412008, "ts": 1684316412146, "clusterTime": "1684345365:1" } // update 更新键操作 { "id": 414, "op": "UPDATE", "dbType": "MongoDB", "db": "ljx", "coll": "ljx", "value": "{\"$unset\": {\"c1\": true}, \"$set\": {\"column1\": \"aaa\"}}", "where": "{\"_id\": ObjectId(\"64650cf67dc36a464e76e583\")}", "recordType": "update", "extra": "update", "es": 1684316692054, "ts": 1684316692184, "clusterTime": "1684345648:1" } // remove 操作 { "id": 471, "op": "DELETE", "dbType": "MongoDB", "db": "ljx", "coll": "ljx", "value": "{\"_id\": ObjectId(\"64650cf67dc36a464e76e583\")}", "where": null, "recordType": "doc", "extra": "doc", "es": 1684317252747, "ts": 1684317252869, "clusterTime": "1684346209:1" } 表4 其他数据库到Kafka的参数说明 参数名称 说明 columnType 源端表字段名称和数据类型。 说明: 数据类型不带长度、精度等。 dbType为Oracle、Microsoft SQL Server时暂为空。 dbType 源库类型。 schema schema名称。 opType 操作类型,比如DELETE,UPDATE,INSERT,DDL。 id DRS内部定义的事件操作的序列号,单调递增。 es 源库不同引擎对应类型如下: GaussDB主备版:这一条记录上一个事务的commit时间,13位Unix时间戳,单位为毫秒。 GaussDB分布式:这一条记录上一个事务的commit时间,13位Unix时间戳,单位为毫秒。 PostgreSQL:这一条记录上一个事务的commit时间,13位Unix时间戳,单位为毫秒。 Oracle:这一条记录的commit时间,13位Unix时间戳,单位为毫秒。 Microsoft SQL Server:这一条记录的commit时间,13位Unix时间戳,单位为毫秒。 ts 写入到目标kafka的时间,13位Unix时间戳,单位为毫秒。 database 数据库名称,dbType为Oracle时暂时为空。 table 表名。 type 操作类型,比如DELETE,UPDATE,INSERT,DDL。 isDdl 是否是DDL操作。 sql DDL的SQL语句,在DML操作中,取值为""。 sqlType 源端表字段的jdbc类型。 data 最新的数据,为JSON数组,如果type参数是插入则表示最新插入的数据,如果是更新,则表示更新后的最新数据。 old 旧数据,如果type参数是更新,则表示更新前的数据;如果是删除,则表示被删除的数据;如果是插入,取值为null。 pkNames 主键名称。 { "columnType": { "timestamp_column": "timestamp without time zone", "tstzrange_column": "tstzrange", "int4range_column": "int4range", "char_column": "character", "jsonb_column": "json", "boolean_column": "boolean", "bit_column": "bit", "smallint_column": "smallint", "bytea_column": "bytea" }, "dbType": "GaussDB Primary/Standby", "schema": "schema01", "opType": "UPDATE", "id": 332, "es": 1639626187000, "ts": 1639629261915, "database": "database01", "table": "table01", "type": "UPDATE", "isDdl": false, "sql": "", "sqlType": { "timestamp_column": 16, "tstzrange_column": 46, "int4range_column": 42, "char_column": 9, "jsonb_column": 22, "boolean_column": 8, "bit_column": 20, "smallint_column": 2, "bytea_column": 15 }, "data": [ { "timestamp_column": "2021-12-16 12:31:49.344365", "tstzrange_column": "(\"2010-01-01 14:30:00+08\",\"2010-01-01 15:30:00+08\")", "int4range_column": "[11,20)", "char_column": "g", "jsonb_column": "{\"key1\": \"value1\", \"key2\": \"value2\"}", "boolean_column": "false", "bit_column": "1", "smallint_column": "12", "bytea_column": "62797465615f64617461" } ], "old": [ { "timestamp_column": "2014-07-02 06:14:00.742", "tstzrange_column": "(\"2010-01-01 14:30:00+08\",\"2010-01-01 15:30:00+08\")", "int4range_column": "[11,20)", "char_column": "g", "jsonb_column": "{\"key1\": \"value1\", \"key2\": \"value2\"}", "boolean_column": "true", "bit_column": "1", "smallint_column": "12", "bytea_column": "62797465615f64617461" } ], "pkNames": null }
  • 支持的数据库类型 目前,DRS实时同步支持的源数据库和目标数据库类型,如下表所示。 表1 同步方案 源数据库类型 目标数据库类型 同步模式 相关文档 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL RDS for MySQL 增量数据同步 全量数据同步 全量+增量数据同步 将MySQL同步到MySQL(入云) GaussDB(for MySQL) 增量数据同步 全量+增量数据同步 将MySQL同步到GaussDB(for MySQL) 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 GaussDB(for MySQL) 全量数据同步 全量+增量数据同步 将Oracle同步到GaussDB(for MySQL) 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主备版(自建-自建) 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主备版(自建-自建) GaussDB(for MySQL) GaussDB(for MySQL) 增量数据同步 全量+增量数据同步 将GaussDB(for MySQL)同步到GaussDB(for MySQL) 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL 增量数据同步 全量+增量数据同步 将GaussDB(for MySQL)同步到MySQL GaussDB(DWS) 全量+增量数据同步 将GaussDB(for MySQL)同步到GaussDB(DWS) Kafka 增量数据同步 全量+增量数据同步 将GaussDB(for MySQL)同步到Kafka CSS/ES 全量+增量数据同步 将GaussDB(for MySQL)同步到CSS/ES 本地自建Oracle数据库 ECS自建Oracle数据库 全量+增量数据同步 将GaussDB(for MySQL)同步到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分布式版 自建) GaussDB(DWS) 全量数据同步 全量+增量数据同步 将DB2 for LUW同步到GaussDB(DWS) TiDB GaussDB(for MySQL) 全量+增量数据同步 将TiDB同步到GaussDB(for MySQL) 本地自建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 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 GaussDB(for MySQL) 增量数据同步 全量+增量数据同步 将MariaDB同步到GaussDB(for MySQL) RDS for MariaDB 本地自建MariaDB数据库 ECS自建MariaDB数据库 其他云上MariaDB数据库 全量+增量数据同步 将MariaDB同步到MariaDB
  • 支持审计操作的关键列表 云审计服务是安全解决方案中专业的日志审计服务,记录了数据复制服务的相关操作事件,方便您日后的查询、审计和回溯。 表1 云审计服务支持的数据复制服务操作列表 操作名称 资源类型 事件名称 创建任务 job createJob 编辑任务 job modifyJob 删除任务 job deleteJob 启动任务 job startJob 续传任务 job retryJob 父主题: 对接云审计服务
  • 操作步骤 在“录制回放管理”页面的任务列表中,选择要重置的任务,单击操作列“重置”按钮。 在弹出的“重置任务”窗口,选择重置方式。 不勾选解析重置:重置任务不重新解析流量文件,把任务之前解析流量文件得到的内容重新回放到目标库。 勾选解析重置:将清空任务所有解析流量文件得到的内容,重新开始解析流量文件,并将解析流量文件得到的内容重新回放到目标库。 图1 重置任务 等待预检查通过后,单击“开始重置”,重置任务。
  • 支持的数据库类型 目前,DRS录制回放支持的数据库类型,如下表所示。 表1 回放方案 源数据库类型和版本 目标数据库类型和版本 相关文档 RDS for MySQL RDS for MySQL MySQL到MySQL(本云) GaussDB(for MySQL) MySQL到GaussDB(for MySQL)(本云) GaussDB(for MySQL) GaussDB(for MySQL) GaussDB(for MySQL)到GaussDB(for MySQL)(本云) ECS自建MySQL 本地自建MySQL 其他云上MySQL RDS for MySQL MySQL到MySQL(入云) GaussDB(for MySQL) MySQL到GaussDB(for MySQL)(入云)
  • 操作步骤 在“实时灾备管理”页面,选择指定的灾备任务,单击任务名称进入“基本信息”页签。 在“基本信息”页签,单击“灾备监控”页签。 RPO(Recovery Point Objective),为业务数据库与DRS实例数据差的一种度量方式,RPO=0时,意味着业务数据库的数据已经全部到达DRS实例。 RTO(Recovery Time Objective),处在传输中数据量的一种度量方式,RTO=0时,意味着DRS实例上的事务已经全部在灾备数据库上执行完毕。 时延监控:展示RPO、RTO的历史数据轨迹,对真实灾难将发生时的数据丢失量具有一定的预测意义。可重点关注以下两种类型数据: 长时间RPO、RTO高的时间段。 规律性RPO、RTO高的时间段。 自治监控:展示DRS的智能自制能力,主要包括: 网络断连时,DRS自动重连并断点续传的次数。 发生数据冲突时,DRS自动使用最新数据覆盖旧数据的次数。 性能监控:展示了DRS实例的实时读取速度和写入速度,有助于诊断性能瓶颈。 资源监控:展示了DRS实例的资源使用情况,有助于诊断性能瓶颈。 图1 灾备监控
  • 操作步骤 任务列表中,仅展示当前登录用户所创建的全部任务,同一租户下的不同用户之间的任务不可见。 在“实时灾备管理”页面,选择指定的灾备任务,单击任务名称。 页面跳转至“基本信息”页签,单击“灾备数据”页签。 初始化进度 仅展示了初次创建灾备环境时,历史数据导入的进度信息,帮助用户了解灾备环境创建进度,完成历史数据导入后,意味着初始化已完成,该模块数据将不再更新。 数据健康报告 支持用户修改对比策略,周期性展示主实例与备实例的数据一致性对比结果,用于帮助用户审视灾备环境的数据健康情况。 只有灾备中的任务才会进行健康对比。 仅保留最近30次健康对比报告。 数据健康报告是为了用户定期且长期掌握主实例与备实例的数据一致性,为避免长期对比对主实例的性能损耗,对于特大表(比如超亿行的表)的对比,建议使用灾备对比功能。 图1 数据健康报告 修改对比策略 修改对比策略不会影响当前进行的健康对比任务,修改后的设置在下次生效。 在“数据健康报告”页签的“健康对比策略”区域,单击“修改对比策略”,进入修改对比策略界面。 图2 修改对比策略 在“修改对比策略”界面设置各个参数。 开启状态:关闭健康对比策略后,下一次的健康对比将不会再进行,历史健康报告仍可正常查看。 对比频率:提供“每周对比”和“每天对比”两种对比频率。 对比时间:对比频率选择“每周对比”时,可设置周一到周日的一天或多天为对比时间。 时区:默认为本地时区。 生效时间:设置对比策略生效的时间段,建议设置在业务低峰期进行对比。生效时间内未完成健康对比会自动中断,已完成的对比结果仍可查看。 对比类型:默认为行对比+用户对比+对象对比。 单击“确定”,完成修改对比策略。 修改成功后,将在生效时间启动对比任务,您可以取消进行中的任务,取消后,已经对比成功的健康报告仍可查看。
  • 实例监控指标 数据复制服务性能监控指标,如表1所示。 表1 数据复制服务支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) cpu_util CPU使用率 该指标用于统计测量对象的CPU使用率,以比率为单位。 0-100% 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 mem_util 内存使用率 该指标用于统计测量对象的内存使用率,以比率为单位。 0-100% 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 network_incoming_bytes_rate 网络输入吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输入的流量,以字节/秒为单位。 ≥ 0 bytes/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 network_outgoing_bytes_rate 网络输出吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输出的流量,以字节/秒为单位。 ≥ 0 bytes/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_read_bytes_rate 磁盘读吞吐量 该指标用于统计每秒从磁盘读取的字节数,以字节/秒为单位。 ≥ 0 bytes/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_write_bytes_rate 磁盘写吞吐量 该指标用于统计每秒写入磁盘的字节数,以字节/秒为单位。 ≥ 0 bytes/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 disk_util 磁盘利用率 该指标用于统计测量对象的磁盘利用率,以比率为单位。 0-100% 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_bytes_rate 读源库吞吐量 该指标用于统计每秒从源库读取表数据或者WAL的字节数。 ≥ 0 bytes/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_rows_rate 读源库频率 该指标用于统计每秒从源库读取表数据或者WAL的行数,以行/秒为单位。 ≥ 0 row/s 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 extract_latency 源库WAL抽取延迟 该指标用于统计当前从源库抽取WAL的延迟,以毫秒为单位。 ≥ms 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_bytes_rate 写目标库吞吐量 该指标用于统计每秒向目标库写入数据的字节数,以字节/秒为单位。 ≥ 0 bytes/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 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟 apply_job_status 任务状态 该指标用于表示当前任务所处的状态(0:正常,1:异常,2:暂停)。 0:正常 1:异常 2:暂停 测量对象:弹性云服务器 监控实例类型:实时迁移、实时同步和实时灾备实例 1分钟
  • 支持的数据库类型 目前,DRS实时灾备支持的数据库类型,如下表所示。 表1 灾备方案 业务数据库 灾备数据库 相关文档 本地自建MySQL数据库 ECS自建MySQL数据库 其他云上MySQL数据库 RDS for MySQL RDS for MySQL MySQL到MySQL单主灾备 MySQL到MySQL双主灾备 GaussDB(for MySQL) MySQL到GaussDB(for MySQL)单主灾备 DDM DDM DDM到DDM单主灾备 GaussDB(for MySQL) GaussDB(for MySQL) GaussDB(for MySQL)到GaussDB(for MySQL)单主灾备 GaussDB(for MySQL)到GaussDB(for MySQL)双主灾备
  • 支持审计操作的关键列表 云审计服务是安全解决方案中专业的日志审计服务,记录了数据复制服务的相关操作事件,方便您日后的查询、审计和回溯。 表1 云审计服务支持的数据复制服务操作列表 操作名称 资源类型 事件名称 创建任务 job createJob 编辑任务 job modifyJob 删除任务 job deleteJob 启动任务 job startJob 续传任务 job retryJob 父主题: 对接云审计服务
  • 操作步骤 在“实时灾备管理”界面,选中指定灾备任务,单击任务名称,进入“基本信息”页签。 单击“灾备对比”页签,进入“灾备对比”信息页面,对业务数据库和灾备数据库的数据进行对比分析。 首先进行数据库对象完整性检查。 在“对象级对比”页签,单击“开始对比”后稍等一段时间再单击,查看各个对比项的对比结果。 图1 对象级对比 若需要查看对比项的对比结果详情,可单击指定对比项操作列的“详情”。 数据库对象检查完成后,进行灾备数据行数和内容对比。 在“数据级对比”页签,单击“创建对比任务”页面,选择“对比类型”、“对比方式”、“对比时间”和“对象选择”,单击“确定”,提交对比任务。 图2 创建对比任务 对比类型:分为行数对比和内容对比。 对比方式:分为静态对比和动态对比两种。 静态对比:对源数据库和目标数据库进行一次全量内容对比,内容对比完成后对比任务结束,适用于无数据变化的非业务时间。 动态对比:先对源数据库和目标数据库进行一次全量内容对比,对比任务完成后进入增量对比阶段,实时比对源数据库和目标数据库的增量数据,适用于有数据变化的业务时间。 目前仅MySQL和GaussDB(for MySQL)引擎支持对比方式选择。 动态对比过程中不支持在业务数据库创建新表。如需创建,请先取消动态对比,待新表创建并灾备完成后,再重新启动动态对比。 对比时间:可设置为“立即启动”和“稍后启动”。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现符合实际情况的少量数据不一致对比结果,推荐结合对比定时功能,选择在业务低峰期进行对比,得到更为具有参考性的对比结果。 对象选择:可根据具体的业务场景选择需要进行对比的对象。 初始化中的任务无法进行数据级对比。 对比任务提交成功后,返回“数据级对比”页签,单击刷新列表,可以查看到所选对比类型的对比结果。 图3 数据级对比结果 若需要查看对比类型详情,可单击指定对比类型操作列的“查看对比报表”,然后选择需要进行对比的数据库,单击操作列的“查看详情”,查看指定业务数据库和灾备数据库的对比结果详情。 图4 行数对比详情 图5 内容对比详情 已取消的对比任务也支持查看对比报表。 行对比结果可按照“源库表行数”或“目标库表行数”,对当前页面显示的结果进行升序或者降序排列,方便进行筛选。 行对比差异显示为负数时,代表目标库表行数比源库表行数多;显示为正数时,代表源库表行数比目标库表行数多。 查看数据库账号和权限对比。单击“用户对比”页签,可查看数据库账号及权限的对比结果。 图6 用户对比 初始化阶段的任务无法进行用户对比。
共100000条