完全备份+增量备份完成及时点还原
首先是一些感念
备份类型:
热备份,温备份,冷备份
热备份;读写不受影响;
温备份:仅可以执行读操作;
冷备份:离线备份,读,写操作均终止;
物理备份和逻辑备份
物理备份:复制数据文件
逻辑备份:将数据导出至文本文件中。
完全备份,增量备份和差异备份:
完全备份:备份全部数据
增量备份:仅备份上次完全备份或者增量备份以后变化的数据;
差异备份:仅备份上次完全备份以来变化的数据;
备份策略:每周完全+每日增量
完全备份;mysqldump
增量备份;备份二进制日志文件(flush logs)
开始:
第一天全备份
1 . mysqldump -uroot -p --master-data=2 --flush-logs ---all-databases --lock-all-talbe >/root/alldatabases.sql
2.LESS alldatabase.sql;(查看备份内容)
也可以:
压缩备份:mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
还原压缩的MySQL数据库:gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
3.PURGE BINARY LOGS TO ‘mysql=bin.000011‘;删除bin.00011之前的所有二进制日志;
(先copy一份日志 在删除这个时间点之前的)
show binary logs;查看有哪些二进制日志;
期间数据有些改变,数据库被操作
4.第二天做 增量日志:
mysql>flush logs; flush后mysql-bin.0000011为过去一天的操作日志;
#cd /mydata/data/
#cp mysql-bin.0000011 /root/ 然后备份
#cp mysql-bin.0000012 /root/
或者
#mysqlbinlog mysql-bin.000011 >/root/zhouyizengliang.sql {还原需要.sql文件}
第三天 周二 数据有插入
中途数据挂了 即时点还原:
起动不了,首先初始化数据库
cd /usr/local/mysql/
scripts/mysql_install_db --user=mysql --datadir=/mydata/data
service mysqld start
启动后还原的顺序:
1.先还原全库备份# mysql -uroot -p < alldatabases.sql
再导入增量备份# mysql < /root/zhouyizengliang.sql
2.再将当时滚动产生的#mysql-bin.0000012 备份成sql文件
#mysqlbinlog mysql-bin.000012 -uroot -p > temp.sql
3.导入还原到最新时刻的状态
mysql -uroot -p < temp.sql
2和3 可以用mysqlbinlog mysql-bin.000012 | mysql -uroot -p 代替;