V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
thinkershare
V2EX  ›  问与答

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

  •  
  •   thinkershare · 2023-07-25 11:15:13 +08:00 · 450 次点击
    这是一个创建于 486 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    jenlors
        1
    jenlors  
       2023-07-25 11:17:22 +08:00
    索引损坏吧,试试重建索引之类的,猜测跟磁盘或者断电之类的有关
    opengps
        2
    opengps  
       2023-07-25 11:43:29 +08:00
    切换期间,取消了主键,然后有写入,然后想重新设置主键报错了吧
    thinkershare
        3
    thinkershare  
    OP
       2023-07-25 12:15:24 +08:00
    @opengps 切换存储引擎期间数据库是停止对外服务的,不存在插入情况,主要是现场数据库是外网不可访问的那种。也没法直接上去看,只能先将数据库和日志备份到本地了。
    thinkershare
        4
    thinkershare  
    OP
       2023-07-25 12:16:08 +08:00
    @jenlors 我也怀疑是磁盘损坏,断电是不可能的,现场有 UPS ,服务器机房。
    thinkershare
        5
    thinkershare  
    OP
       2023-07-25 13:00:33 +08:00
    结帖: 现场人员导出数据库的时候没有停机,导致既有新数据插入又在备份,备份的时候没有锁定表,导致导出的 sql 文件中的行重复出现。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2725 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 12:32 · PVG 20:32 · LAX 04:32 · JFK 07:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.