完全备份+增量备份完成及时点还原

首先是一些感念


 备份类型:

    热备份,温备份,冷备份

    热备份;读写不受影响;

    温备份:仅可以执行读操作;

    冷备份:离线备份,读,写操作均终止;

  

 物理备份和逻辑备份

    物理备份:复制数据文件

    逻辑备份:将数据导出至文本文件中。

   

完全备份,增量备份和差异备份:

    完全备份:备份全部数据

    增量备份:仅备份上次完全备份或者增量备份以后变化的数据;

    差异备份:仅备份上次完全备份以来变化的数据;



备份策略:每周完全+每日增量 


    完全备份;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 代替;