1. 数据备份与恢复

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

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

1.1. 数据备份命令

用户可以通过'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 参数指定的本地路径相同。

1.2. 数据恢复命令

用户可以通过'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 参数必选,指待恢复的数据包的文件名。

1.3. 数据库metadb的备份和恢复

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

1.3.1. 备份数据

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

本地备份

首先设置变量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进行复制。

1.3.2. 恢复数据

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

本地数据恢复

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

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

远程数据恢复

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

  1. 设置远程设备的ip地址变量REMOTE_IP 和存放备份数据的绝对路径的变量PATH_TO_BACKUP_FOLDER。
    PATH_TO_BACKUP_FOLDER=/xxx
    REMOTE_IP=/xxx
    
  2. 停止HENGSHI服务,并移除HENGSHI系统中旧的数据库。
    bin/hengshi-sense-bin stop all
    mv pg_data pg_data.old
    
  3. 初始化并启动metadb。
    bin/hengshi-sense-bin init metadb  
    bin/hengshi-sense-bin start metadb
    
  4. 使用远程设备上存储的备份文件,进行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
    
  5. 停止metadb,启动HENGSHI服务,完成数据恢复操作。
    bin/hengshi-sense-bin stop metadb
    bin/hengshi-sense-bin start all
    

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

1.4. 引擎的数据备份和恢复

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

1.4.1. 备份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 进行复制。

1.4.2. 恢复engine

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

本地数据恢复engine

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

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

远程数据恢复engine

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

  1. 设置远程设备的ip地址变量REMOTE_IP和存放备份数据的绝对路径的变量PATH_TO_BACKUP_FOLDER。
    PATH_TO_BACKUP_FOLDER=/xxx
    REMOTE_IP=/xxx
    
  2. 停止HENGSHI服务,并移动HENGSHI系统中旧的engine数据库。
    bin/hengshi-sense-bin stop all
    mv engine-cluster engine-cluster.old
    
  3. 初始化并启动engine。
    bin/hengshi-sense-bin init engine  
    bin/hengshi-sense-bin start engine
    
  4. 使用远程设备上存储的备份文件,进行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
    
  5. 停止engine,启动HENGSHI服务,完成数据恢复操作。
    bin/hengshi-sense-bin stop engineb
    bin/hengshi-sense-bin start all
    

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

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

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

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

1.6. 对象存储 Minio的备份和恢复

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

1.6.1. 备份数据

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

本地备份

首先设置变量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进行复制。

1.6.2. 恢复数据

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

本地数据恢复

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

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

远程数据恢复

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

  1. 设置远程设备的ip地址变量REMOTE_IP 和存放备份数据的绝对路径的变量PATH_TO_BACKUP_FOLDER。
    PATH_TO_BACKUP_FOLDER=/xxx
    REMOTE_IP=/xxx
    
  2. 停止HENGSHI服务,并移除HENGSHI系统中旧的数据库。
    bin/hengshi-sense-bin stop all
    mv minio-data minio-data.old
    
  3. 使用远程设备上存储的备份文件,进行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
    
  4. 启动HENGSHI服务,完成数据恢复操作。
    bin/hengshi-sense-bin start all
    

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

results matching ""

    No results matching ""

    容器环境备份与恢复