tangbinde 发表于 2018-10-11 07:04:23

玩转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=utf8test 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 root@192.168.11.16:/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 所以,直接 test.sql
  mysql < test.sql

页: [1]
查看完整版本: 玩转mysql备份