常见问题

Similar documents
常见问题

API参考

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

目錄

最佳实践

单元四数据的查询 数据库原理与应用 课内例题 任务 5 多表查询 课内例题 例创建数据表 orders, 并向表中添加记录 首先创建表 orders,sql 语句如下 : CREATE TABLE orders( o_num int NOT NULL AUTO_INCREMENT, o_date d

常见问题

最佳实践

通过Hive将数据写入到ElasticSearch

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

常见问题

SDK参考

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

untitled

untitled

SDK参考

性能白皮书

PowerPoint 演示文稿

用户指南

一步一步教你搞网站同步镜像!|动易Cms

性能白皮书

untitled

目录 1 IPv6 PIM Snooping 配置命令 IPv6 PIM Snooping 配置命令 display pim-snooping ipv6 neighbor display pim-snooping ipv6 routing-ta

ebook46-23

untitled

untitled

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

作业参考答案

未命名

基于UML建模的管理管理信息系统项目案例导航——VB篇

2017 演讲人 : 杨建荣

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

SQL Server SQL Server SQL Mail Windows NT

PowerPoint Presentation

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

天翼云 3.0 VPN 用户使用指南 中国电信股份有限公司云计算分公司

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

Oracle 4

支付宝2011年 IT资产与费用预算

新时期共青团工作实务全书(三十九)

RUN_PC連載_12_.doc

用户指南

untitled


6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

幻灯片 1

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

参数管理接口API文档

深入理解otter

回滚段探究

untitled

Flume-ng与Mysql整合开发

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

水晶分析师

PowerPoint 演示文稿

ebook 96-16

* 系统架构 * IB API 模块 目录 * 消息总线模块 * 行情采集处理引擎模块 * 持久化存储模块

錄...1 說...2 說 說...5 六 率 POST PAY PREPAY DEPOSIT 更

目錄... ivv...vii Chapter DETECT

快速入门

F515_CS_Book.book

季刊9web.indd

新美大酒店开放平台SDK(.NET版)使用说明.pages

ebook4-14

计算机网络实验说明

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

<4D F736F F D204D CCAFDBEDDBFE2B4D3C8EBC3C5B5BDBEABCDA820B5DA35D5C22E646F63>

SB142 ( 問 題 編 號 :2852) (3) 救 護 服 務 此 問 題 出 自 : 卷 1 第 215 頁 ( 如 適 用 者 ) 問 題 ( 議 員 問 題 編 號 :40): 1. 按 消 防 處 的 目 標, 救 護 車 應 能 夠 在 12 分 鐘 內 抵 達 現 場 本 年 的

目錄 C ontents Chapter MTA Chapter Chapter

四川省普通高等学校

常见问题

SA-DK2-U3Rユーザーズマニュアル

单元四数据的查询 数据库原理与应用 教学设计 数据库原理与应用 教学设计 课题名称 综合案例 数据的查询一 授课班级 移动通信 课时 2 学时 授课地点 实训室 知识目标能力目标素质目标 1. 掌握查询所有数据的方 1. 能够熟练地查询表中的 1. 培养学生的吃苦耐劳 法 ; 所有数据 ; 克服困难

用户指南

PowerPoint 演示文稿

最佳实践产品文档

(i) (ii) (iii) (iv) 380,000 [ ] , , % % % 5.5% 6.5%

习题1

FileMaker 15 ODBC 和 JDBC 指南

ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法

123

X713_CS_Book.book

FileMaker 16 ODBC 和 JDBC 指南

前言 本手册对协同管理系统的数据备份相关事宜进行说明 如对手册存在疑问, 可与致远互联 的客户服务人员联系 北京致远互联软件股份有限公司 2 / 15

幻灯片 1

家装知识(六)

( 含 要 ) 1-2 用 或 雇 用, 抑 或 有 無 俸 給 文 職 或 武 職, 政 官 或 事 官 均 屬 之, 其 不 以 具 備 人 資 格 為 限, 因 此 屬 於 最 廣 義 之 念 四 廣 義 念 之 依 服 24 條 之 規 定 : 本 於 受 有 俸 給 之 文 武 職, 及

Microsoft Word - install_manual-V _CN.docx


active phisical rp address: backup phisical rp address: 截取部分 TOPO 图说明到 不通的问题 : internet internet tengige 0/0/0/0 tengige

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

幻灯片 1

Transcription:

分布式数据库中间件 常见问题 文档版本 14 发布日期 2020-03-12 华为技术有限公司

版权所有 华为技术有限公司 2020 保留一切权利 非经本公司书面许可, 任何单位和个人不得擅自摘抄 复制本文档内容的部分或全部, 并不得以任何形式传播 商标声明 和其他华为商标均为华为技术有限公司的商标 本文档提及的其他所有商标或注册商标, 由各自的所有人拥有 注意 您购买的产品 服务或特性等应受华为公司商业合同和条款的约束, 本文档中描述的全部或部分产品 服务或特性可能不在您的购买或使用范围之内 除非合同另有约定, 华为公司对本文档内容不做任何明示或默示的声明或保证 由于产品版本升级或其他原因, 本文档内容会不定期进行更新 除非另有约定, 本文档仅作为使用指导, 本文档中的所有陈述 信息和建议不构成任何明示或暗示的担保 华为技术有限公司 地址 : 深圳市龙岗区坂田华为总部办公楼邮编 :518129 网址 : https://e.huawei.com 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 i

目录 目录 1 DDM 通用类... 1 1.1 DDM 提供哪些高可靠保障...1 1.2 DDM 监控能力有哪些... 1 1.3 DDM 自身是否会存储业务数据... 2 1.4 使用 DDM 事务模型有哪些注意事项... 2 1.5 DDM 支持创建逻辑表的方式有哪些... 2 1.6 如何选择和配置安全组...4 2 DDM 使用类... 7 2.1 向逻辑表中插入数据时出现报错... 7 2.2 DDM 如何进行分片...7 2.3 DDM 逻辑表支持哪几种类型... 8 2.4 DDM 实例是否支持跨 VPC 访问... 9 2.5 如何解决 JDBC 驱动方式连接 DDM 异常问题...9 2.6 如何选择 JDBC 驱动方式的版本和参数...10 2.7 DDM 实例的计费模式是否支持按需和包周期互转...11 2.8 使用 mysqldump 从 MySQL 导出数据非常缓慢的原因... 11 2.9 导入数据到 DDM 后出现主键重复... 12 2.10 如何进行选择和配置安全组... 12 2.11 如何处理创建表失败... 13 2.12 如何处理数据面建表失败... 14 2.13 如何处理 mysqldump 导出数据报错... 14 2.14 如何处理数据迁移过程中自增列后报错 : 主键重复...14 2.15 如何处理配置参数未超时却报错... 15 3 SQL 语法类... 16 3.1 DDM 是否支持 SQL 跨库访问... 16 3.2 DDM 是否支持分布式 JOIN... 16 3.3 如何进行 SQL 优化... 16 3.4 DDM 支持哪些 SQL... 16 3.5 DDM 是否支持数据类型强制转换... 16 3.6 DDM 是否支持外键... 17 3.7 如何处理 INSERT 语句批量插入多条数据时报错... 17 4 RDS 相关类... 18 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 ii

目录 4.1 数据库表名是否区分大小写... 18 4.2 RDS 实例参数配置 (binlog_format)... 18 4.3 如何处理所关联的 RDS 实例异常... 18 4.4 DDM 对 RDS 采用哪种检测机制... 18 4.5 DDM 控制台显示的 RDS 实例名称 /ID 和 RDS 控制台显示的 RDS 实例名称 /ID 为什么不同... 19 4.6 RDS 哪些高危操作会影响 DDM... 20 4.7 导入 RDS 失败提示 DDM.0095 是什么原因... 21 4.8 创建逻辑表时提示 RDS 分片上有残留的同名表怎么办... 21 4.9 如何处理表中存在主键重复的数据... 23 4.10 如何通过 show full innodb status 指令查询 RDS 相关信息... 24 4.11 创建逻辑库报错 :RDS 无法连接错误... 25 4.12 如何处理导入且关联 DDM 的 RDS 故障... 25 5 连接管理类...26 5.1 连接 DDM 实例...26 5.2 连接 DDM 时密码多次错误被锁定该如何解决... 26 5.3 本地环境是否可以连接 DDM 实例... 27 5.4 MySQL 连接 DDM 时出现乱码如何解决... 27 A 修订记录... 28 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 iii

1 DDM 通用类 1 DDM 通用类 1.1 DDM 提供哪些高可靠保障 数据完整性 容错机制 DDM 实例故障不会影响数据的完整性 业务数据存储在 RDS 实例上分片中,DDM 不存储业务数据 逻辑库与逻辑表等配置信息存储在 DDM 数据库中,DDM 数据库主备高可用 DDM 采用的是 RDS 自身的容错机制, 数据是否写入 DB 由 RDS 保证 RDS 返回 sql 执行成功,DDM 就认为成功 1.2 DDM 监控能力有哪些 云监控 DDM 当前提供云监控查看指标和 DDM 管理控制台监控管理的能力, 您可以根据监控结果对数据库进行调优, 保障性能 云监控提供 DDM 实例节点的监控, 可查看指标如表 1-1 所示, 您可以配置告警规则 表 1-1 云监控指标 监控参数名称 CPU 使用率内存使用率网络输入吞吐量网络输出吞吐量 监控参数说明用于统计数据面 core 的 CPU 利用率 用于统计数据面 core 的内存使用率 用于统计数据面 core 平均每秒的输入流量 用于统计数据面 core 平均每秒的输出流量 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 1

1 DDM 通用类 监控参数名称连接数请求数慢 SQL 数读占比 监控参数说明用于统计数据面服务 core 的连接数 用于统计数据面服务 core 的每秒请求数 用于统计数据面服务 core 的慢 SQL 条数 用于统计每个 DDM 节点的总体的读写比例 DDM 管理控制台监控管理 管理控制台提供了对 DDM 实例的监控管理, 包括读占比查看与慢 SQL 查看, 用户可以根据监控反馈结果, 对数据库进行调优 步骤 1 步骤 2 步骤 3 步骤 4 登录管理控制台 在导航上选择 数据库 > 分布式数据库中间件, 进入总览页面 单击左侧菜单栏的 DDM 实例管理, 进入 DDM 实例管理 页面 选择需要操作的实例, 单击右边操作栏 更多 > 查看监控 链接, 进入实例监控管理页面 ---- 结束 1.3 DDM 自身是否会存储业务数据 DDM 实例自身不存储客户业务相关数据, 客户业务相关数据都存储在 RDS 实例上分片中 DDM 节点目前硬盘配置为 100G, 主要用来存储日志和一些临时文件, 日志和临时文件会做定期清理, 空间足够使用 1.4 使用 DDM 事务模型有哪些注意事项 1. 事务补偿仅支持对事务中的 insert update 和 delete 语句的补偿 2. 事务隔离性在最终原子性下, 默认极端情况下会有脏读, 可以通过对 select 加 for update 或者 lock in share mode 避免脏读 3. 对应 autocommit=true 时, 若单条 sql(insert update delete 等 ) 执行跨了多个分片, 请在事务里执行 4. 对 DDL 如 truncate table 等,MySQL 会隐式提交, 无法做到事务一致性, 建议单独分开 5. insert into...on duplicate key update 语句仅支持对唯一主键方式, 对联合主键或其他唯一索引导致的 update 行为不支持, 无法保证一致性 1.5 DDM 支持创建逻辑表的方式有哪些 DDM 目前支持单表 全局表 分片表, 建表方式支持情况如表 1-2 所示 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 2

1 DDM 通用类 表 1-2 建表方式表格类型 Console 控制台创建 MySQL 连接 DDM 创建 单表 不支持 支持 全局表 支持 支持 分片表 支持 支持 本文主要介绍使用 DDL 语句进行建表的语法以及样例 建表前请确保已经使用 MySQL 连接 DDM 单表 : 只在第一个分片创建表以及存储数据 全局表 : 在每一个分片创建表并且存储全量数据 分片表 : 在每一个分片创建表, 数据按照拆分规则分散存储在分片中 单表 建一张单表 : CREATE TABLE single_table( id int, name varchar(30), primary key(id) ); 分片表 假设已经建好的逻辑库分片数为 8, 创建分片表, 拆分算法为 hash, 拆分键为 id CREATE TABLE split_table( id int, name varchar(30), primary key(id) ) dbpartition by hash(id); 假设已经建好的逻辑库分片数为 8, 创建分片表, 按照日期进行 hash CREATE TABLE table_date( id int auto_increment, name varchar(30), insert_date datetime not null, primary key(id) ) dbpartition by hash(day(insert_date)); 当拆分算法不指定任何拆分字段时, 系统默认使用主键作为拆分字段 以下示例将介绍如何使用主键 使用主键当拆分键 : CREATE TABLE prmkey_table( id int, name varchar(30), primary key(id) ) dbpartition by hash(); range 分片建表, CREATE TABLE t_range_1( id int, dt datetime, primary key(id) ) 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 3

1 DDM 通用类 dbpartition by range(id) { 0-10000000=0, 10000001-15000000=1, 15000001-19999999=2, 20000000=3, default=7 }; 全局表 子句 BROADCAST 用来指定创建全局表 全局表是指将这个表复制到每个分片上, 在分片上通过同步机制实现数据一致, 有秒级延迟 优势是可以将 JOIN 操作下推到底层的 RDS(MySQL), 来避免跨库 JOIN CREATE TABLE global_table( id int, name varchar(30), primary key(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 BROADCAST; 全局序列 定义 :AUTO_INCREMENT [by db time 步长 ], 默认为 DB 起始值 :AUTO_INCREMENT = 1, 默认为 1 CREATE TABLE tab1 ( col1 INT NOT NULL AUTO_INCREMENT [by db time] 1000, col2 VARCHAR(16), PRIMARY KEY(col1) ) AUTO_INCREMENT = 1 DBPARTITION BY HASH(col1); 其他 MySQL 建表属性 您在建表的同时还可以指定其他的 MySQL 建表属性, 例如 : CREATE TABLE multi_db_multi_tbl( id int, name varchar(30), primary key(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 dbpartition by hash(id); 1.6 如何选择和配置安全组 DDM 实例采用了 VPC 和安全组等网络安全保护措施, 以下内容帮助您正确配置安全组 通过 VPC 内网访问 DDM 实例 DDM 实例的访问和使用, 包括客户端所在 ECS 访问 DDM 实例, 以及 DDM 实例访问其关联的 RDS 实例 除了 ECS DDM 实例 RDS 实例必须处于相同 VPC 之外, 还需要他们的安全组分别配置了正确的规则, 允许网络访问 1. 建议 ECS DDM RDS 配置相同的安全组 安全组创建后, 默认包含同一安全组内网络访问不受限制的规则 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 4

1 DDM 通用类 2. 如果配置了不同安全组, 可参考如下配置方式 : 说明 假设 ECS DDM RDS 分别配置了安全组 :sg-ecs sg-ddm sg-rds 假设 DDM 实例服务端口为 5066,RDS 实例服务端口为 3306 以下规则, 远端可使用安全组, 也可以使用具体的 IP 地址 ECS 所在安全组需要增加图 1-1 中的规则, 以保证客户端能正常访问 DDM 实例 : 图 1-1 ECS 安全组配置 DDM 所在安全组需要增加图 1-2 和图 1-3 中的规则, 以保证能访问 RDS, 且被客户端访问 图 1-2 DDM 安全组入方向配置 图 1-3 DDM 安全组出方向配置 RDS 所在安全组需要增加图 1-4 中的规则, 以保证能被 DDM 访问 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 5

1 DDM 通用类 图 1-4 RDS 安全组配置 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 6

2 DDM 使用类 2 DDM 使用类 2.1 向逻辑表中插入数据时出现报错 问题描述 连接 DDM 逻辑库, 用 source 命令执行.sql 文件向逻辑表中插入 500 万数据时, 出现 MySQL server has gone away 的错误提示信息如下 原因分析 解决方案 DDM 支持大小不超过 16MB 的单条 SQL 语句, 本次插入数据大小为 50MB, 大于最大允许值 16MB 在 console 上修改参数 max_allowed_packet 值 2.2 DDM 如何进行分片 在分布式数据库中, 可以通过分片存储方式, 轻松解决大数据量单表容量达到单机数据库存储上限的瓶颈, 因此创建逻辑库和逻辑表时, 需要根据实际情况确定逻辑表是否进行分片以及按什么规则分 说明 分片存储后, 需要尽量避免跨库 JOIN 操作带来的性能与资源消耗问题 逻辑表是否分片 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 7

2 DDM 使用类 DDM 逻辑表支持全局表 分片表 单表三种类型 用户可以按照数据表的实际使用需求, 选择最合适的逻辑表类型创建 单表只在第一个分片创建表以及存储数据 全局表在每一个分片创建表并且存储全量数据 分片表在每一个分片创建表, 数据按照拆分规则分散存储在分片中 按什么规则分 逻辑表的拆分键选择非常重要 建议按实际业务场景选择拆分键, 不同逻辑表, 如果具有 E-R 关系, 建议选择相同字段做拆分键, 避免跨库 JOIN 操作 在实际使用中, 请结合以下建议评估是否进行分片 : 数据量在 1000 万以下的表, 不建议分片 数据量在 1000 万以上的表, 建议分片 将数据分片存储后, 既能解决单张表容量过大带来的性能瓶颈, 同时提高并发支持 注意要选择合适的拆分键, 提前做好规划 业务读取尽量少用多表 JOIN, 同一个事务避免跨分片 查询条件尽量带上拆分键, 避免全分片表扫描 2.3 DDM 逻辑表支持哪几种类型 DDM 逻辑表支持分片表 全局表 单表和普通表四种类型 分片表 DDM 实例在 RDS 实例上创建多个物理库, 每一个物理库称为分片, 在分片上建立的表, 叫分片表 ( 不包括单表和全局表 ) 数据按照分片规则被分配到不同的分片上, 分片上的数据支持分布式并行计算 全局表 将一些数据量小且更新操作不频繁的数据表, 如字典表 配置表等, 在所有分片上都存储全量数据, 提升 JOIN 效率, 这类表叫全局表 单表 当表数据量不大, 且不需要与分片表进行连接查询时, 可以只在 DDM 的默认分片上建表与存储数据, 这类表称为单表 单表只能通过 MySQL 客户端或者应用程序连接逻辑库创建 普通表 DDM 将未配置 sharding 的表, 以单表的形式存储在其中一个默认分片上 表 2-1 各类型逻辑表创建方法 逻辑库类型逻辑表类型建表方法 拆分分片表通过管理控制台创建 拆分 全局表 拆分 单表 通过 sql 客户端或者应用程序直接发起创建请求, 非拆分 普通表 建表语句兼容 MySQL 的 CREATE TABLE 语法 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 8

2 DDM 使用类 2.4 DDM 实例是否支持跨 VPC 访问 一般情况下, 不同 VPC 间网络不互通, 不在同一 VPC 下的弹性云服务器无法访问 DDM 实例 可以通过创建 VPC 对等连接, 将两个 VPC 的网络打通, 实现跨 VPC 访问 DDM 实例 关于创建和使用 VPC 对等连接 用户通过 VPC 对等访问 DDM 实例时, 除了满足 VPC 对等网跨 VPC 访问的约束之外, 还存在如下约束 : 同 VPC 跨子网互通需求上线之前创建的实例 ( 即 2018 年 5 月 10 日 24:00 前创建的实例 ), 不支持跨 VPC 访问 2.5 如何解决 JDBC 驱动方式连接 DDM 异常问题 MySQL 驱动 ( JDBC) 通过 Loadbalance 方式连接 DDM, 在某些场景下连接切换时会陷入死循环, 最终导致栈溢出 问题定位 1. 查看 APP 日志, 定位异常原因 例如, 从以下日志中分析出异常最终原因为栈溢出 Caused by: java.lang.stackoverflowerror at java.nio.heapbytebuffer.<init>(heapbytebuffer.java:57) at java.nio.bytebuffer.allocate(bytebuffer.java:335) at java.nio.charset.charsetencoder.encode(charsetencoder.java:795) at java.nio.charset.charset.encode(charset.java:843) at com.mysql.jdbc.stringutils.getbytes(stringutils.java:2362) at com.mysql.jdbc.stringutils.getbytes(stringutils.java:2344) at com.mysql.jdbc.stringutils.getbytes(stringutils.java:568) at com.mysql.jdbc.stringutils.getbytes(stringutils.java:626) at com.mysql.jdbc.buffer.writestringnonull(buffer.java:670) at com.mysql.jdbc.mysqlio.sqlquerydirect(mysqlio.java:2636) 2. 分析溢出源 例如, 从以下日志可以分析出, 溢出原因为驱动内部陷入死循环 at com.mysql.jdbc.loadbalancedconnectionproxy.picknewconnection(loadbalancedconnectionproxy.java: 344) at com.mysql.jdbc.loadbalancedautocommitinterceptor.postprocess(loadbalancedautocommitintercepto r.java:104) at com.mysql.jdbc.mysqlio.invokestatementinterceptorspost(mysqlio.java:2885) at com.mysql.jdbc.mysqlio.sqlquerydirect(mysqlio.java:2808) at com.mysql.jdbc.connectionimpl.execsql(connectionimpl.java:2483) at com.mysql.jdbc.connectionimpl.setreadonlyinternal(connectionimpl.java:4961) at com.mysql.jdbc.connectionimpl.setreadonly(connectionimpl.java:4954) at com.mysql.jdbc.multihostconnectionproxy.syncsessionstate(multihostconnectionproxy.java:381) at com.mysql.jdbc.multihostconnectionproxy.syncsessionstate(multihostconnectionproxy.java:366) at com.mysql.jdbc.loadbalancedconnectionproxy.picknewconnection(loadbalancedconnectionproxy.java: 344) 3. 查看使用的 MySQL 版本, 为 5.1.44 查看该版本源代码, 发现获取连接时,LoadBalance 会根据负载均衡策略更新连接, 并将老连接的配置复制给新连接, 在新连接 AutoCommit 为 true, 新连接部 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 9

2 DDM 使用类 分参数和老连接不一致,loadBalanceAutoCommitStatementThreshold 参数没有配置的场景下, 会陷入死循环, 更新连接函数调用同步参数函数, 同步参数又调用更新连接, 最终导致栈溢出 解决方法 在连接 DDM 的 URL 添加 loadbalanceautocommitstatementthreshold=5&retriesalldown=10 参数 // 使用负载均衡的连接示例 //jdbc:mysql:loadbalance://ip1:port1,ip2:port2..ipn:portn/{db_name} String url = "jdbc:mysql:loadbalance://192.168.0.200:5066,192.168.0.201:5066/db_5133? loadbalanceautocommitstatementthreshold=5&retriesalldown=10"; loadbalanceautocommitstatementthreshold: 表示连接上执行多少个语句后会重新选择连接 假设 loadbalanceautocommitstatementthreshold 设为 5, 则当执行 5 个 sql 后 (Queries 或者 updates 等 ), 将会重新选择连接 若为 0 表示 粘性连接, 不重新选择连接 关闭自动提交时 (autocommit=false) 会等待事务完成再考虑是否重新选择连接 2.6 如何选择 JDBC 驱动方式的版本和参数 DDM 暂不支持使用 5.1.46 版本的 JDBC 驱动连接 DDM, 建议您使用以下版本的 JDBC 驱动 :5.1.35-5.1.45 JDBC 驱动下载地址 :https://dev.mysql.com/doc/index-connectors.html JDBC URL 中推荐参数如表 2-2 所示 表 2-2 参数 参数名称参数说明推荐取值 ip:port 连接地址和端口, 用于连接 DDM 在 DDM 管理控制台 DDM 实例管理中查看 连接地址 db_name 连接逻辑库名称 在 DDM 管理控制台, DDM 实例管理 > 逻辑库管理下查看逻辑库名称 loadbalance AutoCommit StatementTh reshold 表示连接上执行多少个语句后会重新选择连接 若取值为 5, 则当执行 5 个 sql 后 (Queries 或者 updates 等 ), 将会重新选择连接 若取值为 0, 则表示 粘性连接, 不重新选择连接 关闭自动提交时 (autocommit=false) 会等待事务完成再考虑是否重新选择连接 5 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 10

2 DDM 使用类 参数名称参数说明推荐取值 loadbalance HostRemoval GracePeriod 设置主机从负载均衡连接中移除的宽限时间 15000 loadbalanceb lacklisttimeo ut 设置服务器在全局黑名单中存留的时间 60000 loadbalancep ingtimeout retriesalldow n connecttime out sockettimeo ut 使用负载均衡连接时, 等待每个负载均衡连接 ping 响应的毫秒数 当所有的连接地址都无法连接时, 轮询重试的最大次数 重试次数达到阈值仍然无法获取有效连接, 将会抛出 SQLException 和数据库服务器建立 socket 连接时的超时 单位 : 毫秒,0 表示永不超时, 适用于 JDK 1.4 及更高版本 socket 操作 ( 读写 ) 超时 单位 : 毫秒, 0 表示永不超时 5000 10 10000 根据业务实际情况合理配置 2.7 DDM 实例的计费模式是否支持按需和包周期互转 DDM 实例的计费模式支持按需和包周期互转 说明只有状态为 运行中 的实例才能进行按需和包周期互转操作 步骤 1 步骤 2 步骤 3 登录 DDM 管理控制台 在导航上选择 数据库 > 分布式数据库中间件, 进入总览页面 单击左侧菜单栏的 DDM 实例管理, 进入 DDM 实例管理 页面 步骤 4 在需要转换计费模式的实例右侧, 选择 更多 > 转按需 / 转包周期 步骤 5 跳转至费用中心界面进行操作 ---- 结束 2.8 使用 mysqldump 从 MySQL 导出数据非常缓慢的原因 mysqldump 客户端的版本和 DDM 所支持的 MySQL 版本不一致, 可能会导致从 MySQL 导出数据非常缓慢 建版本保持一致 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 11

2 DDM 使用类 2.9 导入数据到 DDM 后出现主键重复 问题描述 问题分析 解决方案 数据导入到 DDM 后, 出现主键重复的现象 DDM 全局序列服务实现分布式环境下唯一键 主键等数据的全局唯一性 当向 DDM 导入数据后, 由于记录含有主键 ID, 全局序列无法变更, 新插入数据主键 ID 值大于当前值, 导致主键冲突, 从而出现主键重复的现象 创表时设置自增起始值, 并确保起始值大于导入数据自增键的最大值 2.10 如何进行选择和配置安全组 DDM 实例采用了 VPC 和安全组等网络安全保护措施, 以下内容帮助您正确配置安全组 通过 VPC 内网访问 DDM 实例 DDM 实例的访问和使用, 包括客户端所在 ECS 访问 DDM 实例, 以及 DDM 实例访问其关联的 RDS 实例 除了 ECS DDM 实例 RDS 实例必须处于相同 VPC 之外, 还需要他们的安全组分别配置了正确的规则, 允许网络访问 1. 建议 ECS DDM RDS 配置相同的安全组 安全组创建后, 默认包含同一安全组内网络访问不受限制的规则 2. 如果配置了不同安全组, 可参考如下配置方式 : 说明 假设 ECS DDM RDS 分别配置了安全组 :sg-ecs sg-ddm sg-rds 假设 DDM 实例服务端口为 5066,RDS 实例服务端口为 3306 以下规则, 远端可使用安全组, 也可以使用具体的 IP 地址 ECS 所在安全组需要增加图 2-1 中的规则, 以保证客户端能正常访问 DDM 实例 : 图 2-1 ECS 安全组配置 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 12

2 DDM 使用类 DDM 所在安全组需要增加图 2-2 和图 2-3 中的规则, 以保证能访问 RDS, 且被客户端访问 图 2-2 DDM 安全组入方向配置 图 2-3 DDM 安全组出方向配置 RDS 所在安全组需要增加图 2-4 中的规则, 以保证能被 DDM 访问 图 2-4 RDS 安全组配置 2.11 如何处理创建表失败 问题描述问题分析 在控制台创建表失败, 报错 :DDM.4119 创表语句语法有误 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 13

2 DDM 使用类 解决方案 在控制台删除创建失败的表, 使用正确创表语句重新创建 2.12 如何处理数据面建表失败 问题描述 数据面建表失败, 报错如下 Can't create table 'db.tb'. The server is busy. Please try again later 问题分析解决方案 DDM 与 RDS 的网络通讯不稳定导致的 在控制台重新建表, 并选择覆盖 RDS 已存在的同名表 2.13 如何处理 mysqldump 导出数据报错 问题描述问题分析 使用 mysqldump 导出数据报错 mysqldump 参数选项错误 解决方案 事务模型为最终原子性时, 导入数据前建议先切换事务模型为最大努力提交, 导入完成后再切回最终原子性 ( 适用于小于 2.3.1 的实例版本 ) 使用 mysqldump 导入导出数据时建议带参数 --single-transaction 选项, 该选项在导出数据之前提交 BEGIN SQL 语句, 保证导出时数据库的一致性状态 使用 mysqldump 导出数据建议去掉 order-by-primary 选项 2.14 如何处理数据迁移过程中自增列后报错 : 主键重复 问题描述问题分析 数据迁移过程中, 指定主键为 AUTO_INCREATEMENT 自增列后报错 : 主键重复 迁移的数据主键值大于自增主键的初始值 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 14

2 DDM 使用类 解决方案 重新设置自增主键的初始值为大于当前已有数据的最大值, 执行如下语句 : ALTER SEQUENCE 库名.SEQ 名 START WITH 新初始值 ; 2.15 如何处理配置参数未超时却报错 问题描述 配置 connection_idle_timeout sql_execute_timeout 参数未到超时时间报错如下 java.net.sockettimeoutexception: Read timed out 问题分析解决方案 客户端应用配置 JDBC 超时参数 SocketTimeOut 导致的 建议可将参数 SocketTimeOut 值调整或者去掉, 默认为 0 则不断开连接 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 15

3 SQL 语法类 3 SQL 语法类 3.1 DDM 是否支持 SQL 跨库访问 不支持 SQL 通过带数据库名称的方式跨逻辑库访问 DDM 会自动去除 SQL 中的库名, 比如 select * from dn1.item, 会自动改成 select * from item 3.2 DDM 是否支持分布式 JOIN DDM 支持分布式 JOIN 表设计时, 增加字段冗余 支持跨分片的 JOIN, 主要实现的方式有三种 : 全局表,ER 分片和 ShareJoin DDM 目前禁止多个表的跨库 update 和 delete 3.3 如何进行 SQL 优化 尽量避免使用 LEFT JOIN 或 RIGHT JOIN, 建议使用 INNER 在使用 LEFT 或 RIGHT JOIN 时,ON 会优先执行,WHERE 条件在最后执行, 所以在使用过程中, 条件尽可能在 ON 语句中判断, 减少 WHERE 的执行 尽量少用子查询, 改用 JOIN, 避免大表全表扫描 3.4 DDM 支持哪些 SQL DDM 对 SQL 语法的支持情况请参见 SQL 兼容性和 SQL 语法限制 3.5 DDM 是否支持数据类型强制转换 数据类型转换属于高级用法,DDM 对 SQL 的兼容性会逐步完善, 如有需要请提工单处理 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 16

3 SQL 语法类 3.6 DDM 是否支持外键 操作场景操作步骤 对于分布式数据库中间件, 目前仅单表支持外键, 分片表和全局表不支持外键 步骤 1 步骤 2 步骤 3 关闭外键校验 SET FOREIGN_KEY_CHECKS=0; 创建表 create table tabletext; 开启外键校验 SET FOREIGN_KEY_CHECKS=1; ---- 结束 使用样例 SET FOREIGN_KEY_CHECKS=0; create table t_order_detail ( detail_id int(10) primary key not null, goods_name varchar(13) not null, goods_num int not null, order_id int not null, foreign key(order_id) references t_order(order_id) ); create table t_order ( order_id int not null primary key, order_type tinyint(1), order_user varchar(32) not null ); SET FOREIGN_KEY_CHECKS=1; 3.7 如何处理 INSERT 语句批量插入多条数据时报错 问题描述 问题分析 解决方案 INSERT 语句批量插入多条数据报错 :MySQL server has gone away Lost connection. INSERT 语句批量插入多条, 默认配置 SQL 语句大小 16M, 因超出限制而导致报错 建议拆分为多条 INSERT 语句插入, 或在控制台配置参数管理页面, 修改 max_allowed_packet 参数值, 并重启实例使之生效 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 17

4 RDS 相关类 4 RDS 相关类 4.1 数据库表名是否区分大小写 DDM 和 RDS 的 MySQL 版本默认对数据表名和序列名称不区分大小写,DDM 在导入 RDS 时会将 lower_case_table_names 设置为 1 建议不要修改 RDS 实例中的参数设置,lower_case_table_names 取值固定为 1, 表示不区分大小写, 且以小写的形式保存 4.2 RDS 实例参数配置 (binlog_format) DDM 在导入 RDS 时会将 binlog_format 设置为 row, 表示将 binlog 记录成每一行数据被修改的形式, 包括修改前和修改后的数据 建议不要对该参数进行修改, 否则可能影响您的正常使用 4.3 如何处理所关联的 RDS 实例异常 DDM 针对 RDS 实例异常的处理机制为 : DDM 采用心跳检测机制保持对 RDS 实例的状态监控 DDM 不管理 RDS 实例 当路由分发到故障实例上, 则返回错误, 如果路由没有分发到故障实例, 则 SQL 请求正常返回 因此, 建议购买 RDS 实例类型为主备, 以增强 RDS 实例的高可用性 4.4 DDM 对 RDS 采用哪种检测机制 DDM 采用基于 sql 语句的定时心跳检测机制, 属于业务层检测 当 RDS 只读实例异常时 ( 包括 RDS 重启或者 SQL 执行异常 ),DDM 会自动屏蔽该故障节点, 确保业务不受影响 当 RDS 主备实例节点都异常时,DDM 会自动重试, 待故障恢复后再恢复业务 当 RDS 主备实例或只读实例故障时, 由于 DDM 不会存储业务数据, 所以 DDM 会返回错误信息给应用程序 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 18

4 RDS 相关类 4.5 DDM 控制台显示的 RDS 实例名称 /ID 和 RDS 控制台显示的 RDS 实例名称 /ID 为什么不同 RDS 实例 ID DDM 基于 RDS 的 OpenAPI,RDS 实例名称 /ID 为导入 RDS 时从 RDS 获取的 RDS 实例名称 /ID,DDM 显示的 RDS 实例名称采用 RDS 实例名称加后缀方式命名,RDS 实例名称 /ID 可在 RDS 的 查看监控 中查阅 例如 : RDS 上的实例名称为 "rds-infopq"( 图 4-1), 对应 DDM 上显示的 RDS 实例名称为 rds-infopq_node0 ( 图 4-3) DDM 上显示的 RDS 实例名称 /ID( 图 4-3), 与 RDS 查看监控 中的节点名称 /ID( 图 4-2) 相对应 在 RDS 管理控制台, 左侧导航单击 实例管理, 图 4-1 红框所示即为 RDS 实例 ID 图 4-1 RDS 实例名称 /ID RDS 节点名称 /ID 在 RDS 管理控制台, 在任一实例右操作列选择 更多 > 查看监控, 并在左侧导航选择 关系型数据库 图 4-2 中红框所示即为 RDS 节点名称 /ID 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 19

4 RDS 相关类 图 4-2 RDS 节点名称 /ID DDM 实例名称 /ID DDM 中的 RDS 实例名称 /ID( 图 4-3) 为实例名称所对应的 RDS 节点名称 /ID( 图 4-2) 图 4-3 DDM 实例名称 /ID 4.6 RDS 哪些高危操作会影响 DDM RDS 相关高危操作如表 4-1 所示 表 4-1 RDS 高危操作 操作类别操作操作影响 RDS 控制台操作类 删除 RDS 实例 切换 RDS 主备实例 重启实例 RDS 实例删除后,DDM 关联该 RDS 实例的逻辑库 逻辑表都无法使用 切换主备实例可能造成短时间内的 RDS 服务闪断, 并有可能在主备同步时延过大的情况下, 导致少量数据丢失 RDS 实例主备切换过程中,DDM 将无法进行创建逻辑库 逻辑表 平滑扩容等操作 RDS 实例主备切换后,DDM 中 RDS 实例 ID 不变, 固定为首次导入 RDS 实例时的 RDS 节点 ID 重启过程中,RDS 实例将不可用,DDM 业务将会受影响 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 20

4 RDS 相关类 操作类别操作操作影响 RDS 客户端类 重置密码 修改数据库端口 修改参数组 修改安全组 修改 VPC 恢复 删除 DDM 创建的物理库 删除 DDM 创建的物理账号 删除 DDM 创建的物理表 修改 DDM 创建的物理表名 修改记录 修改白名单 在 RDS 重置 RDS 控制台重置密码后, 需在 DDM 同步重置密码, 否则将导致无法 DDM 和 RDS 无法连接 修改 RDS 数据库端口后,RDS 会自动重启 RDS 实例 ( 如果是主备模式, 重启主实例同时也会重启备实例 ), 如果不在 DDM 同步 RDS 信息会导致 DDM 无法连接 RDS 其中如下参数为固定值, 如果修改, 将会影响 DDM 正常运行 对数据表名和序列名称不区分大小写, lower_case_table_names 固定为 1 扩容场景, 必须将 local_infile 配置为 ON 将导致 DDM 无法连接 RDS DDM 与 RDS 不在同一 VPC 中将导致无法互通 恢复数据可能会破坏数据完整性 删除物理库后, 原数据将会丢失, 新数据将无法写入 删除物理账号后将无法在 DDM 上创建逻辑表 删除物理表后, 将导致 DDM 数据丢失,DDM 后续无法正常使用该逻辑表 将导致 DDM 无法获取该逻辑表的数据, 且后续无法正常使用 如修改全局表记录, 将会影响各分片数据一致性 需要确保 DDM 在 RDS 的白名单内, 否则 DDM 将无法访问 RDS 4.7 导入 RDS 失败提示 DDM.0095 是什么原因 可能是 RDS 的状态不允许设置参数或者重启 RDS, 需要先移除 RDS, 等 RDS 状态为运行中后再导入 4.8 创建逻辑表时提示 RDS 分片上有残留的同名表怎么办 本章节分别描述在控制台和客户端创建逻辑表时提示 RDS 分片上有残留的同名表的处理方法 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 21

4 RDS 相关类 控制台创建表 问题现象 : 在 DDM 管理控制台创建逻辑表时提示,RDS 实例分片中已存在同名数据表 错误码 :DDM.4208 解决方法 : a. 若确认该表并未使用, 可先执行删除, 同时勾选 删除关联 RDS 实例的数据, 再重新创建 b. 若删除时未勾选 删除关联 RDS 实例的数据, 可在重建时勾选 覆盖 RDS 分片上残留的同名表 客户端创建表 问题现象 : 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 22

4 RDS 相关类 通过 MySQL 客户端连接到 DDM 创建分片表或全局表, 返回表已存在的提示, 如下 : mysql> CREATE TABLE test_broadcast_all_01 (id int, name varchar(30), primary key(id)) BROADCAST; ERROR 1005 (HY000): Can't create table 'test_broadcast_all_01'. "A data table with the same name already exists in the shard of the RDS DB instance." 解决方法 : a. 若确认该表并未使用, 可使用 DROP TABLE 语句先删除,DROP TABLE 会删除当前逻辑库所有关联分片上残留的同名表 mysql> drop table test_broadcast_all_01; Query OK, 0 rows affected (2.45 sec) b. 重新创建该表 mysql> CREATE TABLE test_broadcast_all_01 (id int, name varchar(30), primary key(id)) BROADCAST; Query OK, 0 rows affected (3.64 sec) 4.9 如何处理表中存在主键重复的数据 场景一 处理方法 DDM 实例的逻辑表中已存在主键数据类型边界值的记录, 如果插入的数据超过主键数据类型的范围, 表中会出现主键重复的数据 步骤 1 步骤 2 登录华为云管理控制台 在 RDS 的 实例管理 页面, 查找 DDM 实例对应的 RDS 实例, 单击目标 RDS 实例名称, 进入实例的 基本信息 页面 步骤 3 在基本信息页面的左侧导航栏中选择 参数修改 步骤 4 在 参数组 页签搜索 sql_mode, 单击 值 列中的下拉框, 勾选 STRICT_ALL_TABLES 或 STRICT_TRANS_TABLES 方式, 单击 保存 说明 STRICT_ALL_TABLES 和 STRICT_TRANS_TABLES 方式属于严格模式 严格模式控制 MySQL 如何处理非法或丢失的输入值 非法 : 数据类型错误或超出范围 丢失 : 如果某列定义为非空列且没有 DEFAULT 值, 当新插入的行不包含该列时, 该行记录丢失 关于 sql_mode 更多信息, 请参考 Server SQL Modes 图 4-4 修改实例参数 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 23

4 RDS 相关类 步骤 5 在 DDM 实例管理 页面, 重启 DDM 实例 ---- 结束 场景二 DDM 实例的分片表 (hash\range\mod) 联合主键, 如果拆分键数据中有插入 0 和 1 的话, 一定会出现重复主键 1 处理方法 步骤 1 步骤 2 登录华为云管理控制台 在 RDS 的 实例管理 页面, 查找 DDM 实例对应的 RDS 实例, 单击目标 RDS 实例名称, 进入实例的 基本信息 页面 步骤 3 在基本信息页面的左侧导航栏中选择 参数修改 步骤 4 在 参数组 页签搜索 sql_mode, 单击 值 列中的下拉框, 勾选 NO_AUTO_VALUE_ON_ZERO 方式, 单击 保存 图 4-5 修改实例参数 步骤 5 在 DDM 实例管理 页面, 重启 DDM 实例 ---- 结束 4.10 如何通过 show full innodb status 指令查询 RDS 相关信息 通过 MySQL 客户端连接 DDM 实例后, 可直接输入 show full innodb status 指令查询该 DDM 实例所关联的 RDS 实例信息 可查询信息如 : 当前的时间及自上次输出以来经过的时长 可以使用命令 show full innodb status 来查看 master thread 的状态信息 如果有高并发的工作负载, 您需关注 SEMAPHORES 信号量, 它包含了两种数据 : 事件计数器以及可选的当前等待线程的列表, 如果有性能上的瓶颈, 可使用这些信息来找出瓶颈 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 24

4 RDS 相关类 4.11 创建逻辑库报错 :RDS 无法连接错误 问题描述 问题分析 解决方案 在创建逻辑库时, 出现报错信息 :RDS 无法连接 DDM 与 RDS 连接存在问题 在 RDS 导入管理页面进行 RDS 连通性检测 如果连通性检测失败, 请检查 DDM 与 RDS 之间网络 安全组, 保证网络互通 安全组配置可参考如何选择和配置安全组 4.12 如何处理导入且关联 DDM 的 RDS 故障 问题描述 问题分析 解决方案 导入且关联 DDM 的 RDS 故障 RDS 实例相关信息有变化 : 如增删只读实例, 连接地址 / 端口号 / 安全组 / 规格变更, 删除 RDS 实例, 将 RDS 从一个企业项目迁移到另一个企业项目等 在 RDS 导入管理页面同步 RDS 信息才能正常使用 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 25

5 连接管理类 5 连接管理类 5.1 连接 DDM 实例 前提条件操作步骤 DDM 兼容 MySQL 协议, 支持通过 MySQL 客户端进行连接访问 DDM 实例 客户端所在的弹性云服务器必须与 DDM 实例处于相同的虚拟私有云和子网内 步骤 1 步骤 2 步骤 3 步骤 4 登录弹性云服务器 下载并安装 MySQL 客户端 查看并获取目标实例连接信息 连接实例 步骤 5 通过 MySQL 命令使用 DDM 步骤 6 查看详情信息 ---- 结束 5.2 连接 DDM 时密码多次错误被锁定该如何解决 连接 DDM 时, 如果多次输入错误密码, 系统将会自动锁定 20 分钟,DDM 支持在管理控制台手工解除锁定 1. 登录管理控制台 2. 在导航上选择 数据库 > 分布式数据库中间件, 进入总览页面 3. 单击左侧菜单栏的 DDM 实例管理, 进入 DDM 实例管理 页面 4. 单击 DDM 实例名称, 进入实例基本信息页面 5. 在实例基本信息页面, 选择 账号管理 选项卡, 查看账号管理页面 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 26

5 连接管理类 6. 在需要解锁的逻辑库右侧操作栏选择 更多 > 解锁 说明 DDM 实例状态如果处于非运行中将无法解锁 5.3 本地环境是否可以连接 DDM 实例 本地环境不能直接连接 DDM 实例, 以下三种场景可以实现本地环境连接 1. DDM 实例公有云采用虚拟私有云 (VPC) 管理各服务的网络安全, 用户创建的 DDM 实例, 只允许被与实例处于相同虚拟私有云的弹性云服务器访问 2. 用户可以通过网络代理转发的方式, 用一台能与 DDM 实例网络互通的弹性云服务器 (ECS) 做中转, 实现本地环境连接 DDM 实例 3. 用户还可以通过本地与华为云专线打通的方式, 实现本地环境直接连接 DDM 实例 用户通过这种方式连接 DDM 实例需要在安全组出入方向开通 5066 端口 5.4 MySQL 连接 DDM 时出现乱码如何解决 MySQL 连接的编码和实际的编码不一致, 可能导致 DDM 解析时出现乱码 通过 default-character-set=utf8 指定客户端连接的编码即可 如下所示 : mysql -h127.0.0.1 -P5066 -Dbase --default-character-set=utf8 -uddmuser p 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 27

A 修订记录 A 修订记录 发布日期 修订记录 2020-01-21 第十五次正式发布, 本次修改包括 : 如何处理配置参数未超时却报错 导入数据到 DDM 后出现主键重复 如何处理 mysqldump 导出数据报错 如何处理数据面建表失败 如何处理数据迁移过程中自增列后报错 : 主键重复 如何处理 INSERT 语句批量插入多条数据时报错 导入 RDS 失败提示 DDM.0095 是什么原因 创建逻辑库报错 :RDS 无法连接错误 如何处理导入且关联 DDM 的 RDS 故障 2019-12-27 第十四次正式发布, 本次修改包括 : 新增通过 show full innodb status 指令查询 RDS 相关信息 2019-09-09 第十三次正式发布, 本次修改包括 : 优化 FAQ: 本地环境是否可以连接 DDM 实例 新增 FAQ: 导入数据到 DDM 后出现主键重复 2019-05-31 第十二次正式发布, 本次修改包括 : 新增 FAQ:DDM 是否支持外键 新增 FAQ: 如何处理表中存在主键重复的数据 2019-01-30 第十一次正式发布, 本次修改包括 : 新增 FAQ: 创建逻辑表时提示 RDS 分片上有残留的同名表怎么办 2018-12-28 第十次正式发布, 本次修改包括 : 新增 FAQ:DDM 实例的计费模式是否支持按需和包周期互转 新增 FAQ: 导入 RDS 失败提示 DDM.0095 是什么原因 2018-09-17 第九次正式发布, 本次修改包括 : 新增 FAQ:DDM 支持创建逻辑表的方式有哪些 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 28

A 修订记录 发布日期 修订记录 2018-08-13 第八次正式发布, 本次修改包括 : 新增 FAQ: 连接 DDM 时密码多次错误被锁定该如何解决 新增 FAQ:DDM 支持哪些 SQL 新增 FAQ:DDM 是否支持数据类型强制转换 2018-07-22 第七次正式发布, 本次修改包括 : 新增 FAQ: 使用 DDM 事务模型有哪些注意事项 2018-07-06 第六次正式发布, 本次修改包括 : 新增 FAQ: 如何解决 JDBC 驱动方式连接 DDM 异常问题 新增 FAQ: 如何选择 JDBC 驱动方式的版本和参数 2018-06-05 第五次正式发布, 本次修改包括 : 新增 FAQ:MySQL 连接 DDM 时出现乱码如何解决 新增 FAQ:DDM 实例是否支持跨 VPC 访问 新增 FAQ: 数据库表名是否区分大小写 新增 FAQ:DDM 控制台显示的 RDS 实例名称 /ID 和 RDS 控制台显示的 RDS 实例名称 /ID 为什么不同 新增 FAQ:RDS 哪些高危操作会影响 DDM 2018-05-12 第四次正式发布, 本次修改包括 : 新增 FAQ:DDM 监控能力有哪些 2018-02-28 第三次正式发布 本次修改包括 : 新增 FAQ:DDM 是否支持 SQL 跨库访问 2017-11-02 第二次正式发布 本次修改包括 : 新增 FAQ:DDM 自身是否会存储业务数据 新增 FAQ: 本地环境是否可以连接 DDM 实例 新增 FAQ:DDM 提供哪些高可靠保障 新增 FAQ:DDM 如何进行分片 新增 FAQ:DDM 逻辑表支持哪几种类型 新增 FAQ: 如何处理所关联的 RDS 实例异常 新增 FAQ:DDM 对 RDS 采用哪种检测机制 2017-07-29 第一次正式发布 文档版本 14 (2020-03-12) 版权所有 华为技术有限公司 29