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

升级SonarQube至官方Helm Chart时如何保留原有数据库数据?

关于SonarQube Helm Chart迁移的数据安全问题

直接执行给定命令会导致数据丢失吗?

会。你之前使用的是oteemo第三方Chart,现在要替换为SonarSource官方Chart,两者的资源定义(比如存储卷、数据库配置)结构差异极大。直接执行helm upgrade --install会让Helm尝试用新Chart的资源替换旧资源,大概率会导致旧的PersistentVolumeClaim(PVC)被删除,或者新实例无法访问原有数据,最终丢失SonarQube的历史分析数据、配置等核心内容。

保留数据的迁移步骤

1. 先备份现有数据

根据你使用的数据库类型选择对应操作:

  • 内置H2数据库:
    1. 查找旧SonarQube的Pod名称:kubectl get pods -n sonarqube
    2. 将Pod内的数据库目录复制到本地备份:kubectl cp sonarqube/<旧Pod名称>:/opt/sonarqube/data ./sonar-backup
  • 外部数据库(如PostgreSQL):
    使用对应数据库的备份工具导出全量数据,比如PostgreSQL用pg_dump命令完成备份。

2. 卸载旧Helm Release,但保留关键存储资源

不要直接用helm uninstall删除所有资源,按以下步骤操作:

  1. 查看旧Release创建的PVC:kubectl get pvc -n sonarqube,记录下PVC的名称(通常类似sonarqube-sonarqube)
  2. 卸载旧Release,同时保留PVC等存储资源:helm uninstall -n sonarqube sonarqube --keep-resources
    若该参数不生效,可先卸载Release,再手动标记PVC为保留:kubectl annotate pvc <PVC名称> helm.sh/resource-policy=keep -n sonarqube

3. 部署官方Chart并恢复数据

根据数据库类型操作:

  • 外部数据库:
    部署时指定连接原有外部数据库的参数,覆盖官方Chart的默认配置:

    helm upgrade --install -n sonarqube sonarqube sonarqube/sonarqube \
      --set jdbc.url="jdbc:postgresql://<外部数据库地址>:5432/sonarqube" \
      --set jdbc.username="<数据库用户名>" \
      --set jdbc.password="<数据库密码>"
    

    实例启动后会自动读取原有外部数据库的数据。

  • 内置H2数据库:
    方式一:复用旧PVC
    直接指定新Chart使用之前保留的旧PVC:

    helm upgrade --install -n sonarqube sonarqube sonarqube/sonarqube \
      --set persistence.existingClaim="<旧PVC名称>"
    

    方式二:恢复本地备份数据

    1. 临时部署Chart并禁用实例启动(避免初始化新数据):
      helm upgrade --install -n sonarqube sonarqube sonarqube/sonarqube \
        --set sonar.web.javaOpts="-Dsonar.web.dryRun=true"
      
    2. 找到新Pod名称:kubectl get pods -n sonarqube
    3. 将本地备份的目录复制到新Pod对应路径:
      kubectl cp ./sonar-backup sonarqube/<新Pod名称>:/opt/sonarqube/
      
    4. 重新升级Chart,移除dryRun参数让实例正常启动:
      helm upgrade -n sonarqube sonarqube sonarqube/sonarqube \
        --reuse-values
      

4. 验证数据完整性

新实例启动后,登录SonarQube控制台,检查项目历史、质量规则配置、用户信息等数据是否完整,确认迁移成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:51:13