开发者社区> silencecxq> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

生产系统DRDS建表报sequence已经存在问题

简介:
+关注继续查看

1、 问题描述

客户反馈生产环境系统drds创建表报错sequence已经存在,具体报错如下:

1
但是虽然执行create已经报错,但是表已经有了,并且可以正常的插入数据;

2、 问题排查

排查drds的docker节点tddl log日志发现如下的相关sequence的报错
2
3
报错主要显示还是因为sequence已经存在导致的;
但是经过check table 报错的表状态是ok的,证明表实际上不存在什么问题,可以正常使用;
经过排查后台tddl log日志,由于数据格式的问题插入数据频繁报错,发现端倪,经过咨询客户以及观察sql log日志 ,生产数据录入报错的表数据的频繁插入的;
后台有程序在不断的向amc_match_log 这张表插数据

同客户沟通的结果分析如下:
如果有程序写数据库频率很高 出现这样的报错 就可以解释的通了;
创建表之后,创建序列之前的空档,程序向表中插入数据,drds发现auto_increment字段存在,所以会自动创建序列,此时ddl的创建序列再去创建 就会出错(序列已经存在);
如果是这种场景 在建表的时候指定 if not exist就可以了

然后在测试环境使用如下的命令来模拟频繁插入数据的场景;

for i in {1..1000000};do mysql –h192.168.1.1 –uroot –ppasswd –e”insert into test(name) values(rand());”; done

测试表是test,表结构如下:

create table test(id varchar(100) not null auto_increment,name varchar(100),primary key(id)) engine=InnoDB dbpartition by hash(id) tbpartition by hash(id) tbpartitions 3;

开启两个窗口测试如下:
5
频繁的执行create和drop表的测试操作,来回执行几次就可以复现生产的报错问题;
然后根据研发提供的添加if not exists的create操作进行建表测试,不会复现报错问题;
create TABLE IF NOT EXISTS amc_match_log
6
原因:因为 if not exist会检查sequence是否存在 如果存在 不会再去创建了;

3、问题解决

使用create table if not exists tablename进行建表或者直接忽略报错也可以;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
开发指南—Sequence—使用限制
本文将介绍使用Sequence过程中的注意事项及问题处理的方法。
14 0
开发指南—Sequence—使用限制
本文将介绍使用Sequence过程中的注意事项及问题处理的方法。
8 0
开发指南—Sequence—使用限制
本文将介绍使用Sequence过程中的注意事项及问题处理的方法。
10 0
开发指南—Sequence—使用限制
本文将介绍使用Sequence过程中的注意事项及问题处理的方法。
10 0
开发指南—Sequence—使用限制
本文将介绍使用Sequence过程中的注意事项及问题处理的方法。
17 0
开发指南—Sequence—使用限制
本文将介绍使用Sequence过程中的注意事项及问题处理的方法。
13 0
开发指南—Sequence—使用限制
本文将介绍使用Sequence过程中的注意事项及问题处理的方法。
22 0
开发指南—Sequence—使用限制
本文将介绍使用Sequence过程中的注意事项及问题处理的方法。
16 0
开发指南—Sequence—使用限制
本文将介绍使用Sequence过程中的注意事项及问题处理的方法。
16 0
Java实现Web航空订票系统(servlet+jdbc+jsp+mysql)(下)
Java实现Web航空订票系统(servlet+jdbc+jsp+mysql)
31 0
+关注
silencecxq
一路行走的云上小小牧师
文章
问答
文章排行榜
最热
最新
相关电子书
更多
分布式数据库DRDS全新升级
立即下载
阿里云总监课第五期第六节:研发挑战 - 研发过程中挑战
立即下载
阿里云创新赋能平台万创科技城站
立即下载