背景
用户初期使用单机 Docker 版本部署使用了一段时间,后期搭建了高可用集群方案,想要将存量数据迁移至高可用服务上。
升级方案-双节点都要操作
DataEase:
DataEase-1: 10.1.11.93
DataEase-2: 10.1.11.94
1.停止 DataEase 服务并备份
dectl stop
tar -cf dataease2.0_bak.tar.gz /opt/dataease2.0
2.修改新版本安装包的 install.conf
# 基础配置
## 安装目录
DE_BASE=/opt
## Service 端口
DE_PORT=8100
## 登录超时时间,单位min。如果不设置则默认8小时,也就是480
DE_LOGIN_TIMEOUT=480
## 安装模式
DE_INSTALL_MODE=enterprise
## 动态路径
DE_CONTEXT_PATH=
# 数据库配置
## 是否使用外部数据库
DE_EXTERNAL_MYSQL=true
## 数据库地址
DE_MYSQL_HOST=10.1.11.96
## 数据库端口
DE_MYSQL_PORT=3306
## DataEase 数据库库名
DE_MYSQL_DB=dataease
## 数据库用户名
DE_MYSQL_USER=root
## 数据库密码,密码如包含特殊字符,请用双引号引起来,例如 DE_MYSQL_PASSWORD="Test@4&^%*^"
DE_MYSQL_PASSWORD=Password123@mysql
## 数据库参数
DE_MYSQL_PARAMS="autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true"
# 定时报告镜像配置
## 是否使用外部 Selenium,若使用外部 Selenium,则限制参数无效
DE_EXTERNAL_SELENIUM=true
## Selenium 服务地址
DE_SELENIUM_SERVER=http://10.1.11.98:4444/wd/hub
## selenium 镜像 CPU 限制
DE_SELENIUM_CPU_LIMIT='1'
## selenium 镜像 内存 限制
DE_SELENIUM_MEM_LIMIT=2g
# APISIX配置
## 是否使用外部 APISIX
DE_EXTERNAL_APISIX=true
## 使用外部 APISIX,则下列参数无效
## APISIX dashboard 端口
DE_APISIX_DASHBOARD_PORT=9000
## APISIX 端口
DE_APISIX_PORT=9080
# 同步模块配置
## 是否使用外部同步模块
DE_EXTERNAL_SYNC_TASK=true
# 其他配置
DE_EXPORT_VIEWS_LIMIT=100000
DE_EXPORT_DATASET_LIMIT=100000
DE_ORIGIN_LIST="http://localhost:8000"
## DataEase 节点列表,用于多节点部署,节点以逗号分隔,如 192.168.1.101,192.168.1.102
DE_SERVERS=10.1.11.93,10.1.11.94
3.修改 /opt/dataease2.0/docker-compose.yml 的版本号并修改其他组件的版本号
version: '3'
services:
dataease:
image: registry.cn-qingdao.aliyuncs.com/dataease/dataease:v2.10.3
container_name: dataease
ports:
- ${DE_PORT}:8100
volumes:
- ${DE_BASE}/dataease2.0/conf:/opt/apps/config
- ${DE_BASE}/dataease2.0/logs:/opt/dataease2.0/logs
- ${DE_BASE}/dataease2.0/data/static-resource:/opt/dataease2.0/data/static-resource
- ${DE_BASE}/dataease2.0/cache:/opt/dataease2.0/cache
- ${DE_BASE}/dataease2.0/data/geo:/opt/dataease2.0/data/geo
- ${DE_BASE}/dataease2.0/data/appearance:/opt/dataease2.0/data/appearance
- ${DE_BASE}/dataease2.0/data/exportData:/opt/dataease2.0/data/exportData
- ${DE_BASE}/dataease2.0/data/plugin:/opt/dataease2.0/data/plugin
- ${DE_BASE}/dataease2.0/data/font:/opt/dataease2.0/data/font
networks:
- dataease-network
networks:
dataease-network:
4.执行 install.sh
5.验证升级
迁移方案-双节点都要操作
DataEase:
DataEase-1: 10.1.11.93
DataEase-2: 10.1.11.94
由于高可用使用了共享存储并且高可用部分文件与单机的文件有差异,因此无法直接替换 /opt/dataease2.0 目录。
1.停止 DataEase 服务并备份
dectl stop
tar -cf dataease2.0_bak.tar.gz /opt/dataease2.0
2.保留高可用服务的 /opt/dataease2.0/.env
DE_MYSQL_PASSWORD=Password123@mysql
DE_APISIX_PORT=9080
DE_SELENIUM_MEM_LIMIT=2g
DE_SERVERS=10.1.11.93,10.1.11.94
DE_PORT=8100
DE_EXTERNAL_MYSQL=true
DE_APISIX_DASHBOARD_PORT=9000
DE_MYSQL_USER=root
DE_SELENIUM_SERVER=http://10.1.11.98:4444/wd/hub
DE_EXTERNAL_SELENIUM=true
DE_EXTERNAL_APISIX=true
DE_CONTEXT_PATH=
DE_LOGIN_TIMEOUT=480
DE_MYSQL_HOST=10.1.11.96
DE_EXPORT_VIEWS_LIMIT=100000
DE_MYSQL_PORT=3306
DE_SELENIUM_CPU_LIMIT=1
DE_MYSQL_PARAMS=autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
DE_ORIGIN_LIST=http://localhost:8000
DE_MYSQL_DB=dataease
DE_BASE=/opt
DE_EXPORT_DATASET_LIMIT=100000
DE_EXTERNAL_SYNC_TASK=true
DE_INSTALL_MODE=enterprise
3.保留高可用服务的 /opt/dataease2.0/docker-compose* .yml
4.保留高可用服务的 /opt/dataease2.0/conf 目录
5.手动替换 /opt/dataease2.0 剩余文件
替换/opt/dataease2.0/apisix 、bin、cache、data、logs、task 、templates 文件夹
6.将单机版本的数据库导出并导入到高可用集群数据库中
单机版本数据库做导出
mysqldump -uroot -pPassword123@mysql dataease > dataease.sql
高可用集群数据库做导入
mysql -uroot -p dataease < dataease.sql
7.重启 DataEase 服务
dectl restart
8.验证迁移
实际问题现象及处理方案
(1)迁移完成后导入 License 后仪表板数据大屏等资源不可见,且游离组织资源为空,但数据库存在数据信息,现象截图如下:
解决方案:
清理 Redis 缓存( Redis 集群服务需要都执行);
[root@centos-11-97 redis]# docker exec -it redis-node1 sh
/data # redis-cli -a admin123456 -p 6379
127.0.0.1:6379> dbszie
(integer) 3
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> exit
重启 DataEase 服务;