mysql备份
Mysql,endb
50m
20g
完全+增量
1.full
2.6 hours:incrememntal
mysqldumo --databases endb | gzip -9 endb-‘data+%F‘.gz ====》完全备份
增量备份的数据在二进制日志里面:
mysqldumo --databases --master-data=2(会取得二进制日志文件的起始位置)
endb
mysqlbinlog --start-datetime= --stop-datetime= (备份这一段时间的数据)
基于快照做备份:
1.首先对数据库施加读锁
mysql>flush tables with read lock;
2.记录二进制日志文件的文件名和起始位置
mysql>show master status;
3.退出mysql,创建快照卷
shell#lvcreate
4.解锁数据库
mysql>unlock tables;
5.挂在快照卷,复制数据文件
6.删除快照卷
操作:
1.mysql>flush tables with read lock;
2.mysql>show master status;
mysql-bin.000005 16159
3.shell#lvcreate -L 150M -s -p r -n mybackup /dev/myvg/mydata(对那个卷)
4.unlock tables;
5.mkdir /backup
6.mount -o ro /dev/myvg/mybackup /backup/
7.cd /backup ===>data
对于innodb:备份ib_logfile0 ibdata1 对应数据库文件
myisam:数据库文件的数据都在一个目录
8.(备份文件不要跟当前文件放在一个目录下)
tar jcf /root/data_back-‘date+%F‘.tar.bz2 data/
9. cd /root/
tar xf data_back-2011-12-17.tar.bz2 -C /tmp
cd /tmp
10.rm -rf data/
11.umount /backup
12.lvremove --force /dev/myvg/mybackup
=====>特殊情况,如果此时数据库有操作,可是备份数据没有哟
1.service mysqld stop
2.mysqlbinlog --start-position=16159 --stop-position=16412 mysql-bin.000005 > /root/a.sql
====>切记:二进制日志文件最好备份一下,放在另一个盘或者ssh到其他服务器
3.还原tmp目录下的data目录
4.还原有操作的数据:source /root/a.sql
:属于 几乎热备(物理备份)
开源的企业级工具:zrm baculz
本文出自 “Linux运维” 博客,请务必保留此出处http://2853725.blog.51cto.com/2843725/1377321
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。