什么情况下 mysql 数据库的主键列(自增/唯一列)会出现重复的键值?

2023-07-25 11:15:13 +08:00
 thinkershare

今天早上到公司,节点项目现场发回的一个数据库备份,项目现场的人说这个库遇到了一些奇怪的问题,让我还原后找找原因,我尝试将数据导入到本地,竟然发现在一个历史表中,存在大量主键重复。此数据表曾经切换过存储引擎。

446 次点击
所在节点    问与答
5 条回复
jenlors
2023-07-25 11:17:22 +08:00
索引损坏吧,试试重建索引之类的,猜测跟磁盘或者断电之类的有关
opengps
2023-07-25 11:43:29 +08:00
切换期间,取消了主键,然后有写入,然后想重新设置主键报错了吧
thinkershare
2023-07-25 12:15:24 +08:00
@opengps 切换存储引擎期间数据库是停止对外服务的,不存在插入情况,主要是现场数据库是外网不可访问的那种。也没法直接上去看,只能先将数据库和日志备份到本地了。
thinkershare
2023-07-25 12:16:08 +08:00
@jenlors 我也怀疑是磁盘损坏,断电是不可能的,现场有 UPS ,服务器机房。
thinkershare
2023-07-25 13:00:33 +08:00
结帖: 现场人员导出数据库的时候没有停机,导致既有新数据插入又在备份,备份的时候没有锁定表,导致导出的 sql 文件中的行重复出现。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/959477

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX