【MeterSphere】3.X备份与还原

目录

一、手动备份数据库

二、备份 minio 目录

三、自动备份

3.1 设置备份服务器

3.2 创建文件夹 msdb_bak

3.3 设置备份脚本

3.4 创建用于定时任务脚本文件

3.5 为msdb_bak赋权

3.6 执行 install_ms_backup.sh

3.7 查看定时任务是否成功

四、还原数据 

4.1 还原 sql 数据,

4.2 还原 minio 目录数据


前言:3.X版本出来了,有来吃螃蟹了

一、手动备份数据库

docker exec -i mysql mysqldump -uroot -pPassword123@mysql metersphere > metersphere.sql

二、备份 minio 目录

在服务器上通过安装包安装,默认 /opt 目录,以实际安装目录为准。

tar -cvf ms_data_backup.tar /opt/metersphere/data/minio

三、自动备份

3.1 设置备份服务器

先查看下面博文,自动备份前需先生成 SSH 密钥对,并将公钥复制到备份服务器。将公钥复制到远程服务器。

设置远程访问

3.2 创建文件夹 msdb_bak

mkdir msdb_bak

#  进入此文件夹进入后续操作
cd msdb_bak

 

3.3 设置备份脚本

vi ms_backup.sh

脚本,只需要修改那个远程备份服务器IP

#!/bin/bash

#历史备份数据保留天数
keepBackupNum=7
#备份文件输出目录
backupDir=/opt/db_bak
#数据库用户名
username=root
#数据库密码
password=Password123@mysql
#需要备份的库名
dbName=metersphere
#备份文件的后缀名称
currentTime=`date "+%Y-%m-%d-%H-%M-%S"`
#备份文件的完整名称
backupTarFileName=ms_db_$currentTime.tar.gz
#导出sql文件的完整名称
dumpSqlFile=ms_db_$currentTime.sql
#minio目录,以实际安装目录为准进行替换,此处以 /opt/metersphere/data/minio 路径为例
msDataDir=/opt/metersphere/data/minio
#推送远程服务器ip地址
remoteIp=10.1.11.12
#推送远程服务器用户名
remoteUser=root
#推送远程服务器目录
remotePath=/opt
#数据库是否内置
isBuiltIn=true

echo dumpSqlFilePath=$backupDir/$backupTarFileName

#没有备份文件夹则创建
if [  ! -d  "$backupDir" ];then
    mkdir -p "$backupDir"
else
    echo "--------------开始进行备份-----------------"
fi

cd $backupDir

if [ "${isBuiltIn}" = "true" ]; then
    docker exec -i mysql mysqldump -u${username} -p${password} ${dbName} --max_allowed_packet=2G > $dumpSqlFile
else
    mysqldump -u${username} -p${password} ${dbName} --max_allowed_packet=2G > $dumpSqlFile
fi

tar -cvf ms_data_backup.tar ${msDataDir}

tar -zcvf $backupTarFileName $dumpSqlFile ms_data_backup.tar
#发送备份文件到远程机器
scp $backupTarFileName $remoteUser@$remoteIp:$remotePath  2>> "error.log"

if [ $? -eq 0 ]; then
    echo "---------------远程备份完成----------------"
else
    echo "---------------远程备份失败----------------"
fi

rm -rf $dumpSqlFile ms_data_backup.tar

#remove outdated backup files

output=`ls -lt $backupDir/*.tar.gz | awk '{print $9}'`
step=0
echo "---------------开始清理$keepBackupNum天前备份数据----------------"
for backupFile in $output ;do
    step=$((step+1))
    echo step=$step
    echo $backupFile
    if [ $step -gt $keepBackupNum ];then
        echo Remove outdated backup $backupFile
        rm -rf  $backupFile
    fi
done
echo "---------------结束清理$keepBackupNum天前备份数据----------------"

3.4 创建用于定时任务脚本文件

vi install_ms_backup.sh

脚本,无需修改

#!/bin/bash

timedate_fields="0 1 * * *"  #每天凌晨1:00执行备份程序
cmd="bash /opt/db_bak/ms_backup.sh" #替换 ms_backup.sh 所在路径
crontab -l | grep "$cmd " > /dev/null 2>&1
if test $? -ne 0; then
    crontab -l > crontab.tmp
    echo "$timedate_fields $cmd" >> crontab.tmp
    crontab crontab.tmp
fi

3.5 为msdb_bak赋权

chmod -R 777 msdb_bak/

3.6 执行 install_ms_backup.sh

如果出现上图错误,解决方案:

# 执行
crontab -e

3.7 查看定时任务是否成功

# 执行
crontab -l

四、还原数据 

4.1 还原 sql 数据,

进入备份 sql 目录,将 sql 复制到 mysql 容器的挂载目录 /opt/metersphere/data/mysql 下

cp metersphere.sql /opt/metersphere/data/mysql

进入 mysql 容器,登录数据库

docker exec -it mysql sh
mysql -uroot -pPassword123@mysql

使用 metersphere 库,并将数据导入到库里

use metersphere;
source /var/lib/mysql/metersphere.sql

4.2 还原 minio 目录数据

进入 ms_data_backup.tar 所在目录

mv ms_data_backup.tar /
tar -xvf ms_data_backup.tar
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值