华为云用户手册

  • 使用须知 为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考DRS预检查项一览表。除了预检查项目之外,您还需要注意的事情如表4所示 表4 注意事项 类型名称 使用和操作限制 源数据库限制 源数据库的库名不能包含/\."$和空格,集合名和视图名中不能包含$字符或以system.开头。 多个源数据库迁移到同一个目标数据库时,所选的待迁移数据库的库名不能重复。 使用限制 通用: 整个迁移过程中,不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。 整个迁移过程中,不允许对正在迁移中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。 整个迁移过程中,不支持源数据库主备切换导致数据回滚的情况。 整个迁移过程中,不支持insert、update源库大于16MB的文档。 整个迁移过程中,源数据库不允许手动执行sh.moveChunk()操作,否则将导致迁移数据不一致。 全量迁移阶段: 任务启动和全量数据迁移阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量迁移阶段: 选择集合迁移时,增量迁移过程中不建议对集合进行重命名操作。 为保证迁移的性能,任务增量阶段,会集合级的进行并发回放。特殊地,以下情况只支持单线程写入,不支持并发回放: 集合的索引中有unique key时; 集合属性的capped为true时; 这种情况可能会导致任务时延增高。 数据对比: 建议在源库的业务低峰期进行数据比对,防止误报不一致数据,以及减少对源库和DRS任务的冲击。 在增量同步过程中做对比时,源库若存在写入,则对比结果可能不一致。 行对比时,集群实例如果存在孤儿文档或者正在进行chunk迁移,会导致返回的行数不准确,对比结果不一致。详细情况可参考MongoDB官方文档。 其他限制 对于在源数据库已经存在TTL索引的集合,或者在增量迁移期间在源库数据创建了TTL索引的集合,由于源数据库和目标库数据库时区,时钟的不一致,不能保证迁移完成之后数据的一致性。 压缩参数block_compressor的取值,根据源库对应集合的stats().wiredTiger.creationString.block_compressor来决定,如果目标库已经存在对应的空集合,则不迁移压缩参数;特殊的,对于不支持的压缩参数,按照目标库实例的net.compression.compressors参数决定。当目标库为DDS 4.2版本时,由于目标库不支持压缩参数的设置,DRS不迁移压缩参数。 出云迁移的目标数据库如果是副本集,则建议目标数据库填写所有的主节点和备节点信息,以防主备切换影响迁移任务。如果是填写主备节点,注意填写的节点信息必须属于同一个副本集实例。 出云迁移的目标数据库如果是集群,则建议填写多个mongos信息,以防单个mongos节点故障影响迁移任务,并且多个mongos信息还可以实现负载均衡。如果填写多个mongos信息,注意所有所填的信息必须属于同一个集群实例。 为了提高迁移的速度,在开始迁移之前,建议在源数据库删掉不需要的索引,只保留必须的索引。在迁移过程中不建议对源库创建索引,如果必须要创建索引,请使用后台的方式创建索引。 为了防止回环,不支持在相同的源和目标库同时启动入云和出云任务。
  • 支持的迁移对象范围 在使用DRS进行迁移时,不同类型的迁移任务,支持的迁移对象范围不同,详细情况可参考表2。DRS会根据用户选择,在“预检查”阶段对迁移对象进行自动检查。 表2 支持的迁移对象 类型名称 使用须知 迁移对象范围 支持选择表级、库级或实例级(全部迁移)。 副本集:目前只支持集合(包括验证器,是否是固定集合),索引和视图的迁移。 集群:目前只支持集合(包括验证器,是否是固定集合),分片键,索引和视图的迁移。 单节点:目前只支持集合(包括验证器,是否是固定集合),索引和视图的迁移。 不支持迁移系统库(如local、admin、config等)的迁移,用户名和角色需要在目标库手动创建。 不支持视图的创建语句中有正则表达式。 不支持_id字段没有索引的集合。 不支持BinData()的第一个参数为2。 不支持源库集合的String类型字段中存储非UTF-8类型字符串,否则会导致迁移前后数据不一致。
  • 数据库账号权限要求 在使用DRS进行迁移时,连接源库和目标库的数据库账号需要满足以下权限要求,才能启动实时迁移任务。不同类型的迁移任务,需要的账号权限也不同,详细可参考表3进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 表3 数据库账号权限 类型名称 全量迁移 全量+增量迁移 源数据库连接账号 副本集:连接源数据库的用户需要有admin库的readAnyDatabase权限。 单节点:连接源数据库的用户需要有admin库的readAnyDatabase权限。 集群:连接源数据库的用户需要有admin库的readAnyDatabase权限,有config库的read权限。 副本集:连接源数据库的用户需要有admin库的readAnyDatabase权限,有local库的read权限。 单节点:连接源数据库的用户需要有admin库的readAnyDatabase权限,有local库的read权限。 目标数据库连接账号 连接目标数据库的用户需要有admin库的dbAdminAnyDatabase权限,有目标数据库的readWrite权限。 对于目标数据库是集群的实例,迁移账号还要有admin库的clusterManager权限。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。 用户赋权参考语句:如连接源数据库的用户需要有admin库的readAnyDatabase权限和config库的read权限。 db.grantRolesToUser("用户名",[{role:"readAnyDatabase",db:"admin"}, {role:"read",db:"config"}])
  • 数据库账号权限要求 在使用DRS进行迁移时,连接源库和目标库的数据库账号需要满足以下权限要求,才能启动实时迁移任务。不同类型的迁移任务,需要的账号权限也不同,详细可参考表2进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 表2 数据库账号权限 类型名称 全量迁移 全量+增量迁移 源数据库连接账号 需要具备如下最小权限: SELECT、SHOW VIEW、EVENT。 用户迁移时,如果源数据库为8.0版本,需要有mysql.user表的SELECT权限;如果为5.7及以下版本,则需要mysql系统库的SELECT权限,源数据库为阿里云数据库,则账户需要同时具有mysql.user和mysql.user_view的SELECT权限。 需要具备如下最小权限: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 用户迁移时,如果源数据库为8.0版本,需要有mysql.user表的SELECT权限;如果为5.7及以下版本,则需要mysql系统库的SELECT权限,源数据库为阿里云数据库,则账户需要同时具有mysql.user和mysql.user_view的SELECT权限。 目标数据库连接账号 需要具备如下最小权限: SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFERENCES、WITH GRANT OPTION。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 用户迁移时,需要有mysql库的SELECT、INSERT、UPDATE、DELETE权限。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。 表2中为DRS任务所需的最小权限,如果需要DRS任务迁移grant授权的情况下,请确保DRS任务的连接账号本身具备对应权限,否则可能因为grant授权执行失败导致目标库对应用户缺少授权。例如DRS任务的连接账号本身不要求process权限,如果需要通过DRS任务迁移process授权则需要保证DRS任务的连接账号具备该权限。
  • 支持的迁移对象范围 在使用DRS进行迁移时,不同类型的迁移任务,支持的迁移对象范围不同,详细情况可参考表3。DRS会根据用户选择,在“预检查”阶段对迁移对象进行自动检查。 表3 支持的迁移对象 类型名称 使用须知 迁移对象范围 支持选择表级、库级或实例级(全部迁移)。 支持数据库、表、用户、视图、索引、约束、函数、存储过程、触发器(TRIGGER)和事件(EVENT)的迁移。 仅支持MyISAM和InnoDB表的迁移。 不支持系统库的迁移以及事件状态的迁移。 不支持宽松模式可以写入但严格模式下无法写入的非标浮点类型的数据的迁移,这种非标浮点类型数据可能会有无法命中的风险导致数据迁移失败。 全量和增量迁移不支持隐藏列(INVISIBLE),隐藏列是MySQL 8.0.23开始支持的特性,例如: CREATE TABLE `test11` ( `id` int NOT NULL, `c1` int DEFAULT NULL /*!80023 INVISIBLE */, PRIMARY KEY (`id`));
  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 本地自建数据库(MySQL 5.5、5.6、5.7、8.0版本) ECS自建数据库(MySQL 5.5、5.6、5.7、8.0版本) 其他云上数据库(MySQL 5.5、5.6、5.7、8.0版本) RDS for MySQL(5.5、5.6、5.7、8.0版本) RDS for MySQL(5.5、5.6、5.7、8.0版本) 说明: 仅支持目标库版本等于或高于源库版本。
  • 使用建议 如果您使用的是全量迁移模式,确保源和目标数据库无业务写入,保证迁移前后数据一致。如果您使用的是全量+增量迁移模式,支持在源数据库有业务数据写入的情况下进行迁移。 数据库迁移与环境多样性和人为操作均有密切关系,为了确保迁移的平顺,建议您在进行正式的数据库迁移之前进行一次演练,可以帮助您提前发现问题并解决问题。 迁移阶段,确保目标数据库无业务写入,保证迁移前后数据一致。 基于以下原因,建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性迁移成功率,避免迁移对业务造成性能影响。 在网络无瓶颈的情况下,全量迁移会对源数据库增加约20MB/s的查询压力,以及占用2~4个CPU。 DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。 更多DRS对数据库的影响,可参考DRS对源数据库和目标数据库有什么影响。
  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 GeminiDB Redis 本地自建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版本)
  • 使用须知 DRS全量+增量迁移过程一般包含四个阶段:任务启动阶段、全量阶段、增量阶段、结束任务阶段(单全量任务则包含三个阶段)。为了确保迁移各个阶段的平顺,在创建迁移任务前,请务必阅读以下使用须知。 表3 使用须知 类型名称 使用和操作限制 任务启动前须知 源数据库要求: 源库必须是本云GeminiDB Redis实例。 一个GeminiDB Redis实例只能同时作为一个DRS任务的源端数据库。 源数据库GeminiDB Redis内核版本(gemini version)为4.2.0及以上。 源数据库GeminiDB Redis需要开启复制功能。 set config set enable-replication 1。 源库存在数据的数据库序号,需要小于目标库的最大序号,比如源库10号库存在数据,则目标库最大序号需要大于或等于10。 创建全量+增量任务,需要支持PSYNC命令。 目标数据库要求: 迁移前目标库建议为空。 目标数据库实例必须有足够的存储空间。 如果目标库是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增配导致任务失败,需要重置任务。且为保障数据一致性,在重置任务前,建议先清空已迁移至目标的数据。 迁移过程中,不支持源库GeminiDB Redis减配,如果源库需要减配,请重新创建迁移任务。 对于List对象,由于在调用PSYNC进行重传时,不会对目标端已有的数据进行清空,可能导致出现重复数据。 源库GeminiDB Redis为主备版时,不支持在源库执行包含多个key的命令(例如mset等),否则可能因为key不在同一个slot或者涉及多个slot,导致报错:CROSSSLOT Keys in request don't hash to the same slot。 全量迁移阶段须知 迁移过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。 迁移过程中,不允许对正在迁移中的目标数据库进行修改操作。 增量迁移阶段须知 迁移过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。 迁移过程中,不允许对正在迁移中的目标数据库进行修改操作。
  • 支持的迁移对象范围 在使用DRS进行迁移时,不同类型的迁移任务,支持的迁移对象范围不同,详细情况可参考表2。DRS会根据用户选择,在“预检查”阶段对迁移对象进行自动检查。 表2 支持的迁移对象 类型名称 使用须知 迁移对象范围 迁移对象选择维度:仅支持全部迁移。 支持的迁移对象: 支持String,Hash,List,Set,Sorted Set类型迁移。 不支持Lua脚本和事务的迁移。 不支持Stream,BitMap,HyperLogLog,GEO类型迁移。 不支持自定义类型。 不支持迁移目标库不支持的命令。
  • 数据库账号权限要求 在使用DRS进行迁移时,连接源库和目标库的数据库账号需要满足以下权限要求,才能启动实时迁移任务。不同类型的迁移任务,需要的账号权限也不同,详细可参考表2进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 表2 数据库账号权限 类型名称 全量迁移 全量+增量迁移 源数据库连接账号 需要具备如下最小权限: SELECT、SHOW VIEW、EVENT。 需要具备如下最小权限: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 目标数据库连接账号 目标中间件账户需要具备以下基本权限:CREATE、DROP、ALTER、 INDEX、 INSERT、DELETE、 UPDATE、 SELECT, 同时必须具备扩展权限:全表SELECT权限。 目标中间件账户必须具备对所迁移数据库的权限。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。
  • 支持的迁移对象范围 在使用DRS进行迁移时,不同类型的迁移任务,支持的迁移对象范围不同,详细情况可参考表3。DRS会根据用户选择,在“预检查”阶段对迁移对象进行自动检查。 表3 支持的迁移对象 类型名称 使用须知 迁移对象范围 支持选择表级迁移。 目前只支持迁移源库的数据,不支持迁移源库表结构及其他数据库对象。 仅支持MyISAM和InnoDB表的迁移。 不支持系统库的迁移以及事件状态的迁移。 不支持无主键表的迁移。 不支持宽松模式可以写入但严格模式下无法写入的非标浮点类型的数据的迁移,这种非标浮点类型数据可能会有无法命中的风险导致数据迁移失败。 源数据库为MySQL 8.0版本时,不支持迁移带有函数索引的表。 全量和增量迁移不支持隐藏列(INVISIBLE),隐藏列是MySQL 8.0.23开始支持的特性,例如: CREATE TABLE `test11` ( `id` int NOT NULL, `c1` int DEFAULT NULL /*!80023 INVISIBLE */, PRIMARY KEY (`id`));
  • 使用须知 为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考DRS预检查项一览表。除了预检查项目之外,您还需要注意的事情如表4所示。 表4 注意事项 类型名称 使用和操作限制 源数据库限制 如果源数据库为自建库,并且安装了Percona Server for MySQL 5.6.x或Percona Server for MySQL 5.7.x时,内存管理器必须使用Jemalloc库,以避免因系统表频繁查询带来的内存回收不及时,并最终导致数据库Out of Memory问题。 源数据库不支持mysql binlog dump命令。 源数据库不支持reset master或reset master to命令,可能会导致DRS任务失败或者数据不一致。 相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 由于MySQL本身限制,若源库的一次性事件(EVENT)设定的触发时间在迁移开始前,该事件(EVENT)不会迁移到目标库。 使用限制 通用: 整个迁移过程中,不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。 整个迁移过程中,不允许对正在迁移中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。 整个迁移过程中,不允许源库写入binlog格式为statement的数据。 整个迁移过程中,不允许源库执行清除binlog的操作。 整个迁移过程中,不允许在源库创建库名为ib_logfile的数据库。 全量迁移阶段: 任务启动和全量数据迁移阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量迁移阶段: 选择表级对象迁移时,增量迁移过程中不支持对表进行重命名操作。 增量迁移阶段,不支持源数据库进行恢复到某个备份点的操作(PITR)。 增量迁移阶段,支持断点续传功能,在主机系统崩溃的情况下,对于非事务性的无主键的表可能会出现重复插入数据的情况。 增量迁移阶段,支持部分DDL语句,包括:ADD COLUMN、MODIFY COLUMN、CHANGE COLUMN、CREATE INDEX、DROP INDEX、RENAME INDEX、ADD INDEX。 结束任务: 当目标DDM版本大于3.0.4.1版本,结束任务时,DRS会自动刷新DDM的自增列(sequence)起始值。 其他限制 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建迁移任务。 多对一场景下,创建迁移任务时,目标库读写设置需要跟已有任务设置为一致。 由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。 源库和目标库为RDS for MySQL实例时,不支持带有TDE特性并建立具有加密功能表。 如果源库MySQL不支持TLS1.2协议,或者为版本较低的自建库(低于5.6.46或在5.7.0-5.7.28之间),需提交运维申请才能使用SSL测试连接。 在创建DRS任务之前,如果源数据库实例开启并设置了SQL限流规则,可能会导致DRS任务失败。 目标库若已存在数据,DRS在增量迁移过程中源库相同主键的数据将覆盖目标库已存在的数据,因此在迁移前需要用户自行判断数据是否需要清除,建议用户在迁移前自行清空目标库。 目标库实例若选择将时间戳类型(TIMESTAMP,DATETIME)的列作为分片键,则源库数据在迁移到目标库之后,作为分片键的该时间戳类型列的秒精度将被丢弃。
  • 数据库账号权限要求 在使用DRS进行迁移时,连接源库和目标库的数据库账号需要满足以下权限要求,才能启动实时迁移任务。不同类型的迁移任务,需要的账号权限也不同,详细可参考表2进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 表2 数据库账号权限 类型名称 全量迁移 全量+增量迁移 源数据库连接账号 源物理分片数据库账号需要具备如下权限: SELECT、SHOW VIEW、EVENT。 源物理分片数据库账号需要具备如下权限: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 目标数据库连接账号 目标中间件账户需要具备以下基本权限:CREATE、DROP、ALTER、 INDEX、 INSERT、DELETE、 UPDATE、 SELECT, 同时必须具备扩展权限:全表SELECT权限。 目标中间件账户必须具备对所迁移数据库的权限。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。
  • 注意事项 为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考DRS预检查项一览表。除了预检查项目之外,您还需要注意的事情如表4所示 表4 注意事项 类型名称 使用和操作限制 源数据库限制 如果源数据库为自建库,并且安装了Percona Server for MySQL 5.6.x或Percona Server for MySQL 5.7.x时,内存管理器必须使用Jemalloc库,以避免因系统表频繁查询带来的内存回收不及时,并最终导致数据库Out of Memory问题。 源数据库不支持mysql binlog dump命令。 源数据库不支持reset master或reset master to命令,可能会导致DRS任务失败或者数据不一致。 相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 由于MySQL本身限制,若源库的一次性事件(EVENT)设定的触发时间在迁移开始前,该事件(EVENT)不会迁移到目标库。 使用限制 通用: 整个迁移过程中,不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。 整个迁移过程中,不允许对正在迁移中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。 整个迁移过程中,不允许源库执行清除binlog的操作。 整个迁移过程中,不允许源端DDM正在迁移的表做改变拆分键的操作;也不允许将单表/广播表改为拆分表,拆分表改为单表/广播表。 全量迁移阶段: 任务启动和全量数据迁移阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量迁移阶段: 选择表级对象迁移时,增量迁移过程中不支持对表进行重命名操作。 增量迁移阶段,不支持源数据库进行恢复到某个备份点的操作(PITR)。 增量迁移阶段,支持断点续传功能,在主机系统崩溃的情况下,对于非事务性的无主键的表可能会出现重复插入数据的情况。 增量迁移阶段,支持部分DDL语句,包括:ADD COLUMN、CREATE TABLE、CREATE INDEX、DROP INDEX、RENAME INDEX、ADD INDEX。 增量迁移阶段,对同一张表或列做DDL操作,需要在业务低峰期,并且时间间隔1分钟以上。 结束任务: 当目标DDM版本大于3.0.4.1版本,结束任务时,DRS会自动刷新DDM的自增列(sequence)起始值。 其他限制 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建迁移任务。 数据类型不兼容时,可能引起迁移失败。 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。 源库的表如果包含系统列_ddm_lock、_slot,该列下的数据在全量、增量迁移过程中都会被过滤,导致数据丢失。 任务创建后,源数据库不支持增加逻辑库或修改旧逻辑库关联新的RDS,否则会导致数据无法正常迁移或任务失败。 目标库实例若选择将时间戳类型(TIMESTAMP,DATETIME)的列作为分片键,则源库数据在迁移到目标库之后,作为分片键的该时间戳类型列的秒精度将被丢弃。
  • 支持的迁移对象范围 在使用DRS进行迁移时,不同类型的迁移任务,支持的迁移对象范围不同,详细情况可参考表3。DRS会根据用户选择,在“预检查”阶段对迁移对象进行自动检查。 表3 支持的迁移对象 类型名称 使用须知 迁移对象范围 支持选择表级迁移。 目前只支持迁移源库的数据,不支持迁移源库表结构及其他数据库对象。 仅支持MyISAM和InnoDB表的迁移。 不支持系统库的迁移以及事件状态的迁移。 不支持无主键表的迁移。 不支持宽松模式可以写入但严格模式下无法写入的非标浮点类型的数据的迁移,这种非标浮点类型数据可能会有无法命中的风险导致数据迁移失败。 源数据库为MySQL 8.0版本时,不支持迁移带有函数索引的表。 全量和增量迁移不支持隐藏列(INVISIBLE),隐藏列是MySQL 8.0.23开始支持的特性,例如: CREATE TABLE `test11` ( `id` int NOT NULL, `c1` int DEFAULT NULL /*!80023 INVISIBLE */, PRIMARY KEY (`id`)); 源库为DDM实例时,则不允许存在拆分键为timestamp类型的表。
  • 数据库账号权限要求 在使用DRS进行迁移时,连接源库和目标库的数据库账号需要满足以下权限要求,才能启动实时迁移任务。不同类型的迁移任务,需要的账号权限也不同,详细可参考表2进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 表2 数据库账号权限 类型名称 全量迁移 全量+增量迁移 源数据库连接账号 需要具备如下最小权限: SELECT、SHOW VIEW、EVENT。 用户迁移时,如果源数据库为8.0版本,需要有mysql.user表的SELECT权限;如果为5.7及以下版本,则需要mysql系统库的SELECT权限。 需要具备如下最小权限: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 用户迁移时,如果源数据库为8.0版本,需要有mysql.user表的SELECT权限;如果为5.7及以下版本,则需要mysql系统库的SELECT权限。 目标数据库连接账号 需要具备如下最小权限: SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFERENCES、WITH GRANT OPTION。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 用户迁移时,需要有mysql库的SELECT、INSERT、UPDATE、DELETE权限。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。 表2中为DRS任务所需的最小权限,如果需要DRS任务迁移grant授权的情况下,请确保DRS任务的连接账号本身具备对应权限,否则可能因为grant授权执行失败导致目标库对应用户缺少授权。例如DRS任务的连接账号本身不要求process权限,如果需要通过DRS任务迁移process授权则需要保证DRS任务的连接账号具备该权限。
  • 支持的迁移对象范围 在使用DRS进行迁移时,不同类型的迁移任务,支持的迁移对象范围不同,详细情况可参考表3。DRS会根据用户选择,在“预检查”阶段对迁移对象进行自动检查。 表3 支持的迁移对象 类型名称 使用须知 迁移对象范围 支持选择表级、库级或实例级(全部迁移)。 支持数据库、表、用户、视图、索引、约束、函数、存储过程、触发器(TRIGGER)和事件(EVENT)的迁移。 仅支持MyISAM和InnoDB表的迁移。 不支持系统库的迁移以及事件状态的迁移。 不支持宽松模式可以写入但严格模式下无法写入的非标浮点类型的数据的迁移,这种非标浮点类型数据可能会有无法命中的风险导致数据迁移失败。 全量和增量迁移不支持隐藏列(INVISIBLE),隐藏列是MySQL 8.0.23开始支持的特性,例如: CREATE TABLE `test11` ( `id` int NOT NULL, `c1` int DEFAULT NULL /*!80023 INVISIBLE */, PRIMARY KEY (`id`));
  • 注意事项 为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考DRS预检查项一览表。除了预检查项目之外,您还需要注意的事情如表4所示 表4 注意事项 类型名称 使用和操作限制 源数据库限制 源数据库不支持mysql binlog dump命令。 源数据库不支持reset master或reset master to命令,可能会导致DRS任务失败或者数据不一致。 相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 由于MySQL本身限制,若源库的一次性事件(EVENT)设定的触发时间在迁移开始前,该事件(EVENT)不会迁移到目标库。 使用限制 通用: 整个迁移过程中,不建议修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。 整个迁移过程中,不允许对正在迁移中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。 整个迁移过程中,不允许源库写入binlog格式为statement的数据。 整个迁移过程中,不允许源库执行清除binlog的操作。 整个迁移过程中,不允许在源库创建库名为ib_logfile的数据库。 需要DRS任务迁移索引的情况下,目标库对应表上不能存在同名但不同列信息的索引。全量阶段DRS会忽略对应表上已存在的同名索引,增量阶段DDL根据索引名操作索引时会触发错位问题。 全量迁移阶段: 任务启动和全量数据迁移阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量迁移阶段: 选择表级对象迁移时,增量迁移过程中不支持对表进行重命名操作。 增量迁移阶段,不支持源数据库进行恢复到某个备份点的操作(PITR)。 增量迁移阶段,支持断点续传功能,在主机系统崩溃的情况下,对于非事务性的无主键的表可能会出现重复插入数据的情况。 增量迁移阶段,支持DDL语句。 结束任务: 任务正常结束: 在结束迁移任务时,将进行所选事件(EVENT)和触发器(TRIGGER)的迁移。请确保任务结束前,不要断开源和目标数据库的网络连通性,并在结束任务时关注迁移日志上报的状态,达到数据库完整迁移效果。 任务强制结束: 强制结束将直接释放DRS资源,不会进行触发器、事件的迁移,请参考手工迁移触发器、事件。如果需要DRS进行触发器、事件迁移,请先修复DRS任务,待任务状态正常后,再正常结束任务。 常见故障排查: 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考“故障排查”章节进行排查。 其他限制 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建迁移任务。 对于源数据库和目标数据库的版本有差异的迁移链路,由于不同版本之间的部分特性差异,可能会出现语法兼容性问题,详情可参考MySQL不同版本之间的语法差异。 多对一场景下,创建迁移任务时,目标库读写设置需要跟已有任务设置为一致。 由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。 不支持目标数据库恢复到全量迁移时间段范围内的PITR操作。 源库和目标库为RDS for MySQL实例时,不支持带有TDE特性并建立具有加密功能表。 如果目标库MySQL不支持TLS1.2协议,或者为版本较低的自建库(低于5.6.46或在5.7.0-5.7.28之间),需提交运维申请才能使用SSL测试连接。 当目标数据库为5.7版本时,因为版本限制,json类型中的浮点数会丢失小数点后末位的0,存在精度损失导致内容对比不一致。 在创建DRS任务之前,如果源或者目标数据库实例开启并设置了SQL限流规则,可能会导致DRS任务失败。
  • 支持的源和目标数据库 表1 支持的数据库 源数据库 目标数据库 RDS for MySQL(5.5、5.6、5.7、8.0版本) 本地自建数据库(MySQL 5.5、5.6、5.7、8.0版本) ECS自建数据库(MySQL 5.5、5.6、5.7、8.0版本) 其他云上数据库(MySQL 5.5、5.6、5.7、8.0版本) RDS for MySQL(5.5、5.6、5.7、8.0版本) 说明: 仅支持目标库版本等于或高于源库版本。
  • 数据库账号权限要求 在使用DRS进行迁移时,连接源库和目标库的数据库账号需要满足以下权限要求,才能启动实时迁移任务。不同类型的迁移任务,需要的账号权限也不同,详细可参考表2进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。 表2 数据库账号权限 类型名称 全量迁移 全量+增量迁移 源数据库连接账号 需要具备如下最小权限: SELECT、SHOW VIEW、EVENT。 用户迁移时,如果源数据库为8.0版本,需要有mysql.user表的SELECT权限;如果为5.7及以下版本,则需要mysql系统库的SELECT权限,源数据库为阿里云数据库,则账户需要同时具有mysql.user和mysql.user_view的SELECT权限。 需要具备如下最小权限: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 用户迁移时,如果源数据库为8.0版本,需要有mysql.user表的SELECT权限;如果为5.7及以下版本,则需要mysql系统库的SELECT权限,源数据库为阿里云数据库,则账户需要同时具有mysql.user和mysql.user_view的SELECT权限。 目标数据库连接账号 需要具备如下最小权限: SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFERENCES、WITH GRANT OPTION。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 用户迁移时,需要有mysql库的SELECT、INSERT、UPDATE、DELETE权限。 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。 表2中为DRS任务所需的最小权限,如果需要DRS任务迁移grant授权的情况下,请确保DRS任务的连接账号本身具备对应权限,否则可能因为grant授权执行失败导致目标库对应用户缺少授权。例如DRS任务的连接账号本身不要求process权限,如果需要通过DRS任务迁移process授权则需要保证DRS任务的连接账号具备该权限。
  • 支持的迁移对象范围 在使用DRS进行迁移时,不同类型的迁移任务,支持的迁移对象范围不同,详细情况可参考表3。DRS会根据用户选择,在“预检查”阶段对迁移对象进行自动检查。 表3 支持的迁移对象 类型名称 使用须知 迁移对象范围 支持选择表级、库级或实例级(全部迁移)。 支持数据库、表、用户、视图、索引、约束、函数、存储过程、触发器(TRIGGER)和事件(EVENT)的迁移。 仅支持MyISAM和InnoDB表的迁移。 不支持系统库的迁移以及事件状态的迁移。 不支持宽松模式可以写入但严格模式下无法写入的非标浮点类型的数据的迁移,这种非标浮点类型数据可能会有无法命中的风险导致数据迁移失败。 全量和增量迁移不支持隐藏列(INVISIBLE),隐藏列是MySQL 8.0.23开始支持的特性,例如: CREATE TABLE `test11` ( `id` int NOT NULL, `c1` int DEFAULT NULL /*!80023 INVISIBLE */, PRIMARY KEY (`id`));
  • 注意事项 为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考DRS预检查项一览表。除了预检查项目之外,您还需要注意的事情如表4所示 表4 注意事项 类型名称 使用和操作限制 源数据库限制 源库不支持阿里云RDS的只读副本。 如果源数据库为自建库,并且安装了Percona Server for MySQL 5.6.x或Percona Server for MySQL 5.7.x时,内存管理器必须使用Jemalloc库,以避免因系统表频繁查询带来的内存回收不及时,并最终导致数据库Out of Memory问题。 源数据库不支持mysql binlog dump命令。 源数据库不支持reset master或reset master to命令,可能会导致DRS任务失败或者数据不一致。 相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 由于MySQL本身限制,若源库的一次性事件(EVENT)设定的触发时间在迁移开始前,该事件(EVENT)不会迁移到目标库。 使用限制 通用: 整个迁移过程中,不建议修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。 整个迁移过程中,不允许对正在迁移中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。 整个迁移过程中,不允许源库写入binlog格式为statement的数据。 整个迁移过程中,不允许源库执行清除binlog的操作。 整个迁移过程中,不允许在源库创建库名为ib_logfile的数据库。 整个迁移过程中,不允许修改目标数据库主节点的浮动IP到只读节点。如果进行了修改,数据将会写入到只读节点,导致目标数据库和源数据库数据不一致。 需要DRS任务迁移索引的情况下,目标库对应表上不能存在同名但不同列信息的索引。全量阶段DRS会忽略对应表上已存在的同名索引,增量阶段DDL根据索引名操作索引时会触发错位问题。 全量迁移阶段: 任务启动和全量数据迁移阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量迁移阶段: 选择表级对象迁移时,增量迁移过程中不支持对表进行重命名操作。 增量迁移阶段,不支持源数据库进行恢复到某个备份点的操作(PITR)。 增量迁移阶段,支持断点续传功能,在主机系统崩溃的情况下,对于非事务性的无主键的表可能会出现重复插入数据的情况。 增量迁移阶段,支持DDL语句。 结束任务: 任务正常结束: 在结束迁移任务时,将进行所选事件(EVENT)和触发器(TRIGGER)的迁移。请确保任务结束前,不要断开源和目标数据库的网络连通性,并在结束任务时关注迁移日志上报的状态,达到数据库完整迁移效果。 任务强制结束: 强制结束将直接释放DRS资源,不会进行触发器、事件的迁移,请参考手工迁移触发器、事件。如果需要DRS进行触发器、事件迁移,请先修复DRS任务,待任务状态正常后,再正常结束任务。 常见故障排查: 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考“故障排查”章节进行排查。 其他限制 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建迁移任务。 目标数据库实例必须是GaussDB(for MySQL)主备实例。 多对一场景下,创建迁移任务时,目标库读写设置需要跟已有任务设置为一致。 由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。 不支持目标数据库恢复到全量迁移时间段范围内的PITR操作。 源库和目标库为RDS for MySQL实例时,不支持带有TDE特性并建立具有加密功能表。 如果源库MySQL不支持TLS1.2协议,或者为版本较低的自建库(低于5.6.46或在5.7.0-5.7.28之间),需提交运维申请才能使用SSL测试连接。 在创建DRS任务之前,如果源或者目标数据库实例开启并设置了SQL限流规则,可能会导致DRS任务失败。 迁移任务目标数据库可以设置“只读”和“读写”。 只读:目标数据库实例将转化为只读、不可写入的状态,迁移任务结束后恢复可读写状态,此选项可有效的确保数据迁移的完整性和成功率,推荐此选项。 读写:目标数据库可以读写,但需要避免操作或接入应用后会更改迁移中的数据(注意:无业务的程序常常也有微量的数据操作),进而形成数据冲突、任务故障、且无法修复续传,充分了解要点后可选择此选项。
  • 约束限制 所有链路均支持修改连接密码。 目前仅MySQL和GaussDB(for MySQL)为源且连接方式为输入IP地址的任务,在增量阶段支持修改IP、端口、用户名信息。当源库进行某些操作导致IP地址、端口、用户名变化时,可通过此功能更新为正确的信息。 修改IP功能适用于源库IP地址变化场景,修改前后的IP必须属于同一个数据实例,否则可能导致任务失败或者数据不一致。 连接信息修改后,将实时生效,不会清空目标数据库的数据。
  • 方法一 在“实时同步管理”页面,选择需要修改同步对象的任务,单击操作列的“编辑”按钮。 图1 编辑实时同步对象 进入“设置同步”页面,修改需要同步的对象,单击“下一步”。 选择对象时可对展开的库进行搜索,搜索支持正则表达式。 当对象名称包含空格时,名称前后的空格不显示,中间如有多个空格只显示一个空格。 选择的同步对象名称中不能包含空格。 在“数据加工”页面,可参考数据加工章节,为新增加表设置相关规则。 任务再编辑时,已经同步的表不支持修改加工规则。 在“预检查”页面,进行同步任务预校验,校验是否可进行。 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行任务预校验。 预检查不通过项处理建议请参见《数据复制服务用户指南》中的“预检查不通过项修复方法”。 预检查完成后,且所有检查项结果均通过时,单击“下一步”。 所有检查项结果均通过时,若存在请确认项,需要阅读并确认详情后才可以继续执行下一步操作。 在“任务确认”页面,确认同步任务信息无误后,单击“启动任务”,提交同步任务。 返回“实时同步管理”,在同步任务列表中,当前任务状态显示为“增量同步”,并生成任务状态为“任务变更中”的子任务,待子任务变更完成后,开始对编辑后的同步对象进行增量同步。
  • DRS任务创建后支持修改源或目标数据库吗 DRS在任务创建后、启动前的配置状态时,支持修改源或者目标数据库。 入云链路:支持修改源数据库,不支持修改目标数据库。目标数据库为创建任务时选择的实例,不支持更换,仅支持修改数据库连接信息(用户名和密码)。 出云链路:支持修改目标数据库信息,不支持修改源数据库。源数据库为创建任务时选择的实例,不支持更换,仅支持修改数据库连接信息(用户名和密码)。 自建-自建链路:支持修改源和目标数据库信息。 DRS在任务提交启动后,源和目标数据库均不支持更换,仅支持修改数据库连接密码。 父主题: 通用操作
  • 授权操作说明 创建用户 操作方式: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; · username:待创建的账号。 · host:允许该账号登录的主机,如果允许该账号从任意主机登录数据库,可以使用%。 · password:账号的密码。 例如:授予drsmigration账号具备所有数据库和表的所有权限,并允许从任意主机登录数据库,命令如下。 CREATE USER 'drsmigration'@'%' IDENTIFIED BY 'Drs123456'; 授予相应权限 操作方式: GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION; flush privileges; · privileges:授予该账号的操作权限,如SELECT、INSERT、UPDATE等,如果要授予该账号所有权限,则使用ALL · databasename:数据库名。如果要授予该账号具备所有数据库的操作权限,则使用*。 · tablename:表名。如果要授予该账号具备所有表的操作权限,则使用*。 · username:待授权的账号。 · host:允许该账号登录的主机,如果允许该账号从任意主机登录,则使用%。 · WITH GRANT OPTION:授予该账号使用GRANT命令的权限,该参数为可选。 例如:创建一个账号,账号名为drsmigration,密码为Drs123456,并允许从任意主机登录数据库,命令如下。 GRANT ALL ON *.* TO 'drsmigration'@'%';
  • 权限要求 源和目标库的连接账号需要具有登录权限,如果没有该账号,可以通过如下方式创建,以user1为例。 参考语句:CREATE USER 'user1'@'host' IDENTIFIED BY 'password'; DRS的实时迁移、实时同步、实时灾备功能的权限要求,表1 权限要求中以user1为例提供参考语句。 表1 权限要求及参考语句 功能模块 源/业务数据库 目标/灾备数据库 实时迁移 全量迁移权限要求: SELECT、SHOW VIEW、EVENT。 参考语句:GRANT SELECT, SHOW VIEW, EVENT ON *.* TO 'user1'; 全量+增量迁移权限要求: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 其中,REPLICATION SLAVE、REPLICATION CLIENT是全局权限,必须单独开启。参考语句如下: GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user1'; SELECT、SHOW VIEW、EVENT、LOCK TABLES是非全局权限,参考语句如下: GRANT SELECT, SHOW VIEW, EVENT, LOCK TABLES ON [待迁移数据库].* TO 'user1'; 全量迁移权限要求: SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFERENCES、WITH GRANT OPTION。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 参考语句:GRANT SELECT, CREATE, ALTER, DROP, DELETE, INSERT, UPDATE, INDEX, EVENT, CREATE VIEW, CREATE ROUTINE, TRIGGER ON *.* TO 'user1' WITH GRANT OPTION; 全量+增量迁移权限要求: SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFERENCES、WITH GRANT OPTION。当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 参考语句:GRANT SELECT, CREATE, ALTER, DROP, DELETE, INSERT, UPDATE, INDEX, EVENT, CREATE VIEW, CREATE ROUTINE, TRIGGER, REFERENCES ON [待迁移数据库].* TO 'user1' WITH GRANT OPTION; 实时同步 SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 其中,REPLICATION SLAVE、REPLICATION CLIENT是全局权限,必须单独开启。参考语句如下: GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user1'; SELECT、SHOW VIEW、EVENT、LOCK TABLES是非全局权限,参考语句如下: GRANT SELECT, SHOW VIEW, EVENT, LOCK TABLES ON [待同步数据库].* TO 'user1'; SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、ALTER、CREATE VIEW、CREATE ROUTINE、REFERENCES。 参考语句:GRANT SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, REFERENCES ON [待同步数据库].* TO 'user1'; 实时灾备 SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、TRIGGER、REFERENCES、SHOW VIEW、EVENT、INDEX、LOCK TABLES、CREATE VIEW、 CREATE ROUTINE、 ALTER ROUTINE、 CREATE USER、RELOAD、REPLICATION SLAVE、REPLICATION CLIENT、WITH GRANT OPTION,RDS for MySQL实例的root账户默认已具备上述权限。当业务数据库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 参考语句:GRANT SELECT,CREATE,ALTER,DROP,DELETE,INSERT,UPDATE,TRIGGER,SHOW VIEW,EVENT,INDEX,LOCK TABLES,CREATE VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,RELOAD,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'user1'; SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、TRIGGER、REFERENCES、SHOW VIEW、EVENT、INDEX、LOCK TABLES、CREATE VIEW、 CREATE ROUTINE、 ALTER ROUTINE、 CREATE USER、RELOAD、REPLICATION SLAVE、REPLICATION CLIENT、WITH GRANT OPTION,RDS for MySQL实例的root账户默认已具备上述权限。当灾备数据库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 参考语句:GRANT SELECT,CREATE,ALTER,DROP,DELETE,INSERT,UPDATE,TRIGGER,REFERENCES,SHOW VIEW,EVENT,INDEX,LOCK TABLES,CREATE VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,RELOAD,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'user1'@'%' WITH GRANT OPTION; 请在以上参考语句后执行flush privileges;使授权生效。
  • 计费标准 表1 按需计费标准 计费项 计费说明 配置费(必选) 指计算和存储资源及数据处理的费用,按照实际使用时长计费,以自然小时为单位整点计费,不足一小时按照实际使用时长计费。 弹性公网IP费用(可选) 指公网访问产生的数据处理和数据流量费用。如果创建公网网络任务,您需要购买弹性公网IP。 华为云DRS配置费用详情,请参见产品价格详情。您可以通过DRS提供的价格计算器,选择您需要的配置规格,来快速计算出参考价格。
  • 基础指标:node-exporter指标 介绍通过中间件Exporter上报到AOM的node-exporter指标的类别、名称、含义等信息。 表1 CCE/自建K8s集群容器指标 Job名称 指标 指标含义 node-exporter node_filesystem_size_bytes 挂载的文件系统占用空间 node_filesystem_readonly 只读挂载的文件系统 node_filesystem_free_bytes 挂载的文件系统剩余空间 node_filesystem_avail_bytes 挂载的文件系统可用空间 node_cpu_seconds_total 节点CPU时间 node_network_receive_bytes_total 累积接收数据总量 node_network_receive_errs_total 接收时遇到的错误累积计数 node_network_transmit_bytes_total 累积传输数据总量 node_network_receive_packets_total 接收数据包的累积计数 node_network_transmit_drop_total 传输时丢弃的累积计数 node_network_transmit_errs_total 传输时遇到的错误累积计数 node_network_up 网卡的状态 node_network_transmit_packets_total 传输数据包的累积计数 node_network_receive_drop_total 接收时丢弃的累积计数 go_gc_duration_seconds 数据来自调用debug.ReadGCStats(),调用该函数时,会将传入参数GCStats结构体的PauseQuantile字段设置为5,这样函数将会返回最小、25%、50%、75% 和最大,这5个GC暂停时间百分位数。然后prometheus Go客户端根据返回的GC暂停时间百分位数、以及NumGC和PauseTotal变量创建摘要类型指标。 node_load5 节点5分钟CPU负载 node_filefd_allocated 已分配的文件描述符 node_exporter_build_info NodeExporter构建信息 node_disk_written_bytes_total 写入成功的字节总数 node_disk_writes_completed_total 写入完成的次数 node_disk_write_time_seconds_total 写入花费的总时长 node_nf_conntrack_entries 链接状态跟踪表分配的数量 node_nf_conntrack_entries_limit 链接状态跟踪表总量 node_processes_max_processes PID限制值 node_processes_pids PID个数 node_sockstat_TCP_alloc 已分配的TCP套接字数量 node_sockstat_TCP_inuse 正在使用的TCP套接字数量 node_sockstat_TCP_tw 等待关闭的TCP连接数 node_timex_offset_seconds 时钟时间偏移 node_timex_sync_status 节点时钟同步状态 node_uname_info 节点uname信息 node_vmstat_pgfault /proc/vmstat中的pgfault node_vmstat_pgmajfault /proc/vmstat中的pgmajfault node_vmstat_pgpgin /proc/vmstat中的pgpgin node_vmstat_pgpgout /proc/vmstat中的pgpgout node_disk_reads_completed_total 读取完成的次数 node_disk_read_time_seconds_total 读取花费的总时长 process_cpu_seconds_total 该指标计算使用到utime(Go进程执行在用户态模式下的滴答数)和stime(Go进程执行在内核态时候的滴答数,例如系统调用时),参数的单位为jiffies,jiffy描述了两次系统定时器中断之间的滴答时间。process_cpu_seconds_total等于utime和stime之和除以USER_HZ。即将程序滴答总数除以 Hz(每秒滴答数)得到就是操作系统运行该进程的总时间(以秒为单位)。 node_disk_read_bytes_total 读取成功的字节总数 node_disk_io_time_weighted_seconds_total 执行I/O所花费的加权秒数 node_disk_io_time_seconds_total I/O总耗时 node_disk_io_now 当前运行的I/O数量 node_context_switches_total 上下文切换次数 node_boot_time_seconds 节点开机时间 process_resident_memory_bytes 即RSS(Resident Set Size),指的是常驻内存集,是进程实际使用的内存,他不包括分配但未使用的内存,也不包括换出的内存页面,但包含共享内存。 node_intr_total 节点中断总数 node_load1 节点1分钟CPU负载 go_goroutines 通过runtime.NumGoroutine()调用获取,基于调度器结构sched和全局allglen变量计算得来。由于sched结构体的所有字段可能并发的更改,因此最后会检查计算的值是否小于1,如果小于1,那么返回1。 scrape_duration_seconds 采集scrape target花费的时间 node_load15 节点15分钟CPU负载 scrape_samples_post_metric_relabeling metric被重设标签后,剩余sample数量 node_netstat_Tcp_PassiveOpens 从LISTEN 状态直接转换到SYN-RCVD 状态的TCP连接数 scrape_samples_scraped scrape target暴露的sample数量 node_netstat_Tcp_CurrEstab 当前状态为ESTABLISHED 或CLOSE-WAIT 的TCP 连接数 scrape_series_added scrape target新增加的系列数 node_netstat_Tcp_ActiveOpens 从CLOSED 状态直接转换到SYN-SENT 状态的TCP连接数 node_memory_MemTotal_bytes 节点内存总量 node_memory_MemFree_bytes 节点空闲内存 node_memory_MemAvailable_bytes 节点可用内存 node_memory_Cached_bytes 节点页面缓存中的内存 up scrape target的状态 node_memory_Buffers_bytes 节点缓冲区的内存 父主题: 指标总览
共100000条