云服务器内容精选

  • 前提条件 DDM实例中已创建逻辑库。 已有RDS for MySQ L实例 与DDM实例处于相同的VPC,该RDS for MySQL实例没有被其它DDM实例使用。如果需增加DN实例,则DN实例与DDM实例需要处于相同的VPC。 本特性需满足DDM内核版本大于等于3.0.8.3版本,建议您使用最新的内核版本来进行分片变更。 DDM实例关联的数据节点不能处于只读状态。 拆分模式为“非拆分”的逻辑库暂不支持分片变更功能。
  • 约束限制 华为云上自建MySQL所在E CS 、新购DDM和RDS for MySQL实例建议配置相同VPC和安全组。 为了保持数据完整性,需要先停止业务后再进行数据迁移。 DDM不支持以自动新建库或者新建拆分表、广播表的方式导入数据。因此导入数据前需要先创建好相同名称的逻辑库,相同拆分表、广播表结构的逻辑表,然后再进行数据导入。各类逻辑表创建方式请参见表2。 新增RDS for MySQL实例与源RDS实例的MySQL版本需要保持一致。
  • 操作步骤 登录 分布式数据库 中间件控制台。 在“实例管理”页面,选择指定的目标实例,单击实例名称。 在实例基本信息页面,单击“实例信息”模块的“版本升级”。 您也可以在“实例管理”页面的“版本”处单击“版本升级”弹出升级版本弹窗。 在升级版本弹窗中选择目标版本,单击“立即升级”。 系列优选版本:相同大版本下的推荐版本。 最新版本:最新大版本下的推荐版本。 图1 选择目标版本 确认无误后单击“是”进行版本升级。 版本升级时,实例状态将变为“升级中”。 版本升级完成后,实例状态由“升级中”变为“运行中”,版本将显示升级后的版本号。
  • 操作场景 DDM支持手动升级内核版本,可选择当前系列优选版本和最新版本升级。 系列优选版本:相同大版本下的推荐版本。改动较小,兼容风险较小。 最新版本:最新大版本下的推荐版本。改动涉及新特性、性能优化、问题修复,属于大版本升级,存在兼容性风险,建议升级前做充分的业务测试。 新创建的DDM实例默认为最新版本。如果华为云有新的内核版本发布时,您可以在“实例管理”页面的“版本”列看到内核版本升级提示,单击“版本升级”弹出升级版本弹窗。
  • 注意事项 升级数据库内核版本会重启DDM实例,服务可能会出现闪断,请您尽量在业务低峰期执行该操作,或确保您的应用有自动重连机制。 如果实例已经为本系列优选版本,则只可升级至最新版本。 如果当前版本与升级目标版本跨度较大,请务必在测试实例上做好充分的业务兼容性测试后,再进行生产实例的版本升级,确保生产业务稳定不受影响。 版本升级后如有业务不兼容问题,可及时将版本回滚至升级前版本,详细内容请参考版本回滚。 内核版本说明详情请参见内核版本说明。 如果DDM实例的VPC已开启IPv6子网,版本升级的目标版本必须小于等于3.0.9版本或者大于等于3.1.3版本。
  • 操作步骤 登录分布式数据库中间件控制台。 单击左侧导航栏“参数模板”,在“自定义”页签下单击参数模板名称。 在“参数详情”页签下,根据需要修改相关参数值,相关参数说明请参见实例参数说明。 图1 编辑参数模板 可进行的操作如下: 单击“保存”,在弹出框中单击“是”,保存修改。 单击“取消”,放弃本次设置。 单击“预览”,可对比参数修改前和修改后的值。 参数修改完成后,您可以单击“模板历史记录”查看参数的修改详情。 参数模板修改后,不会立即应用到当前使用的实例,您需要进行应用操作才可生效,具体操作请参见应用参数模板。 修改某些参数或字符集后需要手动重启,由于变更规格导致的强制重启,不会触发该参数生效。 修改配置参数可能影响应用访问DDM实例,请谨慎操作。 修改参数命令下发成功后,预计需要20~60秒生效,请耐心等待。 参数模板修改后,某些参数会立即应用到当前使用实例中,请谨慎操作。
  • 操作步骤 登录分布式数据库中间件控制台。 在实例管理列表页面,单击目标实例名称,进入实例基本信息页面。 在左侧导航栏选择“账号管理”,进入账号管理页面。 在账号管理页面单击“创建DDM账号”,在弹窗中填选账号参数信息。 图1 创建DDM账号 表1 创建DDM账号配置参数 参数 说明 账号名称 DDM账号的名称,命名规则如下。 长度为1-32个字符,必须以字母开头,不区分大小写,可以包含字母,数字、下划线,不能包含其它特殊字符。 密码 DDM账号的密码,密码复杂度要求如下。 大小写敏感。 长度为8~32个字符。 至少包含三种字符组合:小写字母、大写字母、数字、特殊字符 ~ ! @ # % ^ * - _ + ? 不能使用简单、强度不够、容易被猜测的密码。 不能与账号名称或者倒序的账号名称相同。 确认密码 确认密码必须和输入的密码保持一致。 密码有效期 设置密码有效期,取值范围为0-65535的整数,单位为天。如果DDM的账号状态为“已过期”,账号将无法登录,已有连接会断开,需要重置密码后重新登录。 0表示密码永不过期。 如果不设置密码有效期则默认密码永不过期。 说明: 内核版本需大于或者等于3.0.4。 关联逻辑库 DDM账号与逻辑库关联绑定,下拉列表中显示可关联的逻辑库。 DDM账号只对已关联的逻辑库有访问权限。 账号权限 选择需要的基础权限,包括CREATE、DROP、ALTER、INDEX、INSERT、DELETE、UPDATE、SELECT。 描述 对DDM账号的详细描述信息,长度不能超过256个字符。 确认填写无误后,单击“确定”。
  • 修订记录 发布日期 修订记录 2024-04-30 第六十三次正式发布。 会话管理,“DN会话(物理)”页签支持查看多个数据节点的会话信息。 实例监控指标,DDM实例支持实例维度监控。 2024-03-31 第六十二次正式发布。 购买实例的参数说明更新如下: DDM实例名称支持下划线(_)。 2024-02-29 第六十一次正式发布。 慢查询,控制台支持导出慢日志文件。 查看逻辑库列表和逻辑表信息,控制台支持查看DDM实例逻辑库的磁盘大小。 2024-01-30 第六十次正式发布。 预检查,分片变更预检查项新增物理分表个数限制检查。 版本升级,“实例管理”页面新增“版本升级”按钮。 2023-12-30 第五十九次正式发布。 功能总览,更新功能总览列表。 创建账号,创建DDM账号支持密码有效期设置。 2023-11-30 第五十八次正式发布。 2023-10-08 第五十七次正式发布。 会话管理,支持查看和结束会话。 2023-07-30 第五十六次正式发布。 查看逻辑库列表和逻辑表信息,新增查看逻辑库表结构。 分片变更操作指导,支持独占式分片变更方式。 2023-06-09 第五十五次正式发布。 新增事件监控。 2023-05-17 第五十四次正式发布。 MOD_HASH算法,MOD_HASH_CI算法和HASH算法增加注意事项。 2023-04-03 第五十三次正式发布。 新增实例状态。 2023-03-31 第五十二次正式发布。 新增版本升级。 新增版本回滚。 2023-02-16 第五十一次正式发布。 分片变更新增任务详情功能。 DN管理新增手动开启读写分离功能。 2023-02-01 第五十次正式发布。 数据库端口修改为DDM服务端口。 创建逻辑库增加DDM账号需创建成功的限制条件。 2023-01-17 第四十九次正式发布。 新增Online DDL。 2022-11-22 第四十八次正式发布。 新增数据库账号权限说明。 2022-11-01 第四十七次正式发布。 创建逻辑库、分片变更、备份恢复等章节添加说明内容和限制条件。 2022-09-29 第四十六次正式发布。 优化恢复到新实例和Metadata恢复章节。 2022-09-20 第四十五次正式发布。 创建逻辑库和分片变更操作指导章节增加关联数据节点状态需为只读状态的条件。 2022-08-18 第四十四次正式发布。 优化数据迁移章节。 优化支持审计的关键操作列表章节。 2022-08-16 第四十三次正式发布。 优化SQL语法章节。 2022-08-09 第四十二次正式发布。 增加备份原理章节。 优化全局序列概述章节。 2022-07-26 第四十一次正式发布。 优化读写分离与只读业务隔离章节的说明。 2022-07-05 第四十次正式发布。 分片变更章节新增特性概述,应用场景,变更评估和预检查等内容。 2022-06-16 第三十九次正式发布。 配置SQL黑名单章节新增正则匹配的说明。 2022-04-15 第三十八次正式发布。 数据迁移章节新增MySQL客户端版本为8.0时导出数据表结构mysqldump示例。 2022-04-02 第三十七次正式发布。 新增通过Hint指定分片直接执行SQL章节。 2022-03-29 第三十六次正式发布。 读写分离章节增加概述内容。 优化拆分算法概述与拆分算法使用说明。 监控指标章节增加连接数使用率。 2022-03-09 第三十五次正式发布。 监控指标页面格式调整。 2022-03-02 第三十四次正式发布。 新增一致性备份功能优化调整说明。 2022-02-28 第三十三次正式发布。 新增元数据恢复章节。 2022-02-23 第三十二次正式发布。 创建表章节增加拆分表的限制。 2022-01-27 第三十一次正式发布。 优化表迁移策略章节。 优化监控管理章节。 2022-01-21 第三十次正式发布。 新增DN管理章节。 优化分片变更章节。 2021-12-22 第二十九次正式发布。 增加关联更新说明。 新增慢查询章节。 2021-12-13 第二十八次正式发布。 增加函数使用限制。 增加关联更新说明。 2021-12-03 第二十七次正式发布。 增加一致性备份说明内容。 优化表数据重载内容。 2021-11-19 第二十六次正式发布。 新增节点重启。 修改实例监控指标。 2021-11-16 第二十五次正式发布。 修改SQL语法,增加插入和更新时的语法限制。 2021-11-10 第二十四次正式发布。 修改查看实例监控指标,增加指标英文名称。 2021-10-29 第二十三次正式发布。 新增 修改实例和组内网地址。 新增 绑定和解绑弹性公网IP 。 修改 DDL概述,父章节内容移动到子章节。 修改 不支持的DML语法列举,父章节内容移动到子章节。 修改 补充说明,父章节内容移动到子章节。 修改 全局序列概述,父章节内容移动到子章节。 2021-08-03 第二十二次正式发布。 修改创建逻辑库,增加限制说明。 修改分片变更,增加分片变更说明。 修改什么是只读业务隔离,增加创建组相关说明。 修改全局序列,增加“刷新实例所有表自增序列”命令。 2021-07-22 第二十一次正式发布。 根据界面,替换资料截图。 2021-07-16 第二十次正式发布。 新增MOD_HASH_CI算法。 修改创建逻辑库的账号规则。 细化读写分离功能的说明。 2021-07-12 第十九次正式发布。 删除DDM版本为2.3.X导出表结构和导出表数据的相关内容。 2021-06-25 第十八次正式发布。 新增修改表test全局序列的cache内容。 补充读写分离功能关于读请求的说明。 2021-06-07 第十七次正式发布。 新增访问控制章节,优化访问控制功能。 修改计算节点扩容章节,增加扩容可指定可用区的描述。 2021-05-25 第十六次正式发布。 修改12.1-监控指标,指标的描述避免使用华为内部用词,避免描述不到位、有歧义的情况。 2021-05-13 第十五次正式发布。 修改场景四:从DDM实例导出数据。 修改读写分离操作指导,关联数据库可以单击实例名称直接跳转到RDS/ GaussDB (for MySQL)实例页面,替换截图。 2021-05-11 第十四次正式发布。 增加只读业务隔离。 修改变更规格、计算节点扩容、计算节点缩容入口。 2021-04-30 第十三次正式发布。 修改HINT-DB/TABLE章节,命令格式。 增加只读业务隔离章节。 2021-04-20 第十二次正式发布。 补充其他不支持语句。 2021-04-09 第十一次正式发布。 新增审计章节。 2021-03-08 第十次正式发布。 修改分片表为拆分表。 修改监控指标描述:“数据面服务Core”改成“DDM服务” 参数模板管理加入复制和应用场景 。 实例管理加入设置参数模板场景。 新增功能总览章节。 2021-01-15 第九次正式发布。 重构目录。 增加分库分表语法。 完善DDL语法。 2020-12-29 第八次正式发布。 增加全局序列。 2020-11-30 第七次正式发布 修改全局表为广播表。 新增任务中心章节。 2020-11-02 第六次正式发布 修缮了SQL兼容性部分语句的前提条件等内容。 2020-10-20 第五次正式发布 新增一致性备份、节点扩容、节点缩容、数据恢复等内容。 2020-09-10 第四次正式发布 刷新参数配置管理、增加节点缩容、数据迁移等内容。 2020-08-07 第三次正式发布 增补SQL兼容性内容、权限管理等内容。 2020-06-30 第二次正式发布。 新增平滑扩容、SQL兼容性等内容。 2020-05-30 DDM 2.0第一次正式发布。
  • 操作步骤 登录分布式数据库中间件控制台。 在实例管理列表页面,单击目标实例名称,进入基本信息页面。 在左侧导航栏选择“账号管理”,进入账号管理页面。 在账号管理页面,单击“创建DDM账号”。 在弹框中填选账号信息。 表1 账号参数说明 参数 说明 账号名称 DDM账号的名称,命名规则如下。 长度为1-32个字符,必须以字母开头,不区分大小写,可以包含字母,数字、下划线,不能包含其它特殊字符。 密码 DDM账号的密码,密码复杂度要求如下。 长度为8~32个字符。 至少包含三种字符组合:大小写字母、数字、特殊字符 ~ ! @ # % ^ * - _ + ? 不能使用简单、强度不够、容易被猜测的弱口令。 不能与账号名称或者倒序的账号名称相同。 确认密码 确认密码必须和输入的密码保持一致。 密码有效期 设置密码有效期,取值范围为0-65535的整数,单位为天。如果DDM的账号状态为“已过期”,账号将无法登录,已有连接会断开,需要重置密码后重新登录。 0表示密码永不过期。 如果不设置密码有效期则默认密码永不过期。 说明: 内核版本需大于或者等于3.0.4。 关联逻辑库 DDM账号与逻辑库关联绑定,下拉列表中显示可关联的逻辑库。 DDM账号只对已关联的逻辑库有访问权限。 账号权限 按需选择需要的基础权限,包括CREATE、DROP、ALTER、INDEX、INSERT、DELETE、UPDATE、SELECT。 描述 对DDM账号的详细描述信息,长度不能超过256个字符。 信息填写完成,单击“确定”即可创建成功。
  • 修订记录 发布日期 修订记录 2024-06-30 第十六次正式发布。 2024-03-31 第十五次正式发布。 步骤一:购买DDM实例及RDS for MySQL实例的参数说明更新如下: DDM实例名称支持下划线(_)。 2023-12-30 第十四次正式发布。 步骤二:创建DDM账号,创建DDM账号支持密码有效期设置。 2023-07-25 第十三次正式发布。 新增入门实践。 2023-03-31 第十二次正式发布。 步骤四:连接DDM逻辑库中MySQL命令行连接DDM逻辑库和JDBC驱动连接DDM逻辑库增加SSL加密连接。 2022-11-01 第十一次正式发布。 步骤三:创建逻辑库并关联RDS for MySQL实例添加说明内容。 2022-07-06 第十次正式发布。 快速入门增加子网不一致的注意事项。 2022-01-21 第九次正式发布。 优化快速入门章节。 2021-12-01 第八次正式发布。 优化快速入门章节。 2021-07-16 第七次正式发布。 细化Navicat的版本号。 2021-05-13 第六次正式发布。 修改步骤四:连接DDM逻辑库,JDBC 连接串加参数rewriteBatchedStatements=true,替换截图。 2021-01-15 第五次正式发布。 新增有关MySQL客户端的配置说明。 2020-11-17 第四次正式发布。 修改快速入门目录,新增连接DDM实例或逻辑库章节。 2020-10-20 第三次正式发布。 刷新使用流程、连接DDM实例等内容。 2020-08-07 第二次正式发布。 刷新购买DDM实例等内容。 2020-04-30 DDM 2.0第一次正式发布。
  • JDBC驱动连接DDM逻辑库 使用以下操作步骤前,确保已安装JDBC驱动,建议JDBC驱动版本选择5.1.49及以上版本,JDBC驱动下载地址:https://dev.mysql.com/doc/index-connectors.html。 加载驱动程序。 Class.forname(com.mysql.jdbc.Driver); 打开数据库连接。 String username = "EXAMPLE_USERNAME_ENV" ; String password = "EXAMPLE_PASSWORD_ENV" ; String url = "jdbc:mysql://ip:port/db_name"; Connection con = DriverManager.getConnection(url , username , password); 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 上述样例中URL的参数取值可参见表2设置。 表2 URL参数说明 参数名称 参数说明 推荐取值 ip:port 连接地址和端口,用于连接DDM。 192.168.0.200:5066 获取方法:参考获取DDM逻辑库连接地址获取jdbc连接地址和端口信息。 db_name 连接逻辑库名称。 db_5505 获取方法:在DDM管理控制台,单击目标实例名称,在左侧导航栏中选择“逻辑库管理”,查看逻辑库名称。 创建Statement对象。 Statement stmt = con.createStatement(); 执行SQL语句。 ResultSet rs = stmt.executeQuery("select now() as Systemtime"); con.close(); (可选)优化代码。 loadBalanceAutoCommitStatementThreshold=5&loadBalanceHostRemovalGracePeriod=15000&loadBalanceBlacklistTimeout=60000&loadBalancePingTimeout=5000&retriesAllDown=10&connectTimeout=10000&useSSL=true"; loadBalanceAutoCommitStatementThreshold和retriesAllDown参数必须按照以上样例进行配置,否则在连接切换时可能进入死循环,导致栈溢出。 其余参数及相关配置说明请参见表3。 表3 参数说明 参数名称 参数说明 推荐取值 loadBalanceAutoCommitStatementThreshold 表示连接上执行多少个语句后会重新选择连接。 如果取值为5,则当执行5个sql后(Queries或者updates等),将会重新选择连接。 如果取值为0,则表示“粘性连接,不重新选择连接”。 关闭自动提交时(autocommit=false)会等待事务完成再考虑是否重新选择连接。 5 loadBalanceHostRemovalGracePeriod 设置宽限期,以等待主机从负载均衡连接中移除,当主机当前是活动主机时释放主机。 15000 loadBalanceBlacklistTimeout 通过控制服务器在全局黑名单中的存留时间,检查不可用服务器之间的时间间隔(以毫秒为单位)。 60000 loadBalancePingTimeout 使用负载均衡连接时,等待每个负载均衡连接ping响应的毫秒数。 5000 retriesAllDown 当所有的连接地址都无法连接时,轮询重试的最大次数。 重试次数达到阈值仍然无法获取有效连接,将会抛出SQLException。 10 connectTimeout 和数据库服务器建立socket连接时的超时。 单位:毫秒,0表示永不超时,适用于JDK 1.4及更高版本。 10000 socketTimeout socket操作(读写)超时。 单位:毫秒, 0表示永不超时。 根据业务实际情况合理配置。 useSSL 使用SSL加密连接访问DDM。 true
  • 获取DDM逻辑库连接地址 登录分布式数据库中间件控制台。 在实例管理界面单击DDM实例名称,进入实例基本信息页。 在左侧导航栏选择“逻辑库管理”,单击“连接地址列”的“查看”。 您也可以单击逻辑库名称进入逻辑库基本信息页面,在“连接地址”页签下查看“命令行连接地址”和“jdbc连接地址”。 图1 逻辑库连接地址 如果DDM实例有多个节点,页面内网地址只提供了一个IP地址,这是因为DDM集群支持了负载均衡。可通过连接该地址连接到DDM集群,达到负载均衡效果。 有部分历史实例的内网地址提供了多个IP地址,是因为DDM集群未支持负载均衡,可通过jdbc连接串达到负载均衡效果。 如果创建了只读组,每个组都会分配一个负载均衡连接地址,进行业务隔离。
  • 概览 本手册基于华为云分布式数据库中间件实践所编写,用于指导您完成相关设置,购买更符合业务的分布式数据库中间件实例。 表1 DDM最佳实践一览表 章节名称 简介 合理制定分片策略 介绍创建拆分表时如何选择拆分键和拆分算法。 如何选择DDM逻辑库分片数 介绍创建拆分库时如何合理选择逻辑库分片。 广播表和单表的使用场景 介绍广播表和单表的常用场景。 DDM事务模型 介绍DDM的事务模型。 DDM SQL使用规范 介绍DDM中的SQL使用规范。 如何将单RDS数据整库迁移至DDM 介绍将单RDS库中的数据整库迁移到DDM实例单库中。 如何将Mycat数据整库迁移至DDM 介绍将Mycat中的数据整库迁移到DDM中。 通过JDBC连接池连接DDM 介绍如何通过JDBC连接池与DDM对接,实现数据操作。 通过Navicat客户端连接DDM实例 介绍如何获取弹性公网的IP地址,并通过Navicat客户端连接DDM实例。 通过 数据复制服务 (DRS)将RDS for MySQL数据迁移到DDM 介绍如何通过DRS服务将RDS for MySQL数据迁移到DDM实例单库中。 通过DDM对RDS for MySQL实例进行分库分表 介绍如何通过DDM对已有RDS for MySQL实例进行分库分表。 跨分片复杂SQL调优 介绍如何针对跨分片复杂SQL时进行调优操作。
  • 响应消息 正常响应参数说明 表3 响应Body参数 参数 参数类型 描述 total_count Integer 总条数。 group_list Array of 表4 objects 实例的组信息列表。 表4 GroupInfo 参数 参数类型 描述 id String 组ID。 name String 组名称。 role String 组角色类型,分为读写组和只读组。 返回值: rw:读写组 r:只读组 endpoint String 组的连接地址。如果没有开启负载均衡,则返回的是组内节点的连接地址串。 ipv6_endpoint String 组IPv6的连接地址。 is_load_balance Boolean 是否开启负载均衡。 is_default_group Boolean 是否为默认组。 cpu_num_per_node Integer 单节点CPU的核数。 mem_num_per_node Integer 单节点的内存大小,单位为GB。 architecture String CPU架构。 返回值: X86 ARM node_list Array of 表5 objects 节点信息列表。 表5 GroupNodeInfo 参数 参数类型 描述 id String 节点ID。 name String 节点名称。 az String 节点所在的可用区。 正常响应示例 { "group_list":[ { "id":"****gr09", "name":"group-default", "role":"rw", "endpoint":"**.**.**.**:5066", "is_load_balance":true, "is_default_group":false, "architecture":"X86", "cpu_num_per_node":4, "mem_num_per_node":8, "node_list":[ { "id":"****no09", "name":"node_01", "az":"some_az" } ] } ], "total_count":1 } 异常响应 请参见异常请求结果。
  • URI URL格式 GET /v3/{project_id}/instances/{instance_id}/groups?offset={offset}&limit={limit} 参数说明 表1 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一region下的project ID。 获取方法请参见获取项目ID。 instance_id 是 String DDM实例ID。 offset 否 Integer 分页参数:起始值。默认值为0。 取值为大于等于0的整数。 limit 否 Integer 分页参数:每页多少条。默认值为10。 取值范围:1~128。