当前位置: 首页 > article >正文

Percona XtraBackup8.0备份实例

Percona XtraBackup8.0备份实例

​ 此示例演示了初级 DBA 如何使用 Percona XtraBackup 8.0 和 Percona Server for MySQL 8.0 数据库服务器为大型组织设置每日完整备份和每小时增量备份。

一、实验环境

  • 您的系统上安装了 Percona XtraBackup 8.0。
  • 您有一个正在运行的 Percona Server for MySQL 8.0 数据库服务器。
  • 您已经创建了用于存储备份的专用目录:
    • /backups/mysql/full- 用于每日完整备份
    • /backups/mysql/incr- 用于每小时增量备份

二、每日完整备份脚本

以下脚本定义了服务器详细信息,如主机名、用户名、密码、数据目录和备份目录。将这些替换为您的实际值。

  • 定义服务器凭据
  • date使用命令为完整备份文件名生成时间戳
  • xtrabackup与标志一起使用--backup以进行完整备份
  • 指定存储备份的目录--target-dir
  • --datadir指向 MySQL 数据文件的位置。
  • 提供凭据以--user访问--password数据库服务器。
  • 回显确认备份成功完成的消息。
#!/bin/bash

# 设置服务器详细信息(替换为您的实际值)
SERVER_HOST="your_server_hostname"
SERVER_USER="your_db_username"
SERVER_PASSWORD="your_db_password"
DATA_DIR="/var/lib/mysql"  # Replace with your data directory path
BACKUP_DIR="/backups/mysql/full"

# 获取当前时间
TODAY=$(date +%Y-%m-%d)
FULL_BACKUP_FILENAME="${BACKUP_DIR}/${TODAY}"

# 使用 full backup 命令运行 xtrabackup
xtrabackup --backup \
  --target-dir="${FULL_BACKUP_FILENAME}" \
  --datadir="${DATA_DIR}" \
  --user="${SERVER_USER}" \
  --password="${SERVER_PASSWORD}"

echo "Daily full backup completed at $(date)"
  • 运行每日脚本

​ 您可以使用 cron 安排此脚本自动运行。例如,要每天午夜 (00:00) 运行它,请将以下行添加到您的 crontab:

 0 0 * * * /path/to/daily_full_backup.sh

三、每小时增量备份脚本

此脚本使用与每日脚本相同的服务器详细信息。它检索增量备份文件名的当前日期和时间。核心命令使用xtrabackup--backup标志--incremental进行增量备份。--target-dir指定存储增量备份的目录。指向使用和命令--base-dir获得的最新完整备份目录。这可确保增量备份引用最新的完整备份。与每日脚本类似,它会回显确认消息。ls``tail

#!/bin/bash

# Set server details (same as daily script)
SERVER_HOST="your_server_hostname"
SERVER_USER="your_db_username"
SERVER_PASSWORD="your_db_password"
DATA_DIR="/var/lib/mysql"  # Replace with your data directory path
BACKUP_DIR="/backups/mysql/incr"

# Get current date and hour for filename
TODAY=$(date +%Y-%m-%d)
HOUR=$(date +%H)  # Get current hour (00-23)
INCR_BACKUP_FILENAME="${BACKUP_DIR}/${TODAY}_${HOUR}"

# Set the base directory for incremental backups (point to the latest full backup)
BASE_DIR="/backups/mysql/full/$(ls -tr /backups/mysql/full | tail -n 1)"

# Run xtrabackup with incremental backup command
xtrabackup --backup \
  --incremental \
  --target-dir="${INCR_BACKUP_FILENAME}" \
  --base-dir="${BASE_DIR}" \
  --user="${SERVER_USER}" \
  --password="${SERVER_PASSWORD}"

echo "Hourly incremental backup completed at $(date)"
  • 运行每小时脚本

​ 使用 cron 安排此脚本每小时运行一次。

0 * * * * /path/to/your/script.sh

http://www.kler.cn/a/582407.html

相关文章:

  • 如何保证Redis与MySQL双写一致性?分布式场景下的终极解决方案
  • 免费的模型效果编辑器推荐
  • 在Selenium中,driver.close和driver.quit之间有什么区别?分别在什么时候用?
  • docker jar镜像打包
  • std::ranges::views::common, std::ranges::common_view
  • 七大常用智能家居协议对比
  • 双周报Vol.67: 模式匹配支持守卫、LLVM 后端发布、支持 Attribute 语法...多项核心技术更新!
  • Word 小黑第2套
  • 【记录】LaTex|ACM单双栏混合排版出现大量空白的调整方式(例如附带单栏的附录)
  • MySQL Binlog的样式
  • 人工智能驱动数字孪生城市的实践探索
  • 展望 AIGC 前景:通义万相 2.1 与蓝耘智算平台共筑 AI 生产力高地
  • 六、OpenGL中EBO的使用及本质
  • 汽车NVH诊断案例 | 纯电车急加速过大弯底盘异响
  • 17.JavaScript 自动化侦察工具
  • 前馈神经网络 - 参数学习(优化问题)
  • VSTO(C#)Excel开发4:打印设置
  • Mac java全栈开发环境配置
  • MATLAB代码开发实战:从入门到高效应用
  • 基于springboot + vue 的实验室(预约)管理系统