mysql 热备

时间:2022-11-04 11:26:39

全备份:(生成时间戳文件夹:2016-04-20_16-12-01)
innobackupex --users=root --password=root /tmp/backup

第一次增量备份:(生成时间戳文件夹:2016-04-20_16-51-40)
innobackupex --users=root --password=root --incremental /tmp/backup --incremental-basedir=/tmp/backup/2016-04-20_16-12-01

第二次增量备份:(生成时间戳文件夹:2016-04-20_16-56-11)
innobackupex --users=root --password=root --incremental /tmp/backup --incremental-basedir=/tmp/backup/2016-04-20_16-51-40

还原:
#--redo-only只做已提交事务,不回滚未提交事务,相当于sql server的norecovery
#--apply-log,执行--copy-back前,必须用该参数回滚未提交事务
#当下面脚本全部执行过一次后,全备文件夹里面(2016-04-20_16-12-01),已经包含了一增和二增的数据
service mysql stop
rm -rf /usr/local/mysql/data/*
innobackupex --apply-log --redo-only /tmp/backup/2016-04-20_16-12-01
innobackupex --apply-log --redo-only /tmp/backup/2016-04-20_16-12-01 --incremental-dir=/tmp/backup/2016-04-20_16-51-40
innobackupex --apply-log /tmp/backup/2016-04-20_16-12-01 --incremental-dir=/tmp/backup/2016-04-20_16-56-11
innobackupex --copy-back /tmp/backup/2016-04-20_16-12-01
chown -R mysql.mysql /usr/local/mysql/data/
service mysql start

时间点还原:
全备文件夹里面从xtrabackup_binlog_info能找到对应的binlog文件及position位置,再利用mysqlbinlog工具导出
从该position后的所有想要的语句,再应用到已还原的数据库上,即可实现时间点备份

==================================================================================================
备份:--compress 压缩、--parallel=4 多线程加速
innobackupex --compress --parallel=4 --user=root--password="laolu" '/my/bak'

还原:--decompress 解压
innobackupex --decompress /backup/2014-xxxx
innobackupex --apply-log /backup/2014-xxxx
/etc/init.d/mysql stop
rm -rf /my/data
rm -rf /my/log
innobackupex --copy-back /backup/2014-xxxx
chown -R mysql.mysql /my
/etc/init.d/mysql start

innobackupex --socket=/tmp/mysql.sock --user=root --password=hm123. --defaults-file=/etc/my.cnf --database --stream=tar /data/software/db/ 2>/data/software/db/zztx.log | gzip 1>/data/software/db/db.tar.gz

innobackupex --socket=/tmp/mysql.sock --user=root --password=hm123. ./