备份策略:一周一全量,一天一增量(mysqldump备份,使用-F实现日志切割)
mysqldump全量备份:
mysqldump -uroot -pXXX -S /XXX/mysql.sock -F -A |gzip >/server/backup/mysqlbak_$(date+%F).sql.gz
全量备份不携带GTID的数据导出:
#mysqldump -uroot -p --set-gtid-purged=OFF -A -F --master-data=2 > /tmp/no-gtid-all-db-flush-log.sql
# --single-transaction,给所有数据库加锁,防止数据写入,导致备份错误
# --master-data 将binlog的信息以注释形式备份
# -R 导出mysql自定义函数
# -E 导出events事件
# --triggers 导出所有数据表的触发器
Xtrabackup 物理备份
基于命令的备份(和cp类似),备份数据库的数据目录
需要给机器设置基于GTID的模式运行
全量备份:
innobackupex --user=root --password=XXX -S /tmp/mysql.sock /xtrabackup_data/
--no-timestamp :不使用该工具自带时间戳,自定义目录时间戳
innobackupex --user=root --no-timestamp --password=XXX -S /tmp/mysql.sock /xtrabackup_data/ full_3306_db_$(date +%F)/
恢复全量备份的数据:(不支持不同版本mysql恢复)
1.mv移走自带数据
2.xtrabackup准备备份目录
innobackupex --apply-log 原来备份好的数据路径
3.使用xtrabackup命令恢复
innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync 原来备份好的数据路径
4.重新授权给mysql
5.重启mysql,测试访问
增量备份:
# --incremental-basedir 以哪个目录为基础数据目录,然后进行增量备份
# --incremental 增量备份的数据,放到哪
增量合并到全量
每一个备份的数据,都要用该参数 --apply-log ,提交,回滚事务,确保数据一致性
--redo-only 只要不是最后一次合并,都要加这个参数
把增量备份数据,逐步合并到全量备份数据,然后直接执行合并后的全量备份数据
----待