0、备份与恢复概述
数据库要备份的内容:
dababase
数据文件binlog
日志文件my.cnf
配置文件
数据备份要考虑的因素:
- 数据的一致性
- 服务的可用性
数据库的备份模式:
- 完全备份
- 增量备份:在上一次备份的基础上,仅备份有变化的部分。
- 差异备份:在完全备份的基础上,仅备份有变化的部分。
逻辑备份与物理备份的区别:
- 逻辑备份:备份的是SQL语句,效率较低,用于中小型企业。
- 物理备份:备份的具体的数据,效率较高,用于大型企业。
1、逻辑备份-完整备份与恢复
mysql
自带逻辑备份工具mysqldump
,可以保证数据的一致性和服务的可用性。
>mysqldump -h 服务器 -u 用户名 -p 密码 数据库名 > 备份文件.sql
//常用参数
-A,--all-databases #备份所有库
-B,--databases #备份多个库
--single-transaction #保证数据的一致性和服务的可用性
--master-data=1|2 #通常等于1,记录binlog日志位置与文件名,追加至备份文件中
-F,--flush-logs #备份之前刷新日志
-E,--events #备份事件调度器代码
--triggers #备份触发器
-R,--routines #备份存储过程和存储函数
2、逻辑备份-增量备份与恢复
1、使用mysqldump
完整备份
//本地备份
[root@mysql01 ~]# mysqldump -uroot -pcba-123
--all-databases
--single-transaction
--master-data=1
--flush-logs > /backup/mysql/$(date +%F%H)-mysql-all.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
2、查看binlog
日志
[root@mysql01 mysql]# sed -n '22p' /backup/mysql/2019-11-2714-mysql-all.sql
CHANGE MASTER TO MASTER_LOG_FILE='sql_70_161.000002', MASTER_LOG_POS=154;
数据库完整恢复流程(二进制日志)