灾备和恢复

投入生产使用后,建议定时对 Zadig 系统的数据做备份,当数据库故障、Kubernetes 集群故障等极端情况发生时,可参考本手册快速恢复,对 Zadig 进行迁移。

数据备份

数据库

MongoDB 数据

备份数据库:zadig、zadig_policy、plutus_zadig。

若安装时指定了数据库名称,以安装参数中的数据库名为准。

  1. mongodump -h IP --port 端口 -u 用户名 -p 密码 -d zadig -o 文件存储路径
  2. mongodump -h IP --port 端口 -u 用户名 -p 密码 -d zadig_policy -o 文件存储路径
  3. mongodump -h IP --port 端口 -u 用户名 -p 密码 -d plutus_zadig -o 文件存储路径

MySQL 数据

备份数据库 user、dex。

  1. mysqldump -h <HOST> -P <PORT> -u root -p user > user.sql
  2. mysqldump -h <HOST> -P <PORT> -u root -p dex > dex.sql

内置 MinIO 对象存储

  1. 安装 MinIO 客户端工具 mc灾备和恢复 - 图1 (opens new window)
  2. 根据如下命令备份:
  1. export NAMESPACE=<Zadig Namespace>
  2. kubectl port-forward svc/zadig-minio -n <Zadig Namespace> 9000:9000
  3. mc alias set zadig-minio http://localhost:9000 AKIAIOSFODNN72019EXAMPLE wJalrXUtnFEMI2019K7MDENGbPxRfiCYEXAMPLEKEY
  4. mc mirror zadig-minio/bucket/ ./bucket/

安装参数

  1. helm get values <Zadig Release Name> -n <Zadig Namespace> > zadig.yaml

恢复

数据导入

MongoDB 数据

若安装时指定了数据库名称,以安装参数中的数据库名为准。

  1. mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d zadig --drop 文件存储路径
  2. mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d zadig_policy --drop 文件存储路径
  3. mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d plutus-zadig --drop 文件存储路径

MySQL 数据

  1. # 在 MySQL 中执行如下操作:
  2. mysql> drop database user;
  3. mysql> create database user;
  4. mysql> drop database dex;
  5. mysql> create database dex;
  6. # 命令行执行如下数据恢复操作:
  7. mysql -h <HOST> -P <PORT> -u root -p user < user.sql
  8. mysql -h <HOST> -P <PORT> -u root -p dex < dex.sql

MinIO 数据

  1. kubectl port-forward svc/kr-minio -n <Zadig 所在 namespace> 9000:9000
  2. mc alias set zadig-minio http://localhost:9000 AKIAIOSFODNN72019EXAMPLE wJalrXUtnFEMI2019K7MDENGbPxRfiCYEXAMPLEKEY
  3. mc mirror ./bucket/ zadig-minio/bucket/

安装 Zadig

为保证许可证可用,再次安装时请勿更换集群和 Namespace。

参考文档:安装 Zadig