Skip to content

备份/恢复 数据

备份与恢复数据需要使用 数据备份与恢复 中的介绍的脚本,区别是 metadb 备份与恢复在 metadb-0 的容器中执行,engine 备份与恢复在 master-0,minio 备份与恢复在 minio-0 容器中执行。

请注意

在 k8s 环境中,只使用本地备份方式,默认备份到/opt/hsdata/backup 目录下。

数据恢复前准备工作

metadb 与 engine 数据恢复前需要停止 hengshi-sense 服务,避免服务对数据恢复结果造成影响,minio 数据恢复可忽略此步

  • hengshi-sense 服务停止示例。
shell
kubectl -n hengshi scale --replicas=0 deployment hengshi-sense

备份恢复 metadb

按照示例中的操作步骤进行备份 metadb 和恢复 metadb。

  • 备份 metadb 示例。
shell
kubectl -n hengshi exec -it metadb-0 -- mkdir -p /opt/hsdata/backup
kubectl -n hengshi exec -it metadb-0 -- /opt/hengshi/bin/dbbackup.sh -m metadb -l /opt/hsdata/backup
  • 恢复 metadb 示例。
shell
kubectl -n hengshi exec -it metadb-0 -- /bin/bash ## 进入 metadb-0 容器中,执行下列操作
/opt/hengshi/bin/hengshi-sense-bin stop metadb single
sudo mv ${HSDATA}/pg_data ${HSDATA}/pg_data.old
/opt/hengshi/bin/hengshi-sense-bin init metadb single
/opt/hengshi/bin/hengshi-sense-bin start metadb single
/opt/hengshi/bin/dbrestore.sh -m metadb -l /opt/hsdata/backup -t metadb_backup.xx-xx-xx_xx:xx:xx.tar.gz
  • 数据恢复成功后,确认数据正确性,然后删除历史旧数据。
shell
kubectl -n hengshi exec -it metadb-0 -- sudo rm -rf ${HSDATA}/pg_data.old

备份恢复 engine 数据

按照示例中的操作步骤进行备份和恢复引擎数据。

  • 备份引擎数据示例。
shell
kubectl -n hengshi exec -it master-0 -- mkdir -p /opt/hsdata/backup
kubectl -n hengshi exec -it master-0 -- /opt/hengshi/bin/dbbackup.sh -m engine -l /opt/hsdata/backup
  • 恢复引擎数据示例。
shell
kubectl -n hengshi exec -it master-0 -- /bin/bash  ## 进入 master-0 容器中,执行下列操作
/entrypoint.sh -m stopsystem
for host in ${MASTER} ${SEGMENTS};do ssh $host "sudo mv ${HSDATA}/engine-cluster ${HSDATA}/engine-cluster.old";done
/entrypoint.sh -m initsystem
/entrypoint.sh -m startsystem
/opt/hengshi/bin/dbrestore.sh -m engine -l /opt/hsdata/backup -t engine_backup.xx-xx-xx_xx:xx:xx.tar.gz
  • 数据恢复成功后,确认数据正确性,然后删除历史旧数据。
shell
kubectl -n hengshi exec -it master-0 -- for host in ${MASTER} ${SEGMENTS};do ssh $host "sudo rm -rf ${HSDATA}/engine-cluster.old";done

备份恢复 minio

按照示例中的操作步骤进行备份 minio 和恢复 minio。

  • 备份 minio 示例。
shell
kubectl -n hengshi exec -it inio-0 -- mkdir -p /opt/hsdata/backup
kubectl -n hengshi exec -it inio-0 -- /opt/hengshi/bin/dbbackup.sh -m inio -l /opt/hsdata/backup
  • 恢复 minio 示例。
shell
kubectl -n hengshi exec -it minio-0 -- /bin/bash ## 进入 metadb-0 容器中,执行下列操作
/opt/hengshi/bin/hengshi-sense-bin stop minio single
sudo mv ${HSDATA}/minio-data ${HSDATA}/minio-data.old
/opt/hengshi/bin/dbrestore.sh -m minio -l /opt/hsdata/backup -t minio_backup.xx-xx-xx_xx:xx:xx.tar.gz
/opt/hengshi/bin/hengshi-sense-bin start minio single
  • 数据恢复成功后,确认数据正确性,然后删除历史旧数据。
shell
kubectl -n hengshi exec -it minio-0 -- sudo rm -rf ${HSDATA}/minio-data.old

数据恢复完成后操作

metadb 与 engine 数据恢复完成后,继续恢复 hengshi-sense 服务,minio 数据恢复可忽略此步

  • hengshi-sense 服务恢复示例。
shell
hs_pods_num=  #hengshi-sense 服务数量,根据自身停止前数量填写
kubectl -n hengshi scale --replicas=${hs_pods_num} deployment hengshi-sense

衡石分析平台使用手册