数据备份与恢复
HENGSHI SENSE 运行过程中,需要对数据进行备份,当数据出现问题时,可以使用备份数据进行恢复,避免数据丢失和损坏的情况发生,减少损失。
本文介绍如何对衡石内部业务数据库 metadb、衡石内部加速引擎、衡石内部对象存储 Minio 服务的数据进行备份和恢复操作。
数据备份命令
用户可以通过'bin/dbbackup.sh'对 metadb、engine、minio 的数据进行备份,备份文件可以存储在本地,也可以存储到远程机器上。
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 进行数据恢复,可以用本地备份数据进行数据恢复,也可以用远程备份数据进行数据恢复。
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次备份的文件。参考示例如下。
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 下生成备份文件。参考示例如下。
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 进行复制。
恢复数据
根据备份文件存放的地址,分为本地数据恢复和远程数据恢复。
本地数据恢复
使用本地备份的数据进行数据恢复时,请按照如下步骤进行操作。
- 设置存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
PATH_TO_BACKUP_FOLDER=/xxx
- 停止 HENGSHI 服务,并移除 HENGSHI 系统中旧的数据库。
bin/hengshi-sense-bin stop all
mv pg_data pg_data.old
- 初始化并启动 metadb。
bin/hengshi-sense-bin init metadb
bin/hengshi-sense-bin start metadb
- 使用本地存储的备份文件,进行 metadb 的数据恢复。
bin/dbrestore.sh -m metadb -l $PATH_TO_BACKUP_FOLDER -t metadb_backup.xx-xx-xx_xx:xx:xx.tar.gz
- 停止 metadb,启动 HENGSHI 服务,完成数据恢复操作。
bin/hengshi-sense-bin stop metadb
bin/hengshi-sense-bin start all
远程数据恢复
当备份数据存在远程设备上时,请先确认是否对远程设备拥有 SSH 访问权限,如果没有请先获取 SSH 访问权限,然后按照下面指导进行数据恢复操作。
- 设置远程设备的 ip 地址变量 REMOTE_IP 和存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
PATH_TO_BACKUP_FOLDER=/xxx
REMOTE_IP=/xxx
- 停止 HENGSHI 服务,并移除 HENGSHI 系统中旧的数据库。
bin/hengshi-sense-bin stop all
mv pg_data pg_data.old
- 初始化并启动 metadb。
bin/hengshi-sense-bin init metadb
bin/hengshi-sense-bin start metadb
- 使用远程设备上存储的备份文件,进行 metadb 的数据恢复。
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
- 停止 metadb,启动 HENGSHI 服务,完成数据恢复操作。
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次备份的文件。参考示例如下。
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 下生成备份文件。参考示例如下。
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
使用本地备份的数据进行数据恢复时,请按照如下步骤进行操作。
- 设置存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
PATH_TO_BACKUP_FOLDER=/xxx
- 停止 HENGSHI 服务,并移除 HENGSHI 系统中旧的数据库。
bin/hengshi-sense-bin stop all
mv engine-cluster engine-cluster.old
- 初始化并启动 engine。
bin/hengshi-sense-bin init engine
bin/hengshi-sense-bin start engine
- 使用本地存储的备份文件,进行 engine 的数据恢复。
bin/dbrestore.sh -m engine -l $PATH_TO_BACKUP_FOLDER -t engine_backup.xx-xx-xx_xx:xx:xx.tar.gz
- 停止 engine,启动 HENGSHI 服务,完成数据恢复操作。
bin/hengshi-sense-bin stop engine
bin/hengshi-sense-bin start all
远程数据恢复 engine
当备份数据存在远程设备上时,请先确认是否对远程设备拥有 SSH 访问权限,如果没有请先获取 SSH 访问权限,然后按照下面指导进行数据恢复操作。
- 设置远程设备的 ip 地址变量 REMOTE_IP 和存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
PATH_TO_BACKUP_FOLDER=/xxx
REMOTE_IP=/xxx
- 停止 HENGSHI 服务,并移动 HENGSHI 系统中旧的 engine 数据库。
bin/hengshi-sense-bin stop all
mv engine-cluster engine-cluster.old
- 初始化并启动 engine。
bin/hengshi-sense-bin init engine
bin/hengshi-sense-bin start engine
- 使用远程设备上存储的备份文件,进行 engine 的数据恢复。
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
- 停止 engine,启动 HENGSHI 服务,完成数据恢复操作。
bin/hengshi-sense-bin stop engineb
bin/hengshi-sense-bin start all
提示
远程数据恢复时需要对远程设备有 ssh 访问权限,需要通过 scp 进行复制。
数据库客户端环境变量配置
当您使用自己团队的 metadb 时,那么 metadb 的升级、备份和恢复过程中可能会发生客户端版本不一致问题,这种情况下请先配置 EXTERNAL_DB_PG_PATH 环境变量指定客户端路径。请参考下面示例进行配置。每次版本升级、备份和数据恢复都需要配置。
## 临时生效 每次升级 备份 恢复 需执行一次
$ 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次备份的文件。参考示例如下。
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 下生成备份文件。参考示例如下。
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 进行复制。
恢复数据
根据备份文件存放的地址,分为本地数据恢复和远程数据恢复。
本地数据恢复
使用本地备份的数据进行数据恢复时,请按照如下步骤进行操作。
- 设置存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
PATH_TO_BACKUP_FOLDER=/xxx
- 停止 HENGSHI 服务,并移除 HENGSHI 系统中旧的数据存储目录。
bin/hengshi-sense-bin stop all
mv minio-data minio-data.old
- 使用本地存储的备份文件,进行 metadb 的数据恢复。
bin/dbrestore.sh -m minio -l $PATH_TO_BACKUP_FOLDER -t minio_backup.xx-xx-xx_xx:xx:xx.tar.gz
- 启动 HENGSHI 服务,完成数据恢复操作。
bin/hengshi-sense-bin start all
远程数据恢复
当备份数据存在远程设备上时,请先确认是否对远程设备拥有 SSH 访问权限,如果没有请先获取 SSH 访问权限,然后按照下面指导进行数据恢复操作。
- 设置远程设备的 ip 地址变量 REMOTE_IP 和存放备份数据的绝对路径的变量 PATH_TO_BACKUP_FOLDER。
PATH_TO_BACKUP_FOLDER=/xxx
REMOTE_IP=/xxx
- 停止 HENGSHI 服务,并移除 HENGSHI 系统中旧的数据库。
bin/hengshi-sense-bin stop all
mv minio-data minio-data.old
- 使用远程设备上存储的备份文件,进行 metadb 的数据恢复。
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
- 启动 HENGSHI 服务,完成数据恢复操作。
bin/hengshi-sense-bin start all
提示
远程数据恢复时需要对远程设备有 ssh 访问权限,需要通过 scp 进行复制。