发表主题 回复主题
  • 661阅读
  • 13回复

DRDS常见问题专用贴

发帖
39
云币
75
— 本帖被 不靠谱贝贝 执行置顶操作(2017-05-17) —
发帖
39
云币
75
只看该作者 沙发  发表于: 04-25
跨分库分布式事务报错
现象: Caused by: java.sql.SQLException: [asdfasdfsdfsd-4][10.10.10.10:3306][db_name]ERR-CODE: [TDDL-4603][ERR_ACCROSS_DB_TRANSACTION] Transaction accross db is not supported in current transaction policy, transaction node is: xxxx_0001_RDS, but this sql execute on: xxxx_0002_RDS. More: [http://middleware.alibaba-inc.com/faq/faqByFaqCode.html?faqCode=TDDL-4603]
  at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1086)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4237)  

内容关键字: 分布式事务 跨分库

解答:这个报错是指你的事务中几个操作跨分库了(DRDS连接按照分库创建,就是xxxx_0001_RDS这种在事务中操作涉及等于大于2个),这样跨几个连接的事务属于分布式事务,有同学说我就一个RDS上,即使跨了几个分库应该也支持单机事务啊,这个在这种情况下没错,但是我们实际上不清楚您什么时候会通过扩容将库分布到不同的RDS实例上,所以严格起见跨库即默认报分布式事务错误

解决方案:
1.只要事务中涉及的这些表分库字段带 等值条件( where db_partition_key = ?),且值都一样,确保落到一个分片
2. 开GTS服务,接受read commit级别的分布式事务(包括存在的一些限制)。

[ 此帖被drds_rd在2017-04-27 09:06重新编辑 ]
发帖
39
云币
75
只看该作者 板凳  发表于: 04-26
DRDS引擎监控的逻辑QPS与物理QPS两项指标是什么意思?
问题:
DRDS引擎监控的逻辑QPS与物理QPS两项指标是什么意思?

关键字:
逻辑QPS 、物理QPS

解答:

首先,介绍以下两个概念:
逻辑SQL: 应用发给DRDS的SQL;
物理SQL: DRDS发给RDS的SQL。

逻辑QPS是从逻辑SQL的维度去统计DRDS每秒处理来自用户的SQL数目;

物理QPS是从物理SQL的维计去统计DRDS每秒发给RDS的SQL数目。

DRDS作为一个支持分库分表的分布式关系型数据库服务,应用发给DRDS的一条逻辑SQL之下,就有可能会对应多条的物理SQL。通过观察一个DB的逻辑QPS与物理QPS之间的差异,有助于发现应用的SQL在DRDS进行的执行情况(如是否带了拆分键、是否含有全表扫描等)。
[ 此帖被drds_rd在2017-04-26 00:22重新编辑 ]
发帖
39
云币
75
只看该作者 地板  发表于: 04-26
DRDS的逻辑RT与物理RT是什么意思?
问题:
DRDS引擎监控的逻辑RT与物理RT两项指标是什么意思?

关键字:
逻辑RT 、物理RT

解答:

首先,介绍以下两个概念:
逻辑SQL: 应用发给DRDS的SQL;
物理SQL: DRDS发给RDS的SQL。

逻辑RT是指执行逻辑SQL的响应时间(ResponseTime), 即从应用给DRDS发送SQL,到DRDS返回查询结果所用的时间,单位是ms;

物理RT是指执行物理SQL的响应时间(ResponseTime), 即从DRDS向RDS发送SQL,到RDS给DRDS返回查询结果所用的时间,单位是ms。

通过对比DRDS的逻辑RT与物理RT,可以分析一下慢SQL到底是慢在DRDS层还是慢在RDS层。

[ 此帖被drds_rd在2017-05-04 10:38重新编辑 ]
发帖
39
云币
75
只看该作者 4楼 发表于: 05-04
DRDS目前是否支持数据的缩容?
问题:
DRDS目前是否支持数据的缩容?

关键字:
缩容

解答:
不支持,目前DRDS控制台不支持用户的数据缩容操作,也不支持工单处理。
[ 此帖被drds_rd在2017-05-04 10:40重新编辑 ]
发帖
39
云币
75
只看该作者 5楼 发表于: 05-04
VPC中的ECS如何访问DRDS?
问题:VPC中的ECS如何访问DRDS?


关键字: VPC


解答:
ECS与DRDS需在同样的网络下,才能访问。因此VPC中的ECS只能访问同一个VPC中的DRDS。因此,您需要将您的DRDS切换到相应的VPC网络下,才能供VPC中的ECS访问。DRDS切换到VPC网络可以在DRDS控制台上自助完成,参考:https://help.aliyun.com/knowledge_detail/52162.html
注意:VPC下的DRDS实例不支持白名单,如果设置了白名单,会导致无法登陆。所以切换前请清空白名单。如果已经切换了VPC,请切回经典网络清空白名单后再切换到VPC。



[ 此帖被drds_rd在2017-05-04 14:44重新编辑 ]
发帖
39
云币
75
只看该作者 6楼 发表于: 05-04
Application was streaming results when the connection failed.

问题:在做大结果集查询或者大数据量的INSERT...SELECT操作时,DRDS报错,Application was streaming results when the connection failed. Consider raising value of 'net_write_timeout' on the server.


关键字: 数据导入 连接断开


解答:请将您的RDS实例的访问模式从高安全模式切换到普通模式。切换方法如图所示:






[ 此帖被drds_rd在2017-05-04 21:01重新编辑 ]
发帖
39
云币
75
只看该作者 7楼 发表于: 05-10
通过DTS从RDS往DRDS导入数据后,DRDS的Seuqence为何没有更新并导致主键冲突?
问题:
通过DTS从RDS往DRDS导入数据后,DRDS的Seuqence为何没有更新?导致应用不填主键自增列会导致主键冲突?

关键字:
数据导入  Seuqence  主键冲突

解答:
用户从RDS 往DRDS导入数据时,通常所有的 insert的SQL因为都是显式指定了主键自增的值, 所以即使数据导入后,也不会触发DRDS自动更新Sequence的取值。所以,当用户的应用尝试insert并且不填写自增列的值时,DRDS这里还是使用老的sequence值,这种情况下,应用需要通过DRDS的sequence的DDL, 手工调整一下DRDS的sequence的值。

解决方案:
用户参考 https://help.aliyun.com/document_detail/51752.html?spm=5176.doc50067.6.600.MjJaTL,使用Sequence 的DDL, 自主调整一下Sequence的最大值。

[ 此帖被drds_rd在2017-05-10 15:28重新编辑 ]
发帖
39
云币
75
只看该作者 8楼 发表于: 05-15
DRDS 是表名大小写不敏感吗?可以修改吗?
问题:DRDS 是表名大小写不敏感吗?可以修改吗?


关键字:表名、大小写敏感


解答:DRDS的表名大小写不敏感,也不可以进行修改。
[ 此帖被drds_rd在2017-05-15 15:40重新编辑 ]
发帖
39
云币
75
只看该作者 9楼 发表于: 05-16
DRDS的拆分键是字符串的时候,值是否大小写敏感?
问题:DRDS的拆分键是字符串的时候,值是否区大小写敏感?

关键字:拆分键、大小写敏感

解答:DRDS的拆分键,在进行路由的哈希计算的时候,是大小写敏感的,但进行数据匹配的时候,取决于字段的定义。

例如:
1.对于同一个拆分键name的不同值"a"与"A",可能路由到不同的分片;
2.假如"a"与"A"恰好哈希值相同,路由到了同一个分片,那么能否根据name="a"匹配到name="A",取决于name字段的collate属性,如果collate大小写不敏感,则能匹配到,如果敏感,则匹配不到。

从这点上我们能得到的一个实践原则是,对于拆分键,数据怎么写入的,需要用同样的值去查,例如写入的是name="a",那么查询的时候也用name="a"去查,而不要用name="A"。




[ 此帖被drds_rd在2017-05-16 16:38重新编辑 ]
发帖
39
云币
75
只看该作者 10楼 发表于: 05-16
DRDS 下如何使用联合主键?
问题:DRDS 下如何使用联合主键?

关键字:拆分键、联合主键

解答:DRDS 中只有包含拆分键的唯一索引能够生效。DRDS 上使用联合主键,如果联合主键中没有包含拆分键,则只能在分表内检查唯一性。

例如:
1. 假设逻辑表表 tb_a 有两张物理分表 tb_a_0 和 tb_a_1
2. 如果联合主键中包含拆分键 sk,则能够维持联合主键的语义(此时等效于直接使用 sk 作为主键)
3. 如果联合主键中没有包含拆分键 sk,则联合主键只能在 tb_a_0 和 tb_a_1 内部保持语义,tb_a_0 和 tb_a_1 之间的数据任然可能重复
4. 以上现象同样适用于唯一键和唯一主键


[ 此帖被drds_rd在2017-05-16 17:18重新编辑 ]
发帖
39
云币
75
只看该作者 11楼 发表于: 05-17
DRDS是否支持跨逻辑库访问?
问题:DRDS是否支持跨逻辑库访问?比如默认连接的是 db1,但执行的 SQL是 SELECT * FROM db2.tab1; 或 SELECT * FROM db1.tab1 JOIN db2.tab2 ON db1.tab1.fk = db2.tab2.id

关键字:跨逻辑库

解答:DRDS 不支持跨逻辑库访问,连接哪个逻辑库就只能访问该逻辑库下的表。

[ 此帖被drds_rd在2017-05-17 16:21重新编辑 ]
发帖
39
云币
75
只看该作者 12楼 发表于: 05-18
如何查看目前DRDS上有哪些连接?(如何查看有哪些机器连接到了DRDS上?)
问题:我想查看目前DRDS上有哪些机器连接了上来,应该怎么做?

关键字:查看连接

解答:在DRDS上执行SHOW CONNECTION指令,即可查看目前DRDS上有哪些连接过来。

注意:目前VPC网络内的DRDS暂时无法获取客户端的正确IP,经典网络内的DRDS可以正确的获取客户端的IP。


[ 此帖被drds_rd在2017-05-18 17:10重新编辑 ]
发帖
39
云币
75
只看该作者 13楼 发表于: 05-22
DRDS怎么开启分布式事务(GTS)
关键字:GTS
DRDS开启分布式事务,GTS,参见一下文章
https://help.aliyun.com/document_detail/48751.html?spm=5176.doc48726.6.556.v53YmX
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 66 - 42 = ?
上一个 下一个