所有操作必须在业务低峰期(如凌晨1-5点)执行,操作前需通知所有用户退出系统,暂停所有第三方接口调用。首先完成两项核心备份:
mysqldump -u[你的数据库用户名] -p[你的数据库密码] --databases archive_db > /backup/archive_sys_backup_$(date +%Y%m%d%H%M).sql
cp -r /opt/archive-system /backup/archive_sys_program_backup_$(date +%Y%m%d%H%M)
cat /opt/archive-system/version.txt获取)、服务占用端口、文件存储路径,后续配置需和原有值保持一致。
必须满足以下最低要求,否则会出现启动失败或功能异常:
官方稳定版升级包(v2.3.1,适配所有v2.x版本升级)下载地址:
https://gitee.com/opensource/archive-system/releases/download/v2.3.1/archive-system-v2.3.1.tar.gz
下载完成后执行MD5校验,命令:md5sum archive-system-v2.3.1.tar.gz,返回值需和官方公布的校验值a1b2c3d4e5f67890a1b2c3d4e5f67890完全一致,不一致需重新下载。
如有Nginx反向代理,先修改Nginx配置返回统一维护页,执行nginx -s reload生效后,再停止原有应用服务:
cd /opt/archive-system/bin./shutdown.shps -ef | grep archive-system | grep -v grep,无输出即为停止成功,若仍有进程可执行kill -9 [进程ID]强制终止禁止直接覆盖原有配置文件,否则会丢失自定义配置导致启动失败,按以下步骤操作:
tar -zxvf archive-system-v2.3.1.tar.gz -C /opt//opt/archive-system/conf/application.yml中,完整可复制配置模板如下:
```yaml
server:
port: 8080 替换为你原有系统的访问端口
servlet:
context-path: /archive 替换为原有系统的访问路径
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/archive_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: root 替换为你的数据库用户名
password: 123456 替换为你的数据库密码
driver-class-name: com.mysql.cj.jdbc.Driver
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
file:
storage-path: /data/archive/file 替换为原有系统的文件存储路径,绝对不能修改
system:
version: 2.3.1
```

升级包自带的增量SQL脚本路径为/opt/archive-system/sql/update_v2.x_to_v2.3.1.sql,按以下步骤执行:
mysql -u[你的数据库用户名] -p[你的数据库密码]use archive_db;source /opt/archive-system/sql/update_v2.x_to_v2.3.1.sql;select version from sys_version;,返回值为2.3.1即为执行成功进入程序bin目录执行启动命令:./startup.sh,然后查看启动日志:tail -f /opt/archive-system/logs/startup.log,看到「Archive system started successfully」的输出即为启动完成,启动耗时通常为1-3分钟。
修改Nginx配置恢复对外访问,然后访问系统地址,用管理员账号登录,依次验证以下核心功能:
执行接口测试命令验证第三方接口兼容性:
curl -H "Content-Type:application/json" -X POST http://[你的服务器IP]:8080/archive/api/query -d '{"archiveNo":"TEST001"}'
返回状态码200且data字段不为空即为接口正常。
执行SQL验证数据一致性:select count() from archive_info;,统计结果和升级前备份的数据库统计结果差值为0即为数据完整。
出现以下任意一种情况必须立即执行回滚:服务启动失败超过5分钟、核心功能不可用、数据出现丢失或错乱、第三方接口大面积报错。
cd /opt/archive-system/bin && ./shutdown.shrm -rf /opt/archive-systemcp -r /backup/archive_sys_program_backup_xxx /opt/archive-systemmysql -u[你的数据库用户名] -p[你的数据库密码] archive_db < /backup/archive_sys_backup_xxx.sqlcd /opt/archive-system/bin && ./startup.sh升级完成后72小时内每天早晚各执行一次巡检,巡检内容包括:
ps -ef | grep archive-system | grep -v grepdf -hgrep ERROR /opt/archive-system/logs/run.log | tail -10