#平台备份与恢复

通过backup.sh和restore.sh工具可以对管理平台以及托管资源上管理平台相关的信息(ycm-agent)进行数据和配置的备份与恢复,具体命令介绍请查阅backuprestore

备份与恢复操作不能保证数据的强一致性,请合理规划备份与恢复操作。例如新增托管资源后备份管理平台,然后移除该资源再恢复管理平台,并不能达到恢复该资源的效果且还会产生脏数据。

Note:

本文中的安装路径、备份文件存放地址、备份文件名、后端数据库相关信息等均为示例,请以实际为准。

# 备份与恢复管理平台

# 备份

# 注意事项

  • 备份的目标地址空闲空间需大于2G,若不指定默认为{管理平台安装路径(本文以/data/install为例)}/backup

  • 为尽可能提高数据一致性,请勿在任务执行期间进行备份。

  • 备份操作的步骤取决于管理平台的后端数据库配置,操作前需先获取具体的后端数据库信息(可通过查看etc/deploy.toml文件中dbconfig相关配置获取)。

  • 当后端数据库为远端YashanDB时,执行备份操作前需要先配置免密登录,允许管理平台执行恢复操作的服务器可SSH免密登录远端YashanDB所在服务器。具体操作以各操作系统为准,本文不做赘述。

# 操作步骤

场景一 后端数据库为SQLite

  1. 以安装用户登录管理平台所在服务器。

  2. 执行如下命令,备份管理平台。

    $ /data/install/ycm/scripts/backup.sh -n ycm -i /data/install/ycm
    

场景二 后端数据库为本地YashanDB

  1. 以安装用户登录管理平台所在服务器。

  2. 执行如下命令,备份管理平台。

    • 第1次备份

      # 配置环境变量
      $ source /data/ycm_db/yashandb/23.2.1.100/conf/YCM_YASDB.bashrc
      
      $ /data/install/ycm/scripts/backup.sh -n ycm -i /data/install/ycm -c ycm_db -y /data/ycm_db/yashandb/23.2.1.100 --cata-log /data/ycm_db/yashandb/23.2.1.100/catalog --addr 192.168.1.2:1675 -k d30c03533cef25d1 -u sys -p password
      
    • 第n+1次备份

      $ /data/install/ycm/scripts/backup.sh -n ycm -i /data/install/ycm -c ycm_db -y /data/ycm_db/yashandb/23.2.1.100
      

场景三 后端数据库为远端YashanDB

  1. 以安装用户登录管理平台所在服务器。

  2. 配置免密登录:允许执行备份脚本的服务器可SSH免密登录远端YashanDB所在服务器。

  3. 执行如下命令,备份管理平台。

    • 第1次备份

      $ /data/install/ycm/scripts/backup.sh -n ycm -i /data/install/ycm -c ycm_db  -y /data/ycm_db/yashandb/23.2.1.100 --cata-log /data/ycm_db/yashandb/23.2.1.100/catalog --addr 192.168.18.177:1675 -k d30c03533cef25d1 -u sys -p password --user yashan --ip 192.168.18.177
      
    • 第n+1次备份

      $ /data/install/ycm/scripts/backup.sh -n ycm -i /data/install/ycm -c ycm_db  -y /data/ycm_db/yashandb/23.2.1.100 --user yashan --ip 192.168.18.177
      

# 恢复

# 注意事项

  • 恢复前,需先获取备份文件的存放路径。

  • 恢复操作的步骤取决于管理平台的后端数据库配置,操作前需先确认具体的后端数据库信息(可通过查看etc/deploy.toml文件中dbconfig相关配置)。

  • 当后端数据库为远端YashanDB时,执行恢复操作前需要先配置免密登录,允许管理平台执行恢复操作的服务器可SSH免密登录远端YashanDB所在服务器。具体操作以各操作系统为准,本文不做赘述。

  • 恢复完成后会自动重启相关服务进程,期间管理平台不可用,请合理安排操作时间。

  • 为尽可能提高数据一致性,请勿在任务执行期间进行恢复。

# 操作步骤

场景一 后端数据库为SQLite

  1. 以安装用户登录管理平台所在服务器。

  2. 执行如下命令,恢复管理平台。

    $ /data/install/ycm/scripts/restore.sh -n ycm -i /data/install/ycm -p /data/install/ycm/backup/ycm-20231221-144408.tar.gz
    

场景二 后端数据库为本地YashanDB

  1. 以安装用户登录管理平台及后端YashanDB数据库的yasom进程所在服务器。

  2. 进入数据库安装目录,执行备份查询命令确认YashanDB的备份文件是否存在。

    # tag的具体值可以在备份文件名中获取
    $ ./bin/yasrman sys/password@192.168.1.2:1688 -c "LIST BACKUP TAG '20231221-151101'"
    
  3. 执行如下命令,准备环境。

    $ ./bin/yasboot cluster clean -c ycm_db --restore
    
  4. 执行如下命令,恢复管理平台。

    $ /data/install/ycm/scripts/restore.sh -n ycm -i /data/install/ycm -p /data/install/ycm/backup/ycm-20231221-151101.tar.gz -y /data/ycm_db/yashandb/23.2.1.100 -c ycm_db
    

场景三 后端数据库为远端YashanDB

  1. 登录后端YashanDB数据库的yasom进程所在服务器。

  2. 进入数据库安装目录,执行备份查询命令确认YashanDB的备份文件是否存在。

    # tag的具体值可以在备份文件名中获取
    $ ./bin/yasrman sys/password@192.168.18.177:1688 -c "LIST BACKUP TAG '20231221-151101'"
    
  3. 执行如下命令,清理对应数据库数据,将数据库以nomout模式启动,提供恢复数据库环境。

    $ ./bin/yasboot cluster clean -c ycm_db --restore
    
  4. 以安装用户登录管理平台所在服务器。

  5. 执行如下命令,恢复管理平台。

    $ /data/install/ycm/scripts/restore.sh -n ycm -i /data/install/ycm -p /data/install/ycm/backup/ycm-20231221-151101.tar.gz -y /data/ycm_db/yashandb/23.2.1.100 -c ycm_db --user yashan --ip 192.168.18.177
    

# 备份与恢复ycm-agent

# 备份

# 注意事项

备份的目标地址空闲空间需大于1G,若不指定默认为{ycm-agent安装路径(本文以/opt/ycm为例)}/backup

# 操作步骤

以安装用户登录被托管服务器,执行如下命令备份管理平台相关的信息(ycm-agent)。

$ /opt/ycm/ycm-agent/scripts/backup.sh -n ycm-agent -i /opt/ycm/ycm-agent

# 恢复

# 注意事项

  • 恢复前,需先获取备份文件的存放路径。

  • 恢复完成后会自动重启相关服务进程,期间ycm-agent不可用,请合理安排操作时间。

# 操作步骤

以安装用户登录被托管服务器,执行如下命令恢复管理平台相关的信息(ycm-agent)。

$ /opt/ycm/ycm-agent/scripts/restore.sh -n ycm-agent -i /opt/ycm/ycm-agent -p /opt/ycm/ycm-agent/backup/ycm-agent-20231221-152809.tar.gz