mysql 5.7 备份恢复-2022-5-20

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容