游乐游手机版
首页/系统平台/文章详情

Debian系统MariaDB数据库备份与恢复方法

时间:2026-08-21 06:25
Debian系统下 MariaDB 数据库备份与恢复实战指南一 常见备份方案概览逻辑备份:使用 mysqldump 导出为 sql 文件,适用于大多数 MariaDB 备份场景,支持跨版本迁移、按需恢复以及更细致的对象级控制。自动化脚本:如 Automysqlbackup,可实现按日、周、月执行的

Debian系统下 MariaDB 数据库备份与恢复实战指南

DebianMariaDB备份恢复方法

一 常见备份方案概览

  • 逻辑备份:使用 mysqldump 导出为 .sql 文件,适用于大多数 MariaDB 备份场景,支持跨版本迁移、按需恢复以及更细致的对象级控制。
  • 自动化脚本:如 Automysqlbackup,可实现按日、周、月执行的自动备份策略,并具备清晰的目录结构,方便日常数据库运维管理。
  • 物理热备:使用 Percona XtraBackup,能够在不停机的情况下完成热备份,支持增量备份与高效恢复,特别适合大规模数据库或高可用业务环境。
  • 并行导出:使用 mysqlpump(可视为并行版 mysqldump),适合数据量较大的库,用于缩短导出时间、提升备份效率。
  • 物理迁移:通过 LVM 快照或 rsync 直接复制数据目录,适合同版本环境下的整机迁移、快速恢复或重建实例。

二 逻辑备份与恢复步骤

  • 备份
    • 全库备份(含存储过程/触发器,不含数据):
      mysqldump -u root -p --single-transaction --routines --triggers --no-data --databases db1 db2 > backup_full.sql
    • 单库结构与数据完整导出:
      mysqldump -u root -p --single-transaction --routines --triggers mydb > mydb.sql
    • 仅导出数据或仅导出表结构:
      mysqldump -u root -p --single-transaction mydb --no-create-info > mydb_data.sql
      mysqldump -u root -p --single-transaction mydb --no-data > mydb_schema.sql
    • 排除部分表进行备份:
      mysqldump -u root -p mydb --ignore-table=mydb.log_table1 --ignore-table=mydb.log_table2 > mydb_min.sql
    • 远程备份(使用配置文件保存连接凭据):
      在 /etc/mysql/mariadb.conf.d/50-client.cnf 配置 [client] host/user/password 后执行:
      mysqldump --defaults-extra-file=/etc/mysql/mariadb.conf.d/50-client.cnf mydb > mydb.sql
  • 恢复
    • 目标数据库不存在时先创建数据库:
      mysql -u root -p -e “CREATE DATABASE IF NOT EXISTS mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;”
    • 执行 SQL 脚本导入恢复:
      mysql -u root -p mydb < mydb.sql
    • 跨服务器迁移恢复:
      scp mydb.sql user@target:/path/
      ssh user@target “mysql -u root -p mydb < /path/mydb.sql”
  • 自动化与保留策略
    • 使用 Automysqlbackup:
      sudo apt-get update && sudo apt-get install -y automysqlbackup
      编辑 /etc/automysqlbackup/ 配置备份目录、用户、数据库与保留周期;可手动执行:sudo automysqlbackup;加入 cron(如每日 2:00):
      0 2 * * * /usr/bin/automysqlbackup
    • 自定义脚本示例(含压缩并保留 7 天):
      #!/bin/bash
      BACKUP_DIR=“/srv/backup”
      DB=“mydb”
      FILE=“$BACKUP_DIR/${DB}$(date +%F).sql"
      mysqldump --defaults-extra-file=/etc/mysql/mariadb.conf.d/50-client.cnf “$DB” > “$FILE”
      gzip “$FILE”
      find “$BACKUP_DIR” -name "${DB}*.sql.gz” -mtime +7 -delete

三、XtraBackup的物理热备与恢复步骤

  • 适用场景:适合需要业务不中断完成备份、支持增量备份以及要求快速恢复的大型 MariaDB/MySQL 数据库实例。
  • 安装(Debian 常见版本):
    wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
    sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
    sudo apt-get update
    sudo apt-get install -y percona-xtrabackup-24(或对应版本)
  • 全量备份与准备
    • 执行全量备份:
      xtrabackup --backup --target-dir=/data/backups/full --user=backup --password=pwd
    • 准备备份(应用 redo 日志,使备份达到一致性状态):
      xtrabackup --prepare --target-dir=/data/backups/full
  • 恢复
    • 停止数据库服务并清理原数据目录:
      sudo systemctl stop mysql
      sudo mv /var/lib/mysql /var/lib/mysql.old
    • 回拷数据文件:
      xtrabackup --copy-back --target-dir=/data/backups/full
    • 修复目录权限并启动服务:
      sudo chown -R mysql:mysql /var/lib/mysql
      sudo systemctl start mysql
  • 增量备份与准备
    • 第一次增量备份(基于全量):
      xtrabackup --backup --target-dir=/data/backups/inc1 --incremental-basedir=/data/backups/full --user=backup --password=pwd
    • 第二次增量备份(基于上一次增量):
      xtrabackup --backup --target-dir=/data/backups/inc2 --incremental-basedir=/data/backups/inc1 --user=backup --password=pwd
    • 准备阶段(按顺序依次应用日志):
      xtrabackup --prepare --apply-log-only --target-dir=/data/backups/full
      xtrabackup --prepare --apply-log-only --target-dir=/data/backups/full --incremental-dir=/data/backups/inc1
      xtrabackup --prepare --target-dir=/data/backups/full --incremental-dir=/data/backups/inc2
    • 完成后再按照“全量恢复”步骤进行回拷并启动数据库。

四 实践建议与注意事项

  • 字符集与一致性
    • 建议统一使用 utf8mb4,导出时显式指定:–default-character-set=utf8mb4;InnoDB 建议配合使用 --single-transaction 获取一致性快照,减少大表备份时的锁表影响。
  • 备份用户与最小权限
    • 建议单独创建专用备份账号:
      CREATE USER ‘backup’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
      GRANT SELECT, SHOW VIEW, RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON . TO ‘backup’@‘localhost’;
      FLUSH PRIVILEGES;
  • 保留与监控
    • 应提前明确备份保留周期(如7 天),定期验证备份文件可用性,例如抽样执行导入测试,同时持续监控磁盘容量与备份任务成功率。
  • 版本与兼容性
    • 跨大版本恢复前建议先进行小范围演练;采用物理备份恢复时,尽量保持 MariaDB/MySQL 版本一致,以降低兼容性和恢复失败风险。
  • 安全
    • 避免在命令行中直接填写密码,优先使用 ~/.my.cnf 或 –defaults-extra-file;同时将备份文件权限限制为 600,并做好安全存储与传输管理。
来源:https://www.yisu.com/ask/82695730.html
上一篇Kafka日志存储策略配置方法与参数详解 下一篇Debian环境下MariaDB主从复制原理详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。