数据库的备份可以防止服务器宕机、磁盘损坏、RAID卡损坏等意外情况下产生的数据丢失。
MySQL的备份工具:
mysqldump
ibbackup
replication
LVM快照
或者第三方工具xtrabacup等
数据库的备份方法
根据备份方法划分:
1:热备
2:冷备
根据备份文件划分:
1:逻辑备份:mysqldump和SELECT * INTO OUTFILE等之类的。
2:物理备份:使用ibbackup、xtrabackup之类的工具复制物理文件。
按照备份内容划分:
1:完全备份:对全库的备份。
2:增量备份:对部分更改库的备份。一般通过二进制日志完成
ps:增量备份是通过检查每页最后的检查点LSN,如果大于之前全备的LSN,则备份该页,否则,略过。这就是xtrabackup的备份原理,在数据量比较大的情况下大大减少备份和恢复的时间。
对于Innodb存储引擎,用mysqldump备份时最好加上 --single-transaction选项用来保证数据的一致性
一般情况下备份通过自动化脚本完成
1:根据备份策略自动备份
2:监控备份
3:如果有异常通知DBA
4:最好有远程的异地备份
备份全库:
[root@10-4-14-168 mysql]# mysqldump -uroot -p --all-databases >/root/backupdata/20140918_alldb.sql
备份部分库
[root@10-4-14-168 backupdata]# mysqldump -uroot -p --databases mysql test >/root/backupdata/20140918_2db.sql
确保数据一致性
--single-transaction 可以保证备份数据的一致性
[root@10-4-14-168 backupdata]# mysqldump -uroot -p --single-transaction test>/root/backupdata/20140918_test.sql Enter password:
--lock-tables (-l) 一般适用于MyISAM存储引擎
--master-data 主要用来建立一个replication
当--master-data = 1 :转存文件记录CHANGE MASTER
当--master-data = 2:转存文件注释CHANGE MASTER