玩转mysql备份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了玩转mysql备份相关的知识,希望对你有一定的参考价值。

相关名词解释:
 全量: 全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份。
 增量: 增量数据是从上次全量备份之后,更新的新数据。(binlog就是增量数据)
      譬如:上次全量备份时间是2017/01/02,那么之后产生的binlog日志就是增量数据(mysql-bin.000024)
 举例说明:
     相对于2017/01/02全量备份的增量是:
             从2017/01/02全量备份刷新binlog后开始到下次全量备份之前的binlog数据称为这次全量备份的增量数据
     结论: 周一的全量 加周一的增量就是周二的全量,因此周二全量有了,周一的全量和增量就没用了。
相关参数解释:
  -A   全部库
  -B   指定库
  -F   刷新binlog
  -S   备份远程库用
  -h   远程IP
  -p   远程端口
  -u   用户名
  -P   密码
  --lock-all-tables    锁全表
  --single-transaction 锁innodb表

对整个数据库进行备份:
  mysqldump -uroot -p123456 -S /var/lib/mysql/mysql.sock --events  -A --compact --default-character-set=utf8 -F |gzip  > mysql_all_$(date +%F).sql.gz
对数据库test进行一次全量备份:
  mysqldump -u root -p123456 -S /var/lib/mysql/mysql.sock --events --compact --default-character-set=utf8 -B test -F|gzip > mysql_test_$(date +%F).sql.gz
指定数据库备份:
  mysqldump -u root -p123456 -S /var/lib/mysql/mysql.sock --events --compact --default-character-set=utf8 -B test demo -F|gzip > mysql_test_$(date +%F).sql.gz
指定数据库中表备份:
  mysqldump -u root -p123456 -S /var/lib/mysql/mysql.sock --events --compact --default-character-set=utf8  test test_2 test_1  -F|gzip > mysql_test_$(date +%F).sql.gz

备份表结构:
  mysqldump -u root -p123456 -S /var/lib/mysql/mysql.sock --events --compact --default-character-set=utf8  -B test -d |gzip > mysql_test_$(date +%F).sql.gz
 
恢复备份:
scp ./mysql_test_2017-01-17.sql.gz [email protected]:/home/yeqing/
gunzip mysql_test_2017-01-17.sql.gz
或者 gzip -d mysql_test_2017-01-17.sql.gz
use test
set names utf8
source mysql_test_2017-01-17.sql
或者
mysql -uyeqing -p123456 < mysql_test_2017-01-17.sql

注意: 上述未加-A 或-B参数,就没有打开数据库语句: use database 所以,直接<导,不一定能成功。只能用source。

恢复增量(注意先恢复增量再恢复binglog)
mysqlbinlog mysql-bin.000010 > test.sql
mysql < test.sql

本文出自 “开发与运维” 博客,谢绝转载!

以上是关于玩转mysql备份的主要内容,如果未能解决你的问题,请参考以下文章

十分钟玩转Mysql的binlog,小白也可以实现增量备份数据

十分钟玩转Mysql的binlog,小白也可以实现增量备份数据

mysql到底如何备份

mysql怎么操作备份

如何对mysql备份

mysql5.7备份