Skip to content

数据备份与恢复

HENGSHI SENSE 运行过程中,需要对数据进行备份,当数据出现问题时,可以使用备份数据进行恢复,避免数据丢失和损坏的情况发生,减少损失。

本文介绍如何对衡石内部业务数据库 metadb、衡石内部加速引擎、衡石内部对象存储 Minio 服务的数据进行备份和恢复操作。

数据备份命令

用户可以通过'bin/dbbackup.sh'对 metadb、engine、minio 的数据进行备份,备份文件可以存储在本地,也可以存储到远程机器上。

sh
bin/dbbackup.sh -m [metadb|engine|minio]
                -l local backup root, absolute path, default ${PWD}/backup
                -k keep history backup number, default 3
                -h remote ip
                -r remote path root, default is ${backup_root}

参数说明:

  • -m 参数必选,指数据备份类型,枚举类型,选项为 metadb 、engine 、minio。
  • -l 参数可选,指本地备份时备份文件的绝对路径。
  • -k 参数可选,保留备份文件的数量, 默认为3,指保留最近3次备份的数据。
  • -h 参数可选,指远程备份时的 ip 地址。
  • -r 参数可选,指远程备份时备份文件的绝对路径,默认与 -l 参数指定的本地路径相同。

数据恢复命令

用户可以通过'bin/dbrestore.sh'对 metadb、engine、minio 进行数据恢复,可以用本地备份数据进行数据恢复,也可以用远程备份数据进行数据恢复。

sh
bin/dbrestore.sh -m [metadb|engine|minio]
                -l local backup root, absolute path, default ${PWD}/backup
                -t backup tar only file name
                -h remote ip
                -r remote path root, default is ${backup_root}

参数说明:

  • -m 参数必选,指数据备份类型,枚举类型,选项为 metadb 、engine 、minio。
  • -l 参数可选,使用本地备份数据恢复时的绝对路径。
  • -h 参数可选,使用远程备份数据恢复时的 ip 地址。
  • -r 参数可选,使用远程备份数据恢复时的绝对路径, 默认与-l 参数指定的本地绝对路径相同。
  • -t 参数必选,指待恢复的数据包的文件名。

数据库 metadb 的备份和恢复

数据库 metadb 是衡石业务数据库,建议用户每日定时备份,防止数据丢失和损坏。

备份数据

备份数据根据备份文件存储位置分为本地备份和远程备份。

本地备份

首先设置变量 PATH_TO_BACKUP_FOLDER 存放备份数据的绝对路径,然后执行备份命令。此时在$PATH_TO_BACKUP_FOLDER 下生成 metadb_backup.xx-xx-xx_xx-xx-xx.tar.gz 的备份文件,默认会保留最近3次备份的文件。参考示例如下。

shell
PATH_TO_BACKUP_FOLDER=/xxx
bin/dbbackup.sh -m metadb -l $PATH_TO_BACKUP_FOLDER

远程备份

远程备份需要设置 REMOTE_IP 和 PATH_TO_BACKUP_FOLDER 两个变量,其中 REMOTE_IP 用于存放远程设备的 ip 地址,PATH_TO_BACKUP_FOLDER 存放备份数据的绝对路径。然后执行远程备份命令后,在远程设备 REMOTE_IP 的 PATH_TO_BACKUP_FOLDER 下生成备份文件。参考示例如下。

shell
PATH_TO_BACKUP_FOLDER=/xxx
bin/dbbackup.sh -m metadb -l $PATH_TO_BACKUP_FOLDER -h $REMOTE_IP -r $PATH_TO_BACKUP_FOLDER

提示

远程备份数据时需要对远程设备有 ssh 访问权限,备份时需要使用 scp 进行复制。

恢复数据

根据备份文件存放的地址,分为本地数据恢复和远程数据恢复。

本地数据恢复

使用本地备份的数据进行数据恢复时,请按照如下步骤进行操作。

  1. 设置存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
sh
PATH_TO_BACKUP_FOLDER=/xxx
  1. 停止 HENGSHI 服务,并移除 HENGSHI 系统中旧的数据库。
sh
bin/hengshi-sense-bin stop all
mv pg_data pg_data.old
  1. 初始化并启动 metadb。
sh
bin/hengshi-sense-bin init metadb
bin/hengshi-sense-bin start metadb
  1. 使用本地存储的备份文件,进行 metadb 的数据恢复。
sh
bin/dbrestore.sh -m metadb -l $PATH_TO_BACKUP_FOLDER -t metadb_backup.xx-xx-xx_xx:xx:xx.tar.gz
  1. 停止 metadb,启动 HENGSHI 服务,完成数据恢复操作。
sh
bin/hengshi-sense-bin stop metadb
bin/hengshi-sense-bin start all

远程数据恢复

当备份数据存在远程设备上时,请先确认是否对远程设备拥有 SSH 访问权限,如果没有请先获取 SSH 访问权限,然后按照下面指导进行数据恢复操作。

  1. 设置远程设备的 ip 地址变量 REMOTE_IP 和存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
sh
PATH_TO_BACKUP_FOLDER=/xxx
REMOTE_IP=/xxx
  1. 停止 HENGSHI 服务,并移除 HENGSHI 系统中旧的数据库。
sh
bin/hengshi-sense-bin stop all
mv pg_data pg_data.old
  1. 初始化并启动 metadb。
sh
bin/hengshi-sense-bin init metadb
bin/hengshi-sense-bin start metadb
  1. 使用远程设备上存储的备份文件,进行 metadb 的数据恢复。
sh
bin/dbrestore.sh -m metadb -l $PATH_TO_BACKUP_FOLDER -t metadb_backup.xx-xx-xx_xx:xx:xx.tar.gz -h $REMOTE_IP -r $PATH_TO_BACKUP_FOLDER
  1. 停止 metadb,启动 HENGSHI 服务,完成数据恢复操作。
sh
bin/hengshi-sense-bin stop metadb
bin/hengshi-sense-bin start all

提示

远程数据恢复时需要对远程设备有 ssh 访问权限,需要通过 scp 进行复制。

引擎的数据备份和恢复

引擎是衡石内部加速引擎,一般情况下不需要备份 engine 数据,当确定需要备份时可以按照下面的操作指导进行。

备份 engine

备份数据根据备份文件存储位置分为本地备份和远程备份。

本地备份 engine

首先设置存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER,然后执行备份命令,此时在 $PATH_TO_BACKUP_FOLDER 下生成 engine_backup.xx-xx-xx_xx-xx-xx.tar.gz 的备份文件,默认会保留最近3次备份的文件。参考示例如下。

shell
PATH_TO_BACKUP_FOLDER=/xxx
bin/dbbackup.sh -m engine -l $PATH_TO_BACKUP_FOLDER

远程备份 engine

远程备份需要设置 REMOTE_IP 和 PATH_TO_BACKUP_FOLDER 两个变量,其中 REMOTE_IP 用于存放远程设备的 ip 地址,PATH_TO_BACKUP_FOLDER 存放备份数据的绝对路径。然后执行远程备份命令后,在远程设备 REMOTE_IP 的 PATH_TO_BACKUP_FOLDER 下生成备份文件。参考示例如下。

shell
PATH_TO_BACKUP_FOLDER=/xxx
bin/dbbackup.sh -m engine -l $PATH_TO_BACKUP_FOLDER -h $REMOTE_IP -r $PATH_TO_BACKUP_FOLDER

提示

远程备份数据时需要对远程设备有 ssh 访问权限,备份时需要使用 scp 进行复制。

恢复 engine

根据备份文件存放的地址,分为本地数据恢复和远程数据恢复。

本地数据恢复 engine

使用本地备份的数据进行数据恢复时,请按照如下步骤进行操作。

  1. 设置存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
sh
PATH_TO_BACKUP_FOLDER=/xxx
  1. 停止 HENGSHI 服务,并移除 HENGSHI 系统中旧的数据库。
sh
bin/hengshi-sense-bin stop all
mv engine-cluster engine-cluster.old
  1. 初始化并启动 engine。
sh
bin/hengshi-sense-bin init engine
bin/hengshi-sense-bin start engine
  1. 使用本地存储的备份文件,进行 engine 的数据恢复。
sh
bin/dbrestore.sh -m engine -l $PATH_TO_BACKUP_FOLDER -t engine_backup.xx-xx-xx_xx:xx:xx.tar.gz
  1. 停止 engine,启动 HENGSHI 服务,完成数据恢复操作。
sh
bin/hengshi-sense-bin stop engine
bin/hengshi-sense-bin start all

远程数据恢复 engine

当备份数据存在远程设备上时,请先确认是否对远程设备拥有 SSH 访问权限,如果没有请先获取 SSH 访问权限,然后按照下面指导进行数据恢复操作。

  1. 设置远程设备的 ip 地址变量 REMOTE_IP 和存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
sh
PATH_TO_BACKUP_FOLDER=/xxx
REMOTE_IP=/xxx
  1. 停止 HENGSHI 服务,并移动 HENGSHI 系统中旧的 engine 数据库。
sh
bin/hengshi-sense-bin stop all
mv engine-cluster engine-cluster.old
  1. 初始化并启动 engine。
sh
bin/hengshi-sense-bin init engine
bin/hengshi-sense-bin start engine
  1. 使用远程设备上存储的备份文件,进行 engine 的数据恢复。
sh
bin/dbrestore.sh -m engine -l $PATH_TO_BACKUP_FOLDER -t engine_backup.xx-xx-xx_xx:xx:xx.tar.gz -h $REMOTE_IP -r $PATH_TO_BACKUP_FOLDER
  1. 停止 engine,启动 HENGSHI 服务,完成数据恢复操作。
sh
bin/hengshi-sense-bin stop engineb
bin/hengshi-sense-bin start all

提示

远程数据恢复时需要对远程设备有 ssh 访问权限,需要通过 scp 进行复制。

数据库客户端环境变量配置

当您使用自己团队的 metadb 时,那么 metadb 的升级、备份和恢复过程中可能会发生客户端版本不一致问题,这种情况下请先配置 EXTERNAL_DB_PG_PATH 环境变量指定客户端路径。请参考下面示例进行配置。每次版本升级、备份和数据恢复都需要配置。

shell
## 临时生效 每次升级 备份 恢复 需执行一次
$ export EXTERNAL_DB_PG_PATH=/user/lib/pgsql-version/

对象存储 Minio 的备份和恢复

对象存储 Minio 服务是衡石内部图片存储服务。

备份数据

备份数据根据备份文件存储位置分为本地备份和远程备份。

本地备份

首先设置变量 PATH_TO_BACKUP_FOLDER 存放备份数据的绝对路径,然后执行备份命令。此时在$PATH_TO_BACKUP_FOLDER 下生成 minio_backup.xx-xx-xx_xx-xx-xx.tar.gz 的备份文件,默认会保留最近3次备份的文件。参考示例如下。

shell
PATH_TO_BACKUP_FOLDER=/xxx
bin/dbbackup.sh -m minio -l $PATH_TO_BACKUP_FOLDER

远程备份

远程备份需要设置 REMOTE_IP 和 PATH_TO_BACKUP_FOLDER 两个变量,其中 REMOTE_IP 用于存放远程设备的 ip 地址,PATH_TO_BACKUP_FOLDER 存放备份数据的绝对路径。然后执行远程备份命令后,在远程设备 REMOTE_IP 的 PATH_TO_BACKUP_FOLDER 下生成备份文件。参考示例如下。

shell
PATH_TO_BACKUP_FOLDER=/xxx
bin/dbbackup.sh -m minio -l $PATH_TO_BACKUP_FOLDER -h $REMOTE_IP -r $PATH_TO_BACKUP_FOLDER

提示

远程备份数据时需要对远程设备有 ssh 访问权限,备份时需要使用 scp 进行复制。

恢复数据

根据备份文件存放的地址,分为本地数据恢复和远程数据恢复。

本地数据恢复

使用本地备份的数据进行数据恢复时,请按照如下步骤进行操作。

  1. 设置存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
sh
PATH_TO_BACKUP_FOLDER=/xxx
  1. 停止 HENGSHI 服务,并移除 HENGSHI 系统中旧的数据存储目录。
sh
bin/hengshi-sense-bin stop all
mv minio-data minio-data.old
  1. 使用本地存储的备份文件,进行 metadb 的数据恢复。
sh
bin/dbrestore.sh -m minio -l $PATH_TO_BACKUP_FOLDER -t minio_backup.xx-xx-xx_xx:xx:xx.tar.gz
  1. 启动 HENGSHI 服务,完成数据恢复操作。
sh
bin/hengshi-sense-bin start all

远程数据恢复

当备份数据存在远程设备上时,请先确认是否对远程设备拥有 SSH 访问权限,如果没有请先获取 SSH 访问权限,然后按照下面指导进行数据恢复操作。

  1. 设置远程设备的 ip 地址变量 REMOTE_IP 和存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
sh
PATH_TO_BACKUP_FOLDER=/xxx
REMOTE_IP=/xxx
  1. 停止 HENGSHI 服务,并移除 HENGSHI 系统中旧的数据库。
sh
bin/hengshi-sense-bin stop all
mv minio-data minio-data.old
  1. 使用远程设备上存储的备份文件,进行 metadb 的数据恢复。
sh
bin/dbrestore.sh -m minio -l $PATH_TO_BACKUP_FOLDER -t metadb_backup.xx-xx-xx_xx:xx:xx.tar.gz -h $REMOTE_IP -r $PATH_TO_BACKUP_FOLDER
  1. 启动 HENGSHI 服务,完成数据恢复操作。
sh
bin/hengshi-sense-bin start all

提示

远程数据恢复时需要对远程设备有 ssh 访问权限,需要通过 scp 进行复制。

衡石分析平台使用手册