迁移 Ubuntu 16.04 上的 Gerrit 到新系统需要完整迁移其配置文件、数据仓库、数据库和安装环境

迁移流程(无损操作)


第一步:旧系统备份准备 (在源服务器操作)
# 1. 查找 Gerrit 安装目录和配置文件
sudo find / -path '*gerrit*' -name gerrit.config 2>/dev/null
# 示例输出:/home/gerrit/review_site/etc/gerrit.config

# 2. 停止 Gerrit 服务
sudo service gerrit stop

# 3. 备份关键数据(假设安装目录为 /home/gerrit)
sudo tar -czvf gerrit_backup_full.tar.gz \
    --exclude="*/cache/*" \
    /home/gerrit \
    /etc/gerrit \
    /var/log/gerrit \
    /etc/init.d/gerrit \
    /etc/default/gerritcodereview

# 4. 备份数据库(根据实际类型)
# MySQL 备份(如果使用MySQL)
sudo mysqldump -u root -p gerrit_db > gerrit_db.sql
# 或 PostgreSQL
sudo -u postgres pg_dump gerrit_db > gerrit_db.sql

# 5. 打包所有备份
sudo tar -cvf final_backup.tar.gz gerrit_backup_full.tar.gz gerrit_db.sql

第二步:数据迁移到新系统
# 方法1:SCP 传输
scp -r final_backup.tar.gz user@new-server-ip:~

# 方法2:使用外部硬盘
# 将 final_backup.tar.gz 复制到U盘

第三步:新系统恢复 (目标服务器)
# 1. 安装相同版本 Java (Gerrit 2.x 需 Java 8)
sudo apt update
sudo apt install openjdk-8-jdk -y

# 2. 恢复目录结构
sudo tar -xvf final_backup.tar.gz
sudo tar -xzvf gerrit_backup_full.tar.gz -C /

# 3. 恢复数据库
# MySQL
sudo mysql -u root -p -e "CREATE DATABASE gerrit_db"
sudo mysql -u root -p gerrit_db < gerrit_db.sql

# PostgreSQL
sudo -u postgres psql -c "CREATE DATABASE gerrit_db"
sudo -u postgres psql -d gerrit_db -f gerrit_db.sql

# 4. 安装 Gerrit(版本必须与旧系统一致)
# 获取旧版本号(在源服务器查)
# java -jar /path/to/gerrit.war --version
wget https://gerrit-releases.storage.googleapis.com/gerrit-<version>.war
sudo java -jar gerrit-<version>.war init --batch -d /home/gerrit/review_site

# 5. 恢复配置文件
sudo cp -r /etc/gerrit/* /home/gerrit/review_site/etc/
sudo chown -R gerrit:gerrit /home/gerrit

# 6. 修正启动脚本权限
sudo chmod +x /etc/init.d/gerrit
sudo update-rc.d gerrit defaults

第四步:系统适配与启动
# 1. 修改 gerrit.config (如新IP地址)
sudo nano /home/gerrit/review_site/etc/gerrit.config
# 更新:
#   [gerrit] 
#     baseUrl = http://新服务器IP:8080
#   [auth] 
#     gitBasicAuth = true

# 2. 重建索引(关键步骤)
cd /home/gerrit/review_site
sudo -u gerrit java -jar bin/gerrit.war reindex

# 3. 启动服务
sudo service gerrit start

# 4. 验证状态
tail -f /home/gerrit/review_site/logs/error_log

关键配置修复

  1. SSH 密钥修复
# 复制旧系统的SSH密钥到相同位置
sudo cp /backup/home/gerrit/review_site/etc/ssh_host_* /home/gerrit/review_site/etc/
sudo chown gerrit:gerrit /home/gerrit/review_site/etc/ssh_host_*
  1. 邮箱配置修复
# 检查邮件设置(如 sendemail)
sudo nano /home/gerrit/review_site/etc/gerrit.config
# [sendemail]
#   smtpServer = smtp.youremail.com
#   smtpUser = your@email.com
  1. 防火墙开放端口
sudo ufw allow 8080/tcp   # HTTP
sudo ufw allow 29418/tcp  # SSH

验证迁移成功

  1. 访问 http://新服务器IP:8080
  2. 测试代码仓库克隆:
    git clone "ssh://用户@新服务器IP:29418/项目名"
    
  3. 执行管理员操作验证权限系统

⚠️ 灾难恢复提示:迁移前务必备份整个 /home/gerrit 和数据库。若遇启动失败,在 gerrit 用户下运行:

cd /home/gerrit/review_site
bin/gerrit.sh --console-log restart

通过此流程,可确保 Gerrit 的所有配置、仓库数据和用户权限完整迁移,无需重新配置系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值