Skip to content

Backup/Restore Data ​

Backup and restore of data require the use of scripts introduced in Data Backup and Restore. The difference is that metadb backup and restore are executed in the metadb-0 container, engine backup and restore are executed in the master-0 container, and minio backup and restore are executed in the minio-0 container.

Note

In a k8s environment, only local backup methods are used, with backups defaulting to the /opt/hsdata/backup directory.

Preparations Before Data Recovery ​

Before recovering metadb and engine data, stop the hengshi-sense service to avoid affecting the data recovery results. This step can be ignored for minio data recovery.

  • Example of stopping the hengshi-sense service.
shell
kubectl -n hengshi scale --replicas=0 deployment hengshi-sense

Backup and Restore metadb ​

Follow the steps in the example to backup and restore metadb.

  • Example of backing up 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
  • Example of restoring metadb.
shell
kubectl -n hengshi exec -it metadb-0 -- /bin/bash ## Enter the metadb-0 container and perform the following operations
/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
  • After the data recovery is successful, confirm the correctness of the data, and then delete the historical old data.
shell
kubectl -n hengshi exec -it metadb-0 -- sudo rm -rf ${HSDATA}/pg_data.old

Backup and Restore engine Data ​

Follow the steps in the example to perform backup and restore of engine data.

  • Example of backing up engine data.
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
  • Example of restoring engine data.
shell
kubectl -n hengshi exec -it master-0 -- /bin/bash  ## Enter the master-0 container and perform the following operations
/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
  • After the data recovery is successful, confirm the correctness of the data, and then delete the historical old data.
shell
kubectl -n hengshi exec -it master-0 -- for host in ${MASTER} ${SEGMENTS};do ssh $host "sudo rm -rf ${HSDATA}/engine-cluster.old";done

Backup and Restore MinIO ​

Follow the steps in the example to backup and restore MinIO.

  • Example of backing up MinIO.
shell
kubectl -n hengshi exec -it minio-0 -- mkdir -p /opt/hsdata/backup
kubectl -n hengshi exec -it minio-0 -- /opt/hengshi/bin/dbbackup.sh -m minio -l /opt/hsdata/backup
  • Example of restoring MinIO.
shell
kubectl -n hengshi exec -it minio-0 -- /bin/bash ## Enter the metadb-0 container and perform the following operations
/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
  • After the data recovery is successful, confirm the correctness of the data, and then delete the historical old data.
shell
kubectl -n hengshi exec -it minio-0 -- sudo rm -rf ${HSDATA}/minio-data.old

Operations After Data Recovery ​

After the metadb and engine data recovery is completed, continue to restore the hengshi-sense service. This step can be ignored for minio data recovery.

  • Example of restoring the hengshi-sense service.
shell
hs_pods_num=  #Number of hengshi-sense service instances, fill in according to the number before stopping
kubectl -n hengshi scale --replicas=${hs_pods_num} deployment hengshi-sense

HENGSHI SENSE Platform User Manual