mysql全量备份与增量备份

1.全量备份mysql

       简单的说就是将全部数据库或一个库所有备份。web

2.增量备份sql

        从上一次全量备份以后到下一次全量备份以前都叫作增量备份。数据库


对于mysql,binlong日志就是mysql数据,对binlong的备份就是对mysql的备份。bash


备份的时候要锁表,影响用户体验,因此备份的频率各有优缺点。
ide


mysql的mysqldump备份何时派上用场?日志

  1. 迁移或者升级数据库时,blog

  2. 增长从库的时候ip

  3. 人为的DDLDML语句,主库没有办法了,全部库都会执行,恢复备份ci

  4. 跨机房灾备,须要备份到异地。



mysql数据恢复的必要条件

   1.开启binlog,存在一份全备以后的时候到出问题时刻的全部增量的binlog文件备份。

 所有备份的命令:

[root@localhost ~]# mysqldump -uroot -p123456 -F --single-transaction -A -B | gzip > test.sql.gz


备份数据和恢复数据的时候,必定要将表锁住。


模拟一下:

  1. 先对一个库进行全量备份:

#mysqldump -uroot -p123456 -B --master-data=1 -F xpg | gzip > xpg_$(date +%F).sql.gz

2.而后使用insert给xpg这个库插入两条数据

3.使用drop  database dbname;删除这个库,等等

4.就是沟通谁进行的什么操做并结合binlog日志

5.下来就是重点:恢复,首先将表锁住,或者中止web服务禁止向mysql里面写数据。

6.先将全量备份的数据进行恢复,因为使用选项-F指定过,因此接下来的操做会写入到新的binlog日志文件中,将下来的文件中的sql语句提取出来,固然不要drop命令,而后执行一下sql命令就行了。


*须要注意的是,若是不是drop,而是update破坏数据,解决起来就复杂,为了防止update的错误操做:在登录mysql的时候使用选项

-U:做用就是在执行update的时候若是不使用where条件判断就会报错。能够将mysql -U添加到别名里面;

image.png


另外一种方法指定开赴位置和结束位置

选项:--start-position  --stop-position

相关文章
相关标签/搜索