检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
DDM准备 创建DDM实例 创建逻辑库并关联RDS for MySQL实例 创建DDM账号 创建目标库表结构 父主题: 通过DDM对RDS for MySQL实例进行分库分表
不支持的DML语法列举 不支持的DML语法 表1 DML的语法限制 DML语法 使用限制 DELETE语句 不支持PARTITION子句。 UPDATE语句 不支持跨分片子查询。 SELECT语句 支持ORDER BY语句,不支持类似ORDER BY FIELD(id,1,2,3)这种自定义排序。
for MySQL实例,不支持Serverless类型和容器类型。 不支持GaussDB(for MySQL)实例和云耀数据库实例。 DDM暂不支持MySQL实例配置SSL连接。 禁止MySQL实例开启区分大小写。 如果您使用的MySQL版本为5.7,请您在MySQL实例创建完成
RIGHT_SHIFT算法 适用场景 当拆分键大部分键值的低位部位区分度比较低而高位部分区分度比较高时,则适用于通过此拆分算法提高散列结果的均匀度。 使用说明 拆分键的数据类型必须是整数类型。 路由方式 根据拆分键的键值(键值必须是整数)有符号地向右移二进制移指定的位数(位数由用户通过
YYYYMM按年月哈希 适用场景 适用于需要按年份与月份进行分库的场景,建议该函数与 tbpartition YYYYMM(ShardKey) 联合使用。 使用说明 拆分键的数据类型必须是DATE / DATETIME / TIMESTAMP其中之一。 路由方式 根据拆分键的时间
MMDD按月日哈希 适用场景 MMDD适用于按一年的天数(即一年中日期)进行分表,分表的表名的下标就是一年中的第几天,一年最多366天。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根
RDS实例侦听端口 数据库用户 数据库名称 数据库表名 目标DDM实例 DDM实例连接地址 DDM实例侦听端口 DDM实例用户名 DDM关联RDS实例上创建的数据库名称 新建RDS实例连接地址 新建RDS实例侦听端口 RDS实例用户名 数据库名称 弹性云服务器 弹性IP地址 系统登录用户/密码
YYYYDD按年日哈希 适用场景 适用于需要按年份与一年的天数进行分库的场景,建议该函数与tbpartition YYYYDD(ShardKey) 联合使用。 使用说明 拆分键的数据类型必须是DATE / DATETIME / TIMESTAMP其中之一。 路由方式 根据拆分键的
DD按日期哈希 适用场景 DD适用于按日期的天数进行分表,分表的表数就是日期的天数。 使用说明 拆分键的类型必须是DATE/DATETIME/TIMESTAMP其中之一。 只能作为分表函数使用,但不能作为分库函数。 路由方式 根据拆分键的时间值的日期的天数进行取余运算并得到分表下标。
YYYYWEEK按年周哈希 适用场景 适用于需要按年份与一年的周数进行分库的场景,建议该函数与tbpartition YYYYWEEK(ShardKey) 联合使用。 使用说明 拆分键的数据类型必须是DATE / DATETIME / TIMESTAMP其中之一。 路由方式 根据
创建DRS迁移任务 创建DRS迁移任务 确认迁移执行结果 父主题: 通过DDM对RDS for MySQL实例进行分库分表
数据库时间与北京时间相差13或14小时该如何解决 问题现象 数据库时区设置为北京时间时,通过JDBC连接DDM,查询到的时间与北京时间相差13或14小时。 原因分析 JDBC驱动连接DDM时会向DDM查询数据库时区设置,DDM返回时区为CST(中国标准时间)。 CST有4种含义:
nextval、currval在全局序列的使用 nextval返回下一个序列值,currval返回当前序列值。其中nextval可以通过nextval(n)返回n个唯一序列值。 nextval(n)只能单独用在select sequence.nextval(n)场景下并且不支持跨库操作。
账号权限介绍 DDM的权限管理系统参考MySQL的权限管理进行实现,DDM支持大部分的MySQL的语法和权限类型。MySQL账号和权限系统的详细信息请参见MySQL官方文档。 本文档主要介绍DDM账号规则、权限级别、权限项、以及权限操作。 DDM里通过CREATE USER或GR
栏选择“备份管理”。 根据实例名称、备份开始/结束时间选择需要恢复的备份,单击操作栏的“恢复”。 图2 Metadata恢复 在Metadata恢复页面,设置备份恢复信息。 图3 恢复信息 表2 参数说明 参数名称 说明 备份名称 需要恢复的备份名称。 目标DDM 选择2中新创建的DDM实例。
> {mysql_table_data_ddm.sql} 为了提高导出数据的效率,对于非拆分库的表可以直连RDS for MySQL实例进行导出。 mysqldump5.7官网链接:https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html。
全局序列在INSERT或REPLACE语句中的使用 要想在同一个实例下实现跨逻辑库序列的全局唯一,可以在INSERT语句或者REPLACE语句中结合全局序列一起使用。INSERT语句和REPLACE语句支持nextval和currval两个方式序列的获取。其中,nextval表示
读权重设置成功后,在DN管理列表页面将显示最新设置的权重数。 设置单个实例的读权重 登录分布式数据库中间件控制台。 在实例管理列表页面,选择目标实例。 单击实例名称,进入基本信息页面。 在左侧导航栏,选择“DN管理”页签。 单击目标实例操作列“设置读权重”。 图2 单个设置读权重
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.sql.DataSource;
确认迁移执行结果 操作步骤 待迁移任务结束后,可登录DDM实例查看数据迁移结果。确保DDM实例数据与源数据库数据一致。 图1 查看user_test表数据 图2 查看address_test表数据 执行以下命令查看表数据分布情况。广播表各分片数据一致,拆分表数据会按照拆分算法分布在选取的分片中。