mysqldump的关键参数说明:
关键参数:mysqldump --help
1. -B指定多个库,增加建库语句和use语句 *****
2. --compact 去掉注释,适合调试输出,生产不适用
3. -A 备份所有库
4. -F 是刷新binlog日志,生成新的文件,将来增量恢复这个文件开始
5. --master-data增加 binlog日志文件名和对应的位置点(即CHANGE MASTER语句) --master-data=1 不注释可执行语句 --masterd-data=2 注释可执行语句
6. -x --lock-all-tables #锁表
7. -l --lock-tables Lock all tables for read #锁表可读
8. -d 只备份表结构,无数据
9. -t 只备份数据,无结构,SQL语句形式
10. -T 库表和数据分离不同文件,数据是文件形式
11. --single-transaction 适合innodb事务数据库备份
12. -q --quick 不做缓存查询
13. -R 备份存储过程
不同数据备份引擎企业级备份
生产场景不同引擎mysqldump备份命令案例:
myisam引擎企业生产环境备份命令(适合所有引擎或混合引擎)
mysqldump -uroot -p'oldboy123' -A -B -F -R --master-data=2 -x --events|gzip >/opt/all.sql.gz
innodb引擎企业生产环境备份命令:推荐使用
mysqldump -uroot -p'oldboy123' -A -B -F -R --master-data=2 --events --single-transaction|gzip >/opt/all.sql.gz
提示: -F 也可以不用, 与 --master-data有些重复
--master-data作用:
1.使用--master-data=2 进行备份文件会增加如下内容:
适合普通备份增量恢复
--CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000020', MASTER_LOG_POS=1191;
2.使用 --master-data=1 进行备份文件会增加如下内容:
更适合主从复制
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000020',MASTER_LOG_POS='1191';
额外补充:
(一)mysqldump逻辑备份
缺点:效率不是特别高
优点: 简单、方便、可靠
使用于数据量不是特别大的场景:50G以内数据
(二)超过50G的备份方案
1.xtrabackup 物理备份工具:全量和增量
2.物理备份方案:
从库停止SQL线程,打包,cp
(三)什么时候会用到mysqldump的数据?
1、恢复数据到测试库
2.人为同坐SQL将数据删除的时候
3.主从复制
1.数据库恢复注意事项
提示:
数据恢复的和字符集关联很大,如果字符集不正确就会导致恢复的数据乱码
说明:
mysql命令以及source 命令恢复的原理就是把文件的SQL语句,在数据库里重新执行一遍的过程。
利用source命令恢复数据库
步骤如下:
1)进入mysqls数据库控制台,mysql -uroot -p登录后
2)use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
3)source oldboy_db.sql #这个文件是系统路径,默认是登陆mysql前的系统路径
提示:
1)source数据库恢复和字符集关联很大,如果字符集不正确会导致恢复得的数据乱码
2)UTF8数据库,那么恢复的文件格式需要为"UTF8没有签名"格式
2.利用mysql命令恢复(标准)
mysql -uroot -p'oldboy123' -e "use oldboy;drop table student;show tables"
mysql -uroot -p'oldboy123' oldboy
3.针对压缩的备份数据恢复
1.方法1:gzip -d /opt/mysql_bak.sql.gz
mysql -uroot -p'oldboy123'
不删除源备份文件
gzip -cd 01.sql.gz >02.sql
方法2:
gunzip /opt/mysql_bak.sql
mysql -uroot -p'oldboy123'
或者
gunzip