Files
gerrit/Gerrit升级指南.md
2025-12-22 17:12:39 +08:00

5.2 KiB
Raw Blame History

Gerrit 升级指南

概述

本指南说明如何将 Gerrit 升级到最新版本3.13.1),并使用 JDK 17 运行。

当前状态

  • JDK 17 已安装: /usr/local/java/jdk-17.0.12+7
  • 当前 Gerrit 版本: 3.3.8 或 3.9.0
  • 🎯 目标版本: 3.13.1(支持 JDK 17

升级步骤

方法一:使用升级脚本(推荐)

cd /home/renjianbo/gerrit
./upgrade_gerrit.sh

升级脚本会自动:

  1. 验证 JDK 17 安装
  2. 停止现有 Gerrit 服务
  3. 备份所有数据Git 仓库、数据库、配置、插件)
  4. 下载 Gerrit 3.13.1
  5. 升级 Gerrit保留现有数据
  6. 配置 Gerrit 使用 JDK 17
  7. 启动服务

方法二:手动升级

1. 停止 Gerrit 服务

cd /home/renjianbo/gerrit_install/review_site
bin/gerrit.sh stop

2. 备份数据

cd /home/renjianbo/gerrit_install
BACKUP_DIR="backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p $BACKUP_DIR

# 备份 Git 仓库
cp -r review_site/git $BACKUP_DIR/ 2>/dev/null || true

# 备份数据库
cp -r review_site/db $BACKUP_DIR/ 2>/dev/null || true

# 备份配置
cp -r review_site/etc $BACKUP_DIR/ 2>/dev/null || true

# 备份插件
cp -r review_site/plugins $BACKUP_DIR/ 2>/dev/null || true

3. 下载新版本

cd /home/renjianbo/gerrit_install
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.13.1.war

4. 设置 JDK 17

export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
export PATH=$JAVA_HOME/bin:$PATH

# 验证
java -version

5. 升级 Gerrit

cd /home/renjianbo/gerrit_install
java -jar gerrit-3.13.1.war init \
    -d review_site \
    --batch \
    --no-auto-start \
    --install-plugin=download-commands \
    --install-plugin=replication \
    --install-plugin=reviewnotes

6. 配置使用 JDK 17 启动

编辑 review_site/bin/gerrit.sh,在文件开头添加:

export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
export PATH=$JAVA_HOME/bin:$PATH

7. 启动服务

cd /home/renjianbo/gerrit_install/review_site
bin/gerrit.sh start

8. 验证升级

# 检查服务状态
bin/gerrit.sh status

# 查看日志
tail -f logs/error_log

# 访问 Web 界面
# http://101.43.95.130:8080

版本兼容性

Gerrit 版本 最低 JDK 要求 推荐 JDK
3.3.x JDK 11 JDK 11
3.9.x JDK 17 JDK 17
3.13.x JDK 17 JDK 17

升级后验证

1. 检查版本

访问 Gerrit Web 界面,在页面底部查看版本号,应该显示 3.13.1

2. 检查 Java 版本

cd /home/renjianbo/gerrit_install/review_site
ps aux | grep gerrit | grep java

应该看到进程使用 JDK 17。

3. 测试功能

  • 登录 Web 界面
  • 查看项目列表
  • 创建/查看变更
  • SSH 连接测试

回滚(如果需要)

如果升级后出现问题,可以回滚到之前的版本:

# 1. 停止服务
cd /home/renjianbo/gerrit_install/review_site
bin/gerrit.sh stop

# 2. 恢复备份
cd /home/renjianbo/gerrit_install
BACKUP_DIR="backup_YYYYMMDD_HHMMSS"  # 替换为实际的备份目录名

# 恢复 Git 仓库
rm -rf review_site/git
cp -r $BACKUP_DIR/git review_site/

# 恢复数据库
rm -rf review_site/db
cp -r $BACKUP_DIR/db review_site/

# 恢复配置
rm -rf review_site/etc
cp -r $BACKUP_DIR/etc review_site/

# 恢复插件
rm -rf review_site/plugins
cp -r $BACKUP_DIR/plugins review_site/ 2>/dev/null || true

# 3. 使用旧版本 war 文件重新初始化
# (使用之前下载的 gerrit-3.3.8.war 或 gerrit-3.9.0.war

# 4. 启动服务
cd review_site
bin/gerrit.sh start

常见问题

Q: 升级后服务无法启动?

A: 检查日志文件:

tail -f /home/renjianbo/gerrit_install/review_site/logs/error_log

常见原因:

  • JDK 版本不匹配
  • 端口被占用
  • 配置文件错误

Q: 升级后数据丢失?

A: 检查备份目录:

ls -la /home/renjianbo/gerrit_install/backup_*

可以从备份目录恢复数据。

Q: 如何确认使用的是 JDK 17

A: 运行以下命令:

cd /home/renjianbo/gerrit_install/review_site
ps aux | grep gerrit | grep -o '/[^ ]*java[^ ]*' | head -1 | xargs -I {} {} -version

Q: 升级需要多长时间?

A: 通常需要 2-5 分钟,取决于:

  • 网络速度(下载新版本)
  • 数据量大小(备份和升级)
  • 服务器性能

注意事项

  1. ⚠️ 备份重要:升级前务必备份所有数据
  2. ⚠️ 停机时间:升级过程中服务会停止,建议在维护窗口进行
  3. ⚠️ 测试环境:建议先在测试环境验证升级流程
  4. ⚠️ 插件兼容性:某些插件可能需要更新以支持新版本
  5. ⚠️ 配置检查:升级后检查配置文件,确保所有设置正确

相关文件

  • 升级脚本: /home/renjianbo/gerrit/upgrade_gerrit.sh
  • 安装脚本: /home/renjianbo/gerrit/install_gerrit.sh
  • 重新安装脚本: /home/renjianbo/gerrit/reinstall_gerrit.sh
  • Gerrit 目录: /home/renjianbo/gerrit_install/

技术支持

如果遇到问题,可以:

  1. 查看日志文件
  2. 检查备份数据
  3. 参考 Gerrit 官方文档: https://www.gerritcodereview.com/