AI 迁移提示
本文由 AI 协助从旧站迁移,尚未完成逐篇人工审校;内容如有疏漏,将在复核后修订。
Xtrabackup 是 Percona 公司开发的 MySQL 开源热备份工具,支持在不停止数据库服务的情况下进行全量和增量备份。
一、安装
# 下载二进制包 wget https://downloads.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.1.0-1/binary/tarball/percona-xtrabackup-8.1.0-1-Linux-x86_64.glibc2.17.tar.gz # 解压并安装 tar -zxvf percona-xtrabackup-8.1.0-1-Linux-x86_64.glibc2.17.tar.gz mv percona-xtrabackup-8.1.0-1-Linux-x86_64.glibc2.17 /app/xtrabackup # 配置软链接(使命令全局可用) ln -sf /app/xtrabackup/bin/* /usr/bin/ # 验证安装 xtrabackup --version
二、MySQL 配置要求
备份前需在 /etc/my.cnf 中启用 GTID:
gtid_mode=ON enforce_gtid_consistency=ON
三、创建备份专用用户
MySQL 8.1 起必须使用非 root 用户执行备份:
-- 创建备份用户 CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cr%T'; -- 授予必要权限 GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost'; GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'localhost'; GRANT SELECT ON performance_schema.keyring_component_status TO 'bkpuser'@'localhost'; GRANT SELECT ON performance_schema.replication_group_members TO 'bkpuser'@'localhost';
提醒
各权限用途说明:
RELOAD:执行FLUSH TABLES WITH REDO LOCKREPLICATION CLIENT:查询 binlog 位点信息BACKUP_ADMIN:执行LOCK INSTANCE FOR BACKUPPROCESS:查询 InnoDB 状态和进程列表
四、全量备份
mkdir -p /app/backup # 执行全量备份(带压缩) xtrabackup --backup \ --slave-info \ -u bkpuser \ -H 127.0.0.1 \ -P 3306 \ -p 's3cr%T' \ --compress \ --parallel=5 \ --target-dir=/app/backup/backup_$(date +"%F_%H_%M_%S")
直接压缩为 gz 文件:
xtrabackup --backup -u bkpuser -H 127.0.0.1 -P 3306 -p 's3cr%T' \ --stream=xbstream | gzip > /app/backup/backup_$(date +"%F_%H_%M_%S").gz
评论区
评论加载中...