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

246 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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/