mysqldump备份恢复

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

你可能感兴趣的:(mysqldump备份恢复)