MySQL备份最佳实践
2022-03-05 13:35 abce 阅读(277) 评论(0) 编辑 收藏 举报
1.逻辑备份
mysqldump
这里只是一个简单的示例
备份指定的数据库:
mysqldump --single-transaction members | gzip - > members.sql.gz
mysqldump --single-transaction --all-databases | gzip - > full_backup.sql.gz
--single-transaction获得一致性备份。
备份还原测试
zcat my_full_backup.sql.gz | mysql
mydumper
mydumper是第三方工具,类似mysqldump,但是提供了很多其它特性,比如并行、一致性读、内嵌压缩;此外,mydumper是将每个表备份到单独的文件,这样更容易还原单个表。
mydumper --compress
还包含了myloader,可以并行还原表。
备份还原测试
myloader --directory dump_dir --overwrite-tables --verbose=3
2.物理备份
Percona XtraBackup
xtrabackup --backup --parallel 4 --compress --target-dir /var/backup/
也可以通过stream的方式,物理备份到单个archive:
xtrabackup --backup --parallel 4 --stream=xbstream > mybackup.xbstream
OR
xtrabackup --backup --stream=tar > mybackup.tar
tar归档不支持并行。
设置可以通过xbcloud备份到S3:
xtrabackup --backup --stream=xbstream | xbcloud put --storage=s3 <S3 parameters> mybackup_s3.blob
还原测试
# Prepare the backup
xtrabackup --prepare --parallel 4 --use-memory 4G --target-dir /var/backup
# Copy backup to original location (ie: /var/lib/mysql), assuming backup taken on same host
xtrabackup --copy-back --target-dir /var/backup
# Fix file permissions if necessary
chown -R mysql:mysql /var/lib/mysql
# Start MySQL
systemctl start mysql
MySQL Enterprise Backup
略
卷快照
LVM和ZFS都支持native快照。在做快照之前,要确保MySQL已经停住了写操作,并将内存中的数据刷新到磁盘。以下是ZFS的示例:
mysql -e 'FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; ! zfs snapshot -r mysqldata/mysql@my_first_snapshot'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2020-03-05 Linux查看SSL证书是否过期