mysqldump 的关键参数说明:
mysqldump --help
1.-B 指定多个库,增加建库语句和use语句。
2.--compact 去掉注释,适合调试输出,生产不用。
3.-A 备份所有库。
4.-F 刷新binlog日志。
5.--master-data 增加binlog日志文件及对应的位置点
6.x, --lock-all-tables 在所有数据库中锁定所有表
7.-l, --lock-tables 锁定所有表以供阅读。
8.-d. 只备份表结构
9.-t 只备份数据
10.--single-transaction 适合innodb事务备份。
--master-data=2 作用:有--
--master-data=1 作用:没有-- 从库里在用到
备份库
-B 参数是关键,表示接多个库并且增加use db,和create database db的信息。
~# mysqldump -uroot -p123456 -B zabbix >/opt/mysql_bak.sql
指定对应字符集备份
~# mysqldump -uroot -p123456 -B --default-character-set=latinl zabbix >/opt/mysql_bak.sql
压缩:用gzip 对备份的数据压缩
~# mysqldump -uroot -p123456 -B zabbix |gzip >/opt/mysql_bak.sql.gz
备份多个库
~# mysqldump -uroot -p123456 -B zabbix mysql |gzip >/opt/mysql_bak.sql.gz
多个库的情况下使用命令取反
~# mysql -uroot -p123456 -e "show databases;"|grep -Evi "database|info|perfor" |sed ' s#^#mysqldump -ruoot -p123456 -B #g '
备份表
~# mysqldump -uroot -p123456 库名 表名 >备份文件名
备份表结构(不包括数据)
~# mysqldump -uroot -p123456 --compact -d 库名 表名 >备份文件名
备份表数据
~# mysqldump -uroot -p123456 --compact -t 库名 表名 >备份文件名
备份所有数据
~# mysqldump -uroot -p123456 -A -B --events|gzip >备份文件名
找到文件参数备份的位置
~# mysqldump -uroot -p123456 --master-data=1 --compact 库名 表名 >备份文件名
恢复数据库
~# mysql -uroot -p123456 -B zabbix </opt/mysql_bak.sql
拆库
分库备份缺点:文件多,很碎。
1.备一个完整全备,再做一个分库分表备份。
2.脚本批量恢复多个SQL文件。
~# mysqlbinlog -d mysql mysql-bin.000020 >mysql.sql