mysql學習筆記之備份與恢復
5 .備份恢復
相關關鍵詞:
策略規劃,恢復演練,還原與恢復
恢復點目標(PRO):容忍丟失多少資料
恢復時間目標(RTO):需要多久將資料恢復
備份理由:災難恢復,錯誤修改,審計,測試
5.1 邏輯備份與恢復
5.1.1 備份
##檢視幫助
mysqldump --help
##備份某個表
mysqldump -uroot -h127.0.0.1 -p'password' sakila test > sakila_test.sql
##備份某個資料庫
mysqldump -uroot -p'password' -h127.0.0.1 --single-transaction --triggers --routines --databases sakila > sakila.sql
##備份所有資料庫
mysqldump --single-transaction --quick --flush-logs --master-data=2 --all-databases --triggers --routines --events --set-gtid-purged=off > backup.sql
5.1.2 恢復
1. 完全恢復
##檢視當前二進位制日誌
mysql> show master status;
##備份時切換日誌,並記錄後續日誌,如新日誌從mysql-bin.000007 開始
##讀取增量的二進位制日誌
mysqlbinlog --skip-gtids mysql-bin.000007 > bin7.sql
mysqlbinlog --skip-gtids mysql-bin.000008 > bin8.sql
##完全恢復
mysql> source backup.sql;
mysql> source bin7.sql;
mysql> source bin8.sql;
2. 基於時間點的恢復
shell> mysqlbinlog --stop-date="2019-09-11 9:59:59" mysql-bin.000007 > bin7_pos1.sql
shell> mysqlbinlog --start-date="2019-09-11 10:01:01" mysql-bin.000007 > bin7_pos2.sql
shell> mysqlbinlog --skip-gtids mysql-bin.000008 > bin8.sql
mysql> source backup.sql;
mysql> source bin7_pos1.sql;
mysql> source bin7_pos2.sql;
mysql> source bin8.sql;
3. 基於位置的恢復
shell>mysqlbinlog --start-date="2019-09-11 9:59:59" --stop-date="2019-09-11 10:01:01" mysql-bin.000007 >bin7_pos.sql
#找到位置號,如3601 和 3609
shell> mysqlbinlog --stop-position="3601" mysql-bin.000007 > bin7_pos1.sql
shell> mysqlbinlog --start-position="3609" mysql-bin.000007 > bin7_pos2.sql
mysql> source backup.sql;
mysql> source bin7_pos1.sql;
mysql> source bin7_pos2.sql;
mysql> source bin8.sql;
5.1.3 mysqlpump備份與恢復
```shell 略
## 5.2 物理備份
### 5.2.1 Xtrabackup安裝
1.新增源
```shell
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
##檢查
yum list|grep percona-xtrabackup-24.x86_64
2.安裝
##缺少依賴包libev.so.4的處理
rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
##安裝
rpm -ivh percona-xtrabackup-80-8.0.7-1.el7.x86_64.rpm
5.2.2 備份原理
5.2.3 全量熱備份
##建立備份使用者
create user 'backup'@'%' identified by 'Bk_123456';
grant reload,lock tables,replication client,create tablespace,process,super on *.* to 'backup'@'%';
##普通備份
innobackupex --default-file=/data/mysql/3306/my3306.cnf --host=192.168.56.16 --user=backup --password='Bk_123456' --datadir=/data/mysql/3306/data --port=3306 --slave-info --no-timestamp /home/mysql/backup/dbfull_3306_`date '+%Y%m%d_%H%M'`
##流式壓縮備份
innobackupex --default-file=/data/mysql/3306/my3306.cnf --host=192.168.56.16 --user=backup --password='Bk_123456' --datadir=/data/mysql/3306/data --port=3306 --no-timestamp --stream=xbstream -> /home/mysql/backup/backup.xbstream.`date '+%Y%m%d_%H%M'`
##加密備份
innobackupex --default-file=/data/mysql/3306/my3306.cnf --host=192.168.56.16 --user=backup --password='Bk_123456' --datadir=/data/mysql/3306/data --port=3306 --encrypt=AES256 --encrypt-threads=10 --encrypt-key=111111111111111111111111 --encrypt-chunk-size 512 --no-timestamp --stream=xbstream -> /home/mysql/backup/backup.xbstream.encrypt.`date '+%Y%m%d_%H%M'`
5.2.4 增量熱備份
##普通增量
innobackupex --defaults-file=/data/mysql/3306/my3306.cnf --host=192.168.56.16 --user=root --password='password' --datadir=/data/mysql/3306/data --incremental-basedir=/data/mysql/backup/2019-09-11_16-47-59 --incremental /data/mysql/backup/increment
##流式加密增量
innobackupex --defaults-file=/data/mysql/3306/my3306.cnf --host=192.168.56.16 --user=root --password='password' --datadir=/data/mysql/3306/data --incremental-basedir=/data/mysql/backup/2019-09-11_16-47-59 --incremental --compress --compress-threads=10 --encrypt=AES256 --encrypt-threads=10 --encrypt-key=111111111111111111111111 --stream=xbstream ./ > /data/mysql/backup/increment/increment.stream
如果是第二次增量,—incremental-basedir= 上次增量的目錄
5.3 物理恢復
5.3.1 全量備份的恢復
##流式解壓
mkdir /home/temp
xbstream -x < /data/mysql/backup/backup.xbstream -C /home/temp
innobackupex --decompress --decrypt=AES256 --encrypt-key=1111111111111111111111111 /home/temp
innobackupex --copy-back --defaults-file=/data/mysql/3306/my3306.cnf /home/temp
##應用redo
innobackupex --host=192.168.56.16 --user=backup --password='Bk_123456' --apploy-log /home/mysql/backup/2019-09-12_10-18-57
##恢復全備(關閉資料庫,清空資料目錄)
innobackupex --default-file=/data/mysql/3306/my3306.cnf --datadir=/data/mysql/3306/data --copy-back /home/mysql/backup/2019-09-12_10-18-57
chown -R mysql:mysql /data/mysql
5.3.2 增量備份的恢復
##
innobackupex --host=192.168.56.16 --user=backup --password='Bk_123456' --apply-log --redo-only /home/mysql/backup/2019-09-12_10-18-57
##
innobackupex --host=192.168.56.16 --user=backup --password='Bk_123456' --apply-log --redo-only /home/mysql/backup/2019-09-12_10-18-57 --incremental-dir=/data/mysql/backup/increment/2019-09-12_09-11-23
##
innobackup --host=192.168.56.16 --user=backup --password='Bk_123456' --apply-log /home/mysql/backup/2019-09-12_10-18-57 --incremental-dir=/data/mysql/backup/increment/2019-09-13_09-11-50
##恢復全備(關閉資料庫,清空資料目錄)
innobackupex --default-file=/data/mysql/3306/my3306.cnf --datadir=/data/mysql/3306/data --copy-back /home/mysql/backup/2019-09-12_10-18-57
chown -R mysql:mysql /data/mysql
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69915315/viewspace-2682606/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql 企業級備份與恢復(學習筆記七)MySql筆記
- MySQL 備份與恢復MySql
- RAC備份恢復之Voting備份與恢復
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- Mysql備份與恢復(1)---物理備份MySql
- MySQL 非常規恢復與物理備份恢復MySql
- Mysql備份與恢復(2)---邏輯備份MySql
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- 《入門MySQL—備份與恢復》MySql
- MySQL備份與恢復——實操MySql
- 入門MySQL——備份與恢復MySql
- MySQL備份與恢復操作解析MySql
- Mysql資料備份與恢復MySql
- MySQL:Innodb恢復的學習筆記MySql筆記
- Mysql備份恢復MySql
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- Mysql的幾種備份與恢復MySql
- MySQL入門--備份與恢復(三)MySql
- MySQL入門--備份與恢復(一)MySql
- MySQL入門--備份與恢復(二)MySql
- MySQL 日誌管理、備份與恢復MySql
- 【MySQL】MySQL備份和恢復MySql
- 備份與恢復:polardb資料庫備份與恢復資料庫
- Jenkins備份與恢復Jenkins
- Postgresql 備份與恢復SQL
- MySQL-19.資料庫備份與恢復MySql資料庫
- Oracle 備份恢復之 FlashbackOracle
- docker 中 MySQL 備份及恢復DockerMySql
- Oracle 備份 與 恢復 概述Oracle
- DB的備份與恢復
- GitLab的備份與恢復Gitlab
- MySQL運維實戰之備份和恢復(8.1)xtrabackup全量備份MySql運維
- 《MySQL 入門教程》第 06 篇 備份與恢復MySql
- Linux下MySQL資料庫的備份與恢復LinuxMySql資料庫
- 【MySQL】Xtrabackup備份及恢復指令碼MySql指令碼
- Mysql資料庫備份及恢復MySql資料庫
- MySQL8.4備份恢復快速命令MySql
- MySQL日誌管理,備份和恢復MySql