Files
gerrit/Gerrit升级指南.md

246 lines
5.2 KiB
Markdown
Raw Normal View History

2025-12-22 17:12:39 +08:00
# 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
## 升级步骤
### 方法一:使用升级脚本(推荐)
```bash
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 服务
```bash
cd /home/renjianbo/gerrit_install/review_site
bin/gerrit.sh stop
```
#### 2. 备份数据
```bash
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. 下载新版本
```bash
cd /home/renjianbo/gerrit_install
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.13.1.war
```
#### 4. 设置 JDK 17
```bash
export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
export PATH=$JAVA_HOME/bin:$PATH
# 验证
java -version
```
#### 5. 升级 Gerrit
```bash
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`,在文件开头添加:
```bash
export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
export PATH=$JAVA_HOME/bin:$PATH
```
#### 7. 启动服务
```bash
cd /home/renjianbo/gerrit_install/review_site
bin/gerrit.sh start
```
#### 8. 验证升级
```bash
# 检查服务状态
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 版本
```bash
cd /home/renjianbo/gerrit_install/review_site
ps aux | grep gerrit | grep java
```
应该看到进程使用 JDK 17。
### 3. 测试功能
- ✅ 登录 Web 界面
- ✅ 查看项目列表
- ✅ 创建/查看变更
- ✅ SSH 连接测试
## 回滚(如果需要)
如果升级后出现问题,可以回滚到之前的版本:
```bash
# 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:** 检查日志文件:
```bash
tail -f /home/renjianbo/gerrit_install/review_site/logs/error_log
```
常见原因:
- JDK 版本不匹配
- 端口被占用
- 配置文件错误
### Q: 升级后数据丢失?
**A:** 检查备份目录:
```bash
ls -la /home/renjianbo/gerrit_install/backup_*
```
可以从备份目录恢复数据。
### Q: 如何确认使用的是 JDK 17
**A:** 运行以下命令:
```bash
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/