Backup Data
Backing up and restoring data requires using the scripts introduced in Data Backup and Restore, with the distinction that the following operations are performed within the container.
The metadb backup is executed in the hengshi-metadb container.
The engine backup and restore are executed in the hengshi-engine container.
The minio backup and restore are executed in the hengshi-minio container.
Please Note
In the Docker environment, only the local backup method is used, and backups are stored in the backup directory under HSHOME configured in .env. The default path is docker-compose-x.x/hsdata/backup. After restoring the data, please verify the correctness of the data before deleting the old data!
Backup metadb
# Enter the metadb container and create a backup directory
docker exec -it hengshi-metadb mkdir -p /opt/hsdata/backup
# Start the backup
docker exec -it hengshi-metadb /opt/hengshi/bin/dbbackup.sh -m metadb -l /opt/hsdata/backup -t sql.gz
Restore metadb
- Stop all services
docker-compose down
- Rename the old data directory
sudo mv ${HSHOME}/hsdata/pg_data ${HSHOME}/hsdata/pg_data.old
Please note
${HSHOME} is a sample variable and cannot be directly copied and pasted! Please replace it with your actual deployment directory.
For example:
If hengshi is deployed in /data/docker-compose-6.0, the actual path would be sudo mv /data/docker-compose-6.0/hsdata/pg_data /data/docker-compose-6.0/hsdata/pg_data.old.
- Reinitialize the new metadb data and perform backup import
docker-compose run --rm metadb init metadb
docker-compose up -d metadb
docker exec -it hengshi-metadb /opt/hengshi/bin/dbrestore.sh -m metadb -l /opt/hsdata/backup -t metadb_backup.xx-xx-xx_xx-xx-xx
docker-compose down
- After metadb is successfully restored, restart the system.
docker-compose up -d
- After verifying normal operations, delete the old data.
docker exec -it hengshi-metadb bash -c "rm /opt/hsdata/pg_data.old -rf"
Backup and Restore Engine Data
docker exec -it hengshi-engine mkdir -p /opt/hsdata/backup
docker exec -it hengshi-engine /opt/hengshi/bin/dbbackup.sh -m engine -l /opt/hsdata/backup
Restore Engine
Stop all services (or you can stop only the Hengshi service)
docker-compose down
Rename the old data directory
sudo mv ${HSHOME}/hsdata/engine-cluster ${HSHOME}/hsdata/engine-cluster.old
Please note
${HSHOME} is a placeholder variable and cannot be directly copied and pasted! Replace it with your actual deployment directory.
For example:
If Hengshi is deployed in /data/docker-compose-5.1, the actual path would be: sudo mv /data/docker-compose-5.1/hsdata/engine-cluster /data/docker-compose-5.1/hsdata/engine-cluster.old
- Reinitialize new engine data and perform backup import
docker-compose run --rm engine init engine
docker-compose up -d engine
docker exec -it hengshi-engine /opt/hengshi/bin/dbrestore.sh -m engine -l /opt/hsdata/backup -t engine_backup.xx-xx-xx_xx:xx:xx.tar.gz
docker-compose down
- After the engine is successfully restored, restart the system.
docker-compose up -d
- After confirming the business is functioning normally, delete the old data.
docker exec -it hengshi-engine bash -c "rm /opt/hsdata/engine-cluster.old -rf"
Backup minio
docker exec -it hengshi-minio mkdir -p /opt/hsdata/backup
docker exec -it hengshi-minio /opt/hengshi/bin/dbbackup.sh -m minio -l /opt/hsdata/backup
Restore Minio
Stop all services (or you can choose to stop only the HENGSHI service)
cd docker-compose-x.x
docker-compose down
Rename the old data directory
sudo mv ${HSHOME}/hsdata/minio-data ${HSHOME}/hsdata/minio-data.old
Please note
${HSHOME} is a sample variable and cannot be directly copied and pasted! Please replace it with your actual deployment directory.
For example:
If HENGSHI is deployed in /data/docker-compose-5.1, the actual path would be sudo mv /data/docker-compose-5.1/hsdata/minio-data /data/docker-compose-5.1/hsdata/minio-data.old.
Minio does not require initialization; you can directly import the backup after starting it.
docker-compose up -d minio
docker exec -it hengshi-minio /opt/hengshi/bin/dbrestore.sh -m minio -l /opt/hsdata/backup -t minio_backup.xx-xx-xx_xx:xx:xx.tar.gz
docker-compose down
- After Minio is successfully restored, restart the system.
docker-compose up -d
- After confirming the business is functioning normally, delete the old data.
docker exec -it hengshi-minio bash -c "rm /opt/hsdata/minio-data.old -rf"