术语 | 描述 |
---|---|
PG | PostgreSQL 数据库,由 SonarQube 用于存储核心数据 |
ES | Elasticsearch 搜索引擎,由 SonarQube 用于搜索 |
本文档适用于 SonarQube 9.9.5 及以上版本。
本文档已针对 SonarQube 9.9.5 进行了验证。虽然理论上这些程序应适用于版本 25.1.0,但尚未在该版本中进行实际验证。如果您使用 SonarQube 25.1.0,请先在非生产环境中进行测试。
SonarQube 数据主要由两部分组成:
由于 Elasticsearch 数据可以通过数据库重新生成,因此我们只需备份 PostgreSQL 数据库以确保数据安全。
根据您使用的 PostgreSQL 数据库类型,有两种备份方法:
如果您使用平台提供的 PostgreSQL 实例,可以直接使用平台的备份功能:
备份与恢复
标签平台 PG 实例支持自动备份,可以在备份配置过程中启用。具体操作方法,请参阅 Platform PG Backup and Recovery 文档。
完成备份配置后,您可以:
创建备份
进行即时备份如果使用自建数据库,您需要使用 pg_dump
工具进行备份。以下是基本的操作步骤:
参数说明:
参数 | 描述 |
---|---|
-U postgres | 数据库用户名 |
-h 127.0.0.1 | 数据库地址 |
-p 5432 | 数据库端口 |
-d sonar | 数据库名称 |
-f sonar.dump | 备份文件名 |
提示:您可以使用 crontab
来实现自动定时备份。
数据恢复需要两个步骤:
重要提示:建议创建一个新的 SonarQube 实例,而不是修改原始实例的数据库配置,这可以避免因操作失误导致数据丢失。
备份与恢复
标签数据库恢复
向导完成恢复注意:恢复操作将创建一个新的数据库实例。
自建 PG 实例需要自己完成恢复操作。以下恢复命令仅供参考:
命令参数说明:
参数 | 描述 |
---|---|
-U postgres | 数据库用户名 |
-h 127.0.0.1 | 数据库地址 |
-p 5432 | 数据库端口 |
-d sonar_new | 新数据库名称 |
-f sonar.dump | 备份文件名 |
如果可以看到数据表的列表,则恢复成功:
请参考 SonarQube 部署文档以创建新的 SonarQube 实例。
请注意以下关键点:
有关配置数据库访问凭据的方法,请参阅 SonarQube 部署文档。