检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
数据库时间与北京时间相差13或14小时该如何解决 问题现象 数据库时区设置为北京时间时,通过JDBC连接DDM,查询到的时间与北京时间相差13或14小时。 原因分析 JDBC驱动连接DDM时会向DDM查询数据库时区设置,DDM返回时区为CST(中国标准时间)。 CST有4种含义:
业务的分布式数据库中间件实例。 表1 DDM最佳实践一览表 章节名称 简介 合理制定分片策略 介绍创建拆分表时如何选择拆分键和拆分算法。 如何选择DDM逻辑库分片数 介绍创建拆分库时如何合理选择逻辑库分片。 广播表和单表的使用场景 介绍广播表和单表的常用场景。 DDM事务模型 介绍DDM的事务模型。
广播表和单表的使用场景 单表 DDM管理控制台不提供单表创建操作,用户可以通过MySQL客户端或应用程序连接到DDM实例后自行创建。 如果一张表的数据量预估在1000万条以下,且没有与其他拆分表进行关联查询的需求,建议将其设置为单表类型,存储在默认分片中。 单表创建样例,不做任何拆分:
> {mysql_table_data_ddm.sql} 为了提高导出数据的效率,对于非拆分库的表可以直连RDS for MySQL实例进行导出。 mysqldump5.7官网链接:https://dev.mysql.com/doc/refman/5.7/en/mysqldump
创建目标库表结构 DRS目前仅支持迁移源端MySQL的数据到目标DDM,不支持迁移源库表结构及其他数据库对象。用户需要在目标库根据源端逻辑库的表结构,自行在目标库创建对应的表结构及索引。未在目标库创建的对象,视为用户不选择这个对象进行迁移。更对约束限制可参考使用须知。 操作步骤 登录华为云控制台。
VPN信息进行填写。 单击“立即购买”,核对VPN连接信息后单击“提交”完成支付。 配置完成后,即可在列表中查看VPN信息,此时VPN网关的状态为“正常”。 父主题: 通过数据复制服务(DRS)将RDS for MySQL数据迁移到DDM
创建逻辑库并关联数据节点 分布式数据库中间件 DDM 访问DDM实例 03:44 访问DDM实例 分布式数据库中间件 DDM 创建逻辑库和逻辑表 03:13 创建逻辑库和逻辑表 分布式数据库中间件 DDM 申请DDM实例并导入RDS实例 03:03 申请DDM实例并导入RDS实例 分布式数据库中间件 DDM
如何处理表中存在主键重复的数据 场景 DDM实例的逻辑表中已存在主键数据类型边界值的记录,如果插入的数据超过主键数据类型的范围,表中会出现主键重复的数据。 处理方法 登录云服务管理控制台。 在RDS for MySQL的“实例管理”页面,查找DDM实例对应的RDS for MySQL实例,单击目标RDS
DDM支持如下两种方式进行数据迁移。 基于MySQL官方客户端工具,此部分以RDS for MySQL 为例重点介绍该迁移方式。 基于数据复制服务DRS。 迁移场景 数据迁移主要有以下场景: 场景一:数据中心自建MySQL迁移到DDM 场景二:其他云MySQL迁移到DDM 场景三:华为云上自建MySQL迁移到DDM
逻辑表是否分片 DDM逻辑表支持全局表、拆分表、单表三种类型。用户可以按照数据表的实际使用需求,选择最合适的逻辑表类型创建,实际操作请参考创建表。 单表只在第一个分片创建表以及存储数据。 全局表在每一个分片创建表并且存储全量数据。 拆分表在每一个分片创建表,数据按照拆分规则分散存储在分片中。
创建目标端VPC和安全组 创建DDM实例 创建RDS for MySQL实例 创建逻辑库并关联RDS for MySQL实例 创建DDM账号 创建目标库表结构 创建目标端VPN 父主题: 通过数据复制服务(DRS)将RDS for MySQL数据迁移到DDM
vendor_name; IFNULL SELECT IFNULL(product_id, 0) FROM Products; 表2 时间日期函数 函数表达式 示例 支持范围 DAY() SELECT * FROM TAB_DATE WHERE DAY(date)=21; SELECT
subnet-drs01 自定义,易理解可识别。 RDS(源库) RDS实例名 rds-mysql-src 自定义,易理解可识别。 所属Region 华南-广州 选择和自己业务区最近的Region,减少网络时延。 数据库版本 MySQL 5.7 - 实例类型 单机 本示例中为单机。
该场景不支持通过DDM关联旧RDS实例进行数据关联,需要将旧RDS实例数据导出后再导入到DDM实例完成数据迁移。 目标DDM关联的RDS版本与旧RDS的MySQL版本需要保持一致。 从旧RDS导出数据 登录ECS。 执行如下命令导出结构数据,其中斜体参数需根据实际情况配置,详细参数说明如表1所示。 mysqldump
通过数据复制服务(DRS)将RDS for MySQL数据迁移到DDM 方案概述 资源和成本规划 操作流程 源端RDS for MySQL准备 目标端DDM准备 创建VPN连接 创建DRS迁移任务 确认迁移执行结果
java:104) at com.mysql.jdbc.MysqlIO.invokeStatementInterceptorsPost(MysqlIO.java:2885) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2808)
每一行表示一个不一致的物理拆分表的详细检查结果。 DATABASE_NAME:物理表所在的物理分库。 TABLE_NAME:物理表表的表名。 TABLE_TYPE:物理表所属逻辑表类型。 EXTRA_COLUMNS:该物理表多出来的列。 MISSING_COLUMNS:表示该物理表缺少的列。
预检查内容 表1 预检查内容 检查内容 检查目的 检查未通过解决方案 表名长度检查 分片变更需要数据重分布时(例如:增加分片),会创建临时表,临时表的表名长度会略长于原表名,需确保临时表的表名长度不超过MySQL限制。 请修改过长的表名。 DN实例binlog全量备份时间检查 客户全量备份是否保留足够长时间。
TABLE_NAME:逻辑表名称。 TABLE_TYPE:逻辑表类型。 SINGLE:单表。 BROADCAST:广播表。 SHARDING:拆分表。 DDL_CONSISTENCY:该逻辑表对应所有物理表DDL是否一致。 TOTAL_COUNT:该逻辑表有几个物理表。 INCONSIS
DDM事务模型 因为DDM中的表一般都做了分库分表,使得这些表中的数据可能分布在很多个RDS实例上的不同数据库分片内。在DDM中一个事务中对各个逻辑表的增删改查很有可能实际发生在多个RDS实例上的不同数据库分片上,每个RDS实例上同一数据库分片内所发生的对分片内数据表的一系列操作相当于一个