备份:副本
RAID1,RAID10:保证硬件损坏而不会业务终止,不能保证逻辑上的破坏
备份类型:
热备份,温备份和冷备份
热备份:读,写都不受影像
温备份:仅可以执行读操作
冷备份:离线备份;读写操作均中止
物理备份和逻辑备份
物理备份:复制数据文件;
逻辑备份:将数据导出至文本文件中;
完全备份,增量备份和差异备份:
完全备份:备份全部数据;
增量备份:仅备份上次完全备份或增量备份后变化的数据:
差异备份:仅备份上次完全备份以来变化的数据
在线:物理完全备份
还原:
备份什么:
数据
配置文件
二进制日志
事务日志
热备份:
MyISAM:温备份
Innodb:可以直接进行热备份 xtrabackp,mysqldump
物理备份:速度块,
逻辑备份:速度慢,丢失浮点数精度;方便使用文本处理工具进行处理,可移植性强;
备份策略:完全+增量;完全+差异
MySQL备份工具
mysqldump 逻辑备份工具,MyISAM温备份,InnoDB热备份
mysqlhotcopy 物理备份工具,温备份
文件系统工具:
cp:冷备份
lv:逻辑卷的快功能,几乎热备;
mysql> flush tables;
mysql> lock tables;
创建快照:释放锁,而后复制数据
InnoDB:
第三组工具:
ibbackup 商业工具
xtrabackup 开源工具
mysqldump:逻辑备份
mysqldump(完全备份)+二进制日志
完全+增量:
mysqldump db_NAME [tb1][tb2]
--master-data=n (n={0|1|2})
0:不记录二进制日志文件及路径位置
1:以chnage master to 的方式记录位置,可用于恢复后直接启动从服务器;
2:以chnage master to 的方式记录位置,但默认为被注释;
--lock-all-tables:锁定所有表
--flush-logs:执行日志flush;
如果指定库中的表类型均为InoDB,可使用(不要和--lock-all-tables同时使用)
--single-transaction启动热备份
备份多个数据库:
--all-databases;备份所有库
--databases DB_NAME,DB_NAME,...:备份指定库
--events
--routines
--triggers
备份多个数据库:
[[email protected] ~]# mysqldump -uroot -p --lock-all-tables --flush-logs --all-databases --master-data=2 > /root/all.sql
[[email protected] ~]# less all.sql 可以查看备份到第几个二进制日志了
mysql> purge binary logs to ‘mysql-bin.000011‘; 删除备份之前的二进制日志
mysql> show binary logs;
增量备份:
mysql> flush logs;
cp mysql-bin.000011 /root/
或者
mysql> mysqlbinlog mysql-bin.000011 > /root/mon-incremental.sql;
使用二进制日志还原数据库
先初始化数据库
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
service mysqld start
mysql -uroot -p < all.sql 导入数据库
mysql -uroot -p < mon-incremental.sql 导入增量备份
mysqlbinlog mysql-bin.000012 > temp.sql
mysql -uroot -p < temp.sql
备份单个数据库或表:
mysql> flush tables with read lock;先刷新表,并且以读的方式锁表
mysql> flush logs;刷新日志
mysql> show binary logs; 查看是从第几个二进制日志开始备份的
[[email protected] ~]# mysqldump -uroot -p students >/root/students.sql 开始备份
可以用vim查看备份文件
mysql> unlock tables; 释放锁
还原单个数据库或表:
mysql> create database studb;还原时需要先创建数据库,再导入数据
[[email protected] ~]# mysql studb< studenst.sql
备份策略:周完成+每日增量
完全备份:mysqldump
增量备份:备份二进制日志文件(flush logs)