mysql数据库备份与恢复

(1)全量备份:数据库中所有数据的备份 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mysqldump  -u  root  -p  -F -B -A |gzip >/server/backup/mysqlbak_$(date +%F).sql.gz
备份格式为:
mysqlbak_2016-04-19.sql.gz
 
mysqldump  -u  root  -p  -F -B -A  |gzip >/server/backup/mysqlbak_$(date +"%d-%m-%Y").sql.gz  
 
备份格式为:mysqlbak_19-04-2016.sql.gz
 
 
备份一个库(例如zabbix库)
mysqldump  -u  root  -p  -F -B zabbix |gzip >/server/backup/mysqlbak_$(date +%F).sql.gz
备份格式为:
mysqlbak_2016-04-19.sql.gz
 
mysqldump  -u  root  -p  -F -B zabbix   |gzip >/server/backup/mysqlbak_$(date +"%d-%m-%Y").sql.gz  
 
备份格式为:mysqlbak_19-04-2016.sql.gz

 2、增量备份

    增量数据是从上次全量备份之后更新的新数据,对于mysql来说binlog日志就是增量备份。

mysql备份数据:备份保留时间(一周   180天)

按天备份

mysql数据库备份与恢复

优点:

    恢复时间短

    维护成本低

缺点:

    占用空间多

    占用系统资源多

    经常锁表影响用户体验

 按周全备

mysql数据库备份与恢复

优点:

    占用空间少

    占用系统资源少

    锁表的次数少

缺点:

    维护成本高 

    恢复麻烦 

    时间长

企业使用方案:

(1)中小企业  全量一般每天一次,业务流量低估执行全备,备份时会锁表;

(2)单台数据库 如何增量  用rsync(配合定时任务频率大点或者inotify)主从复制,把所有的binlog备份到远程服务器,尽量做主从复制;

增量备份的例子:

1
2
rsync  -avz   /var/lib/mysql/mysql-bin.00* [email protected]:backup  
--password-file=/etc/rsync.passwd

(3)大公司周备。每周六00点一次全量,下周日-下周00点前都是增量

  优点:节约备份时间,减少备份压力,缺点;增量的binlog日志文件副本太多,还原麻烦

(4)一主多从  会有一个从库做备份,延迟同步

Mysql的mysqldump备份什么时候派上用场?

1、迁移或者升级数据库时

2、增加从库时

3、如果因为硬件或者特殊异常情况,主机或从库宕机,主从可以切换无需备份

4、人为的DDL、DML语句,主从库没办法,所有库都会执行,此时需要备份

5、跨机房灾备,需要备份到异地

一般由人为或者程序的逻辑方式在数据库执行时候出现误操作,导致数据出现丢失之类,需要数据恢复。

Mysql增量恢复的必备条件

1、开启mysql log-bin日志

mysql数据库备份与恢复

一般情况下间所有的数据写入到全部停掉。可以用防火墙拒绝或者负载均衡器停掉



本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1840925,如需转载请自行联系原作者