You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SonarQube发布质量门禁结果时出现dbo.ce_activity表重复键插入报错

SonarQube 8.8 SQL Server pk_ce_activity主键冲突修复方案

该报错为SonarQube 8.x版本对接SQL Server数据库的已知问题,根因是生成主键的数据库序列值异常回退,导致新生成的主键和ce_activity表中已存在的记录重复。

临时修复(快速恢复流水线)

  • 先停止所有SonarQube服务节点,避免操作过程中有新数据写入
  • 提前全量备份SonarQube对应的SQL Server数据库,防止操作失误导致数据丢失
  • 执行SQL查询获取ce_activity表当前最大主键值:
SELECT MAX(CAST(uuid AS BIGINT)) AS max_id FROM dbo.ce_activity;
  • 执行SQL查询获取当前主键序列的下一个生成值:
SELECT NEXT VALUE FOR dbo.ce_activity_uuid_seq AS current_seq_val;
  • 确认current_seq_val小于max_id后,重置序列起始值为max_id+100(预留缓冲避免短时间内再次冲突):
-- 把<>中的值替换为实际计算出的数值
ALTER SEQUENCE dbo.ce_activity_uuid_seq RESTART WITH <max_id + 100>;
  • 重启SonarQube服务,重新运行失败的Azure DevOps构建任务即可恢复

永久规避方案

  • 优先升级SonarQube至9.9 LTS及以上版本,该版本已彻底修复SQL Server序列同步异常导致主键冲突的问题
  • 若暂时无法升级,修改序列配置禁用缓存,避免SonarQube实例异常重启后序列值回退:
ALTER SEQUENCE dbo.ce_activity_uuid_seq NO CACHE;
  • 每季度例行检查序列值与ce_activity表最大主键的差值,差值小于50时手动重置序列预留缓冲

内容的提问来源于stack exchange,提问作者tcochran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 22:54:03