xtrabackup全量备份与恢复脚本

备份

#!/bin/bash

BACKUP_DIR="/data/backup/full_$(date +%F-%H%M%S)"
USER="backup_user"
PASS="your_password"
HOST="you_host"
echo "开始备份,备份目录:$BACKUP_DIR" xtrabackup --backup --host=$HOST --user=$USER --password=$PASS --target-dir=$BACKUP_DIR if [ $? -ne 0 ]; then echo "备份失败!" exit 1 fi echo "备份完成,开始准备备份数据" xtrabackup --prepare --target-dir=$BACKUP_DIR if [ $? -ne 0 ]; then echo "准备备份数据失败!" exit 1 fi echo "备份准备完成,备份成功!"

 

恢复:

#!/bin/bash
BACKUP_DIR="/data/backup/full_2025-08-07-101530"
echo "停止 MySQL 服务"
systemctl stop mysql
if [ $? -ne 0 ]; then
  echo "停止服务失败!"
  exit 1
fi

echo "清空 MySQL 数据目录"
rm -rf /var/lib/mysql/*

echo "拷贝备份数据"
xtrabackup --copy-back --target-dir=$BACKUP_DIR
if [ $? -ne 0 ]; then
  echo "恢复数据失败!"
  exit 1
fi

echo "修正目录权限"
chown -R mysql:mysql /var/lib/mysql

echo "启动 MySQL 服务"
systemctl start mysql
if [ $? -ne 0 ]; then
  echo "启动服务失败!"
  exit 1
fi

echo "恢复完成!"

 

posted @ 2025-08-07 15:48  羊脂玉净瓶  阅读(4)  评论(0)    收藏  举报