# 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密碼查看與修改