备份及恢复Sonarqube服务数据

基础数据:

源数据机ip:192.*.53

测试机ip:192.*.65

Sonarqube访问地址:http://192.*.65:9000/

账户名:admin 密码:123456

数据库postgres: 版本:PostgreSQL 15.3

一、数据备份

1、查询Sonarqube运行状态

systemctl status sonarqube

2、若为运行状态则关闭

systemctl stop sonarqube

3、执行备份数据库命令

mkdir /home/data

pg_dump -h 127.0.0.1 -p 5432 -U sonarqube -d sonarqube -Fc -f /home/data/sonarqube.dump

4、备份相关配置文件

cp -R /usr/local/sonarqube/conf /home/data/sonarqube_conf

cp -R /usr/local/sonarqube/data /home/data/sonarqube_data

cp -R /usr/local/sonarqube/extensions/plugins /home/data/sonarqube_plugins

5、执行压缩命令

cd /home/data tar -czvf /home/data.tar.gz *

6、准备迁移至新服务器

将/home/data.tar.gz文件下载下来

二、数据恢复

1、将数据data.tar.gz上传至目录/home下

2、在恢复数据之前,确保SonarQube服务没有运行,并且确保PostgreSQL服务是正在运行的

sudo systemctl stop sonarqube sudo systemctl status postgresql-15.service

3、如果服务未运行,启动它

sudo systemctl enable postgresql-15.service

4、解压缩目标文件

mkdir /home/data

tar -xzvf /home/data.tar.gz -C /home/data

5、清除新服务数据

进入数据库

psql -h 127.0.0.1 -p 5432 -U sonarqube -d sonarqube

后执行以下命令:

DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO public;
\q

6、执行恢复数据库命令

pg_restore -h 127.0.0.1 -p 5432 -U sonarqube -d sonarqube /home/data/sonarqube.dmp

命令详解:

pg_restore: 这是PostgreSQL提供的一个命令行工具,用于从由pg_dump产生的归档文件中恢复数据库。它可以恢复整个数据库集群、单个数据库或者数据库中的选定对象。
-h 127.0.0.1: 指定数据库服务器的主机地址。在这个例子中,127.0.0.1代表本地环回地址,意味着数据库服务运行在同一台机器上。
-p 5432: 指定PostgreSQL数据库监听的端口号。默认情况下,PostgreSQL服务在端口5432上监听。
-U sonarqube: 指定连接数据库时使用的用户名。这里使用的是sonarqube用户来连接数据库。
-d sonarqube: 指定要恢复到的数据库名称。这个例子中,数据库名称也是sonarqube,意味着你会在这个已存在的数据库上恢复数据。如果数据库不存在且pg_restore配置允许创建数据库,它可能会尝试创建同名数据库后再恢复数据。
/home/data/sonarqube.dmp: 这是备份文件的路径。pg_restore会读取这个文件,从中恢复数据到指定的数据库。文件扩展名.dmp虽然不常见于PostgreSQL的自定义格式备份(通常为.dump或未指定),但只要该文件确实是使用pg_dump -Fc创建的自定义格式备份,pg_restore就能正确处理。

7、服务相关配置恢复

sudo cp -R /home/data/sonarqube_conf/* /usr/local/sonarqube/conf/

sudo rm -r /usr/local/sonarqube/data/*

sudo cp -R /home/data/sonarqube_data/* /usr/local/sonarqube/data/

sudo rm -r /usr/local/sonarqube/extensions/plugins/*

sudo cp -R /home/data/sonarqube_plugins/* /usr/local/sonarqube/extensions/plugins/

8、修改文件权限

chown -R sonarqube:sonarqube /usr/local/sonarqube/data

chmod -R 750 /usr/local/sonarqube/data

9、删除es7异常停止锁文件

sudo rm -f /usr/local/sonarqube/data/es7/nodes/0/node.lock

10、重启Sonarqube服务

sudo systemctl start sonarqube

11、查看Sonarqube服务运行状态

systemctl status sonarqube

三、问题并解决

问题1:

执行命令   pg_dump -U sonarqube -d sonarqube -Fc -f /home/data/sonarqube.dmp 报错

错误信息:pg_dump: 错误: 连接到套接字"/var/run/postgresql/.s.PGSQL.5432"上的服务器失败:FATAL: Peer authentication failed for user "postgres"

解决方法:更换命令为:

pg_dump -h 127.0.0.1 -p 5432 -U sonarqube -d sonarqube -Fc -f /home/data/sonarqube.dump

问题2:

在操作恢复数据最后一步启动Sonarqube服务时,Elasticsearch在尝试启动时遇到了文件访问权限问题

sonar启动报错日志:

sonar启动报错es日志:

解决方法:

1、修改文件权限

chown -R sonarqube:sonarqube /usr/local/sonarqube/data

chmod -R 750 /usr/local/sonarqube/data

2、删除es7异常停止锁文件

sudo rm -f /usr/local/sonarqube/data/es7/nodes/0/node.lock

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值