不停业务,能一致性恢复
关闭数据库业务
锁表备份,只能查询不能修改
mysqldump(压缩比高,可读性 mysqlbinlog
cp xtrabackup(性能高
全备: mysqldump -A > /bak/full.sql 只备份某个表: mysqldump -uroot -p dbname table1 table2 >/backup/bak1.sql 在备份开始时,刷新一个新的binlog日志: -F --master-data=0 默认值 --master-data=1 以change master to命令形式,可以用作主从复制 --master-data=2 以注释形式记录,备份时刻的文件名+position号 --single-transation 不加的时候会锁表,加此参数innodb不锁表热备,可提高速度
select concat ("mysqldump -uroot -p1 ", table_schema,' ',table_name , ' > /bak/',table_schema,'_',table_name,'.sql') from information_schema.tables where table_schema='WW' into outfile '/tmp/dump.sh';
mysqldump -uroot -p -A -R --triggers --master-data=2 --single-transation > /bak/full.sql
0.初始化数据库,并启动 mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data /etc/init.d/mysqld start 1.恢复昨晚全备 set sql_log_bin=0; source /bak/full.sql 2.找到binlog,并截取 head -10 /bak/full.sql show master status; show binary logs; mysqlbinlog --start-postion=120 /data/mysql/mysql-bin.000 > /bak/binlog.sql source /bak/binlog.sql
mysqldump -uroot -p -A -R --triggers --master-data=2 --single-transation | gzip > /bak/all_$(date +%F-$T).sql.gz 若报错超出 max_allowed_packet大小,备份时指定最大数据包大小 --max_allowed_packet=128M
1.非innodb,锁定表,直接表的数据文件 2.备份开始时刻,立即触发checkpoint,将内存数据刷到磁盘,拷贝此时所有的数据文件(LSN=1000),在此过程中产生的日志文件(to_lsn=1000 redo last_lsn=1020 和undo)也进行备份
innobackupex --user=root --password=123 -no-timestamp /bak/full
周一的备份
innobackupex --user=root --password=123 --no-timestamp --incremental-basedir=/bak/full --incremental /bak/inc1
incremental-basedir= 上次备份的路径
--incremental 打开增量备份功能
周二的备份
innobackupex --user=root --password=123 --no-timestamp --incremental-basedir=/bak/inc1 --incremental /bak/inc2
-查看各个备份的LSN信息
cat /bak/full/xtrabackup_checkpoints /bak/inc1/xtrabackup_checkpoints /bak/inc2/xtrabackup_checkpoints
(注意看from LSN/to LSN)
准备备份
--apply-log (redo+undo)
--redo-only(redo)
全备准备
innobackupex --apply-log --redo-only /bak/full
第一次增量合并
innobackupex --apply-log --redo-only --incremental-basedir=/bak/inc1 /bak/full
第二次增量合并
innobackupex --apply-log --incremental-basedir=/bak/inc2 /bak/full
全备再次准备
innobackupex --apply-log /bak/full
单独恢复单表
alter table t1 discard tablespace;
alter table t1 import tablespace;