# MySQL的备份与恢复
### **查看MySQL的备份数据** (重要)
```
egrep -v "#|\/|^$|--" /mnt/database_bak.sql
```
### MySQL查看bin-log日志的方法
```
mysqlbinlog mysql-bin.000001
```
### 拆分总的binlog为指定库的增删改操作(恢复指定库的binlog时使用)
```
mysqlbinlog -d test mysql-bin.000001
```
### 基于位置点的增量恢复
#### 指定开始位置和结束位置
`mysqlbinlog mysql-bin.000001 --start-position=510 --stop-position=1212 -r pos.sql` # 输出初始位置510,结束位置1212的所有binlog日志到pos.sql文件中
> 注意:结尾的日志点比较特殊,不会被包含。即输出1212pos点以前的binlog。位置点信息一般要实际存在,不能随意指定。
#### 指定开始位置到文件结束
`mysqlbinlog mysql-bin.000001 --start-position=510 -r pos510toend.sql` # 输出初始位置510到binlog文件结尾的所有binlog到指定文件`pos510toend.sql`中,也可以指定库名输出binlog,例如:
`mysqlbinlog mysql-bin.000001 --start-position=510 -r pos510toend.sql -d test`
#### 从文件开头到指定结束位置
### 增量恢复思想
1. 流程制度控制。如果不做,将面临服务和数据,鱼和熊掌不可兼得。
2. 信息做监控,黑名单,白名单机制,延迟备份解决。
3. 业务需求,选择停库。
### 增量恢复
1. 人为SQL造成的误操作
2. 全备和增量
3. 恢复时建议对外停止更新
4. 恢复全量,然后把增量日志中有问题的SQL语句删除,恢复到数据库
### MySQL的物理备份
```
mysqldump -uroot -paaaaaa -B database > /data/bak/3306.sql
```
### MySQL的物理还原
```
mysql -uroot -paaaaaa </data/bak/3306.sql
```
- 写在前面
- MySQL的使用
- MySQL多表同时删除方案
- MySQL跨表、多表更新SQL语句总结
- MySQL存储引擎
- 安装
- 常规方式编译安装MySQL
- 采用cmake方式编译安装MySQL
- 使用rpm包安装MySQL
- 使用yum方式安装MySQL
- 采用二进制方式免编译安装MySQL
- 多实例的安装
- 什么是多实例
- 多实例的作用、问题以及应用场景
- 多实例安装01【推荐】
- 多实例官方安装方案02
- 启动、用户和权限管理
- 单实例MySQL的启动和关闭的方法
- 设置及修改MySQL root用户密码
- 找回丢失的MySQL root用户密码
- 创建MySQL用户及用户权限管理
- 基础命令的操作
- MySQL库和表相关操作
- MySQL中的索引操作
- MySQL常用命令
- MySQL的错误代码
- MySQL复习秘籍
- 备份与恢复
- 备份
- 恢复
- mysqlbinlog命令
- 服务日志
- 主从复制
- 主从复制部署配置问题汇总
- 主从复制读写分离
- 灾难恢复
- 配置phpmyadmin连接多实例MySQL
- 其他相关
- Sphinx实验
- 中文分词技术
- MySQL语句大全
- 用户创建、权限、删除
- 数据库与表显示、创建、删除
- 表复制及备份还原
- 数据库表中数据操作
- 修改表的列与表名
- 修改表中的数据
- 查询表
- 日志
- 批量修改Mysql表引擎为InnoDB的方法
- 数据库抽象层 PDO
- PDO对象常用方法
- PDO 事务处理
- PDO 与 MySQLi 二者效率简单比较
- 大小写敏感性 lower_case_table_names
- CentOS7安装MySQL5.7密码查看与修改