重要:
- 回滚前建议给整个机器打快照,进行备份,以防回滚之后出现不可预估的无法恢复的情况
- 数据库备份
- 备份 /opt/dataease 目录下所有内容
- 建议技术人员操作,防止误操作
回退版本操作,需要根据自己实际情况修改部分命令:
1 备份数据库 {#1-%E5%A4%87%E4%BB%BD%E6%95%B0%E6%8D%AE%E5%BA%93}
#进入 MySQL 容器
docker exec mysql -it bash
#备份 DataEase 数据库
mysqldump -u root -pPassword -R dataease > dataease20221010_V1.5.sql
2 从容器里将备份数据库备份到服务器中 {#2-%E4%BB%8E%E5%AE%B9%E5%99%A8%E9%87%8C%E5%B0%86%E5%A4%87%E4%BB%BD%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E4%BB%BD%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%AD}
2.1 查看 MySQL 容器 ID {#2.1-%E6%9F%A5%E7%9C%8B-mysql-%E5%AE%B9%E5%99%A8-id}
docker ps
2.2 从容器里将备份数据库备份到服务器中( 211712695ac3 为容器 id ) {#2.2-%E4%BB%8E%E5%AE%B9%E5%99%A8%E9%87%8C%E5%B0%86%E5%A4%87%E4%BB%BD%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E4%BB%BD%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%AD%EF%BC%88-211712695ac3-%E4%B8%BA%E5%AE%B9%E5%99%A8-id-%EF%BC%89}
docker cp 211712695ac3:/dataease20221010_V1.5.sql /dataease20221010_V1.5.sql
3 停止服务 {#3-%E5%81%9C%E6%AD%A2%E6%9C%8D%E5%8A%A1}
dectl stop
4 备份 15 版本的 /opt/dataease 目录 {#4-%E5%A4%87%E4%BB%BD-15-%E7%89%88%E6%9C%AC%E7%9A%84-%2Fopt%2Fdataease-%E7%9B%AE%E5%BD%95}
cp -rf dataease bakV1.15_dataease
5 恢复 14 版本备份的 /opt/dataease 目录内容 {#5-%E6%81%A2%E5%A4%8D-14-%E7%89%88%E6%9C%AC%E5%A4%87%E4%BB%BD%E7%9A%84-%2Fopt%2Fdataease-%E7%9B%AE%E5%BD%95%E5%86%85%E5%AE%B9}
mv bakV1.4_dataease/ dataease
6 恢复 MySQL 数据库 V1.4 版本的备份文件 {#6-%E6%81%A2%E5%A4%8D-mysql-%E6%95%B0%E6%8D%AE%E5%BA%93-v1.4-%E7%89%88%E6%9C%AC%E7%9A%84%E5%A4%87%E4%BB%BD%E6%96%87%E4%BB%B6}
#进入 MySQL 容器
docker exec mysql -it bash
#恢复 1.4 版本备份的数据库
mysql --uroot -pPassword123@mysql -Ddataease < dataease20221010_V1.4.sql
7 查看下载的离线安装包中的镜像,对比镜像与当前回滚镜像版本的差别 {#7-%E6%9F%A5%E7%9C%8B%E4%B8%8B%E8%BD%BD%E7%9A%84%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85%E5%8C%85%E4%B8%AD%E7%9A%84%E9%95%9C%E5%83%8F%EF%BC%8C%E5%AF%B9%E6%AF%94%E9%95%9C%E5%83%8F%E4%B8%8E%E5%BD%93%E5%89%8D%E5%9B%9E%E6%BB%9A%E9%95%9C%E5%83%8F%E7%89%88%E6%9C%AC%E7%9A%84%E5%B7%AE%E5%88%AB}
#进入下载的待回滚的安装包的镜像目录下
cd /tmp/dataease-v1.14.0-offline/images
#查看文件
ll
#查看当前已有的镜像文件
docker images
8 根据回退版本解压镜像 {#8-%E6%A0%B9%E6%8D%AE%E5%9B%9E%E9%80%80%E7%89%88%E6%9C%AC%E8%A7%A3%E5%8E%8B%E9%95%9C%E5%83%8F}
找出不一样的镜像包,进行解压,这里一般只有 dataease 服务镜像有差别,所以以 dataease 服务镜像回退为例
8.1 有 1.14 版本的镜像,直接解压 1.14 版本的 dataease 服务镜像 {#8.1-%E6%9C%89-1.14-%E7%89%88%E6%9C%AC%E7%9A%84%E9%95%9C%E5%83%8F%EF%BC%8C%E7%9B%B4%E6%8E%A5%E8%A7%A3%E5%8E%8B-1.14-%E7%89%88%E6%9C%AC%E7%9A%84-dataease-%E6%9C%8D%E5%8A%A1%E9%95%9C%E5%83%8F}
#解压回滚版本的镜像
docker load -i dataease:v1.14.0.tar.gz
8.2 无 1.14 版本的镜像,去官网下载需要回退的版本的安装包,上传到服务器并解压 {#8.2-%E6%97%A0-1.14-%E7%89%88%E6%9C%AC%E7%9A%84%E9%95%9C%E5%83%8F%EF%BC%8C%E5%8E%BB%E5%AE%98%E7%BD%91%E4%B8%8B%E8%BD%BD%E9%9C%80%E8%A6%81%E5%9B%9E%E9%80%80%E7%9A%84%E7%89%88%E6%9C%AC%E7%9A%84%E5%AE%89%E8%A3%85%E5%8C%85%EF%BC%8C%E4%B8%8A%E4%BC%A0%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%B9%B6%E8%A7%A3%E5%8E%8B}
cd /tmp
tar zxvf dataease-v1.14.0-offline.tar.gz
#进入解压的项目目录,解压 1.14 版本的 dataease 服务镜像
cd /tmp/dataease-v1.14.0-offline/images
#解压回滚版本的镜像
docker load -i dataease:v1.14.0.tar.gz
8.3 修改配置文件版本号 {#8.3-%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%89%88%E6%9C%AC%E5%8F%B7}
查看 docker-compos.yml 对应的版本号是否未本次回退的版本号,如果涉及其它服务回退版本,依次修改其它配置文件的对应版本号
cd /opt/dataease
#编辑 docker-compos.yml 文件,修改为对应版本,如下图所示:
vi docker-compos.yml
9 重启服务 {#9-%E9%87%8D%E5%90%AF%E6%9C%8D%E5%8A%A1}
dectl restart