MySQL備份與恢復——基於Xtrabackup物理備份恢復
一、說明
Percona XtraBackup工具提供了一種在執行MySQL資料熱備的方法。Percona XtraBackup是一個免費的、線上的、開源的、完整的資料庫備份解決方案,適用於MySQL和MySQL®的所有版本的Percona伺服器。
Percona XtraBackup在事務系統上執行線上非阻塞、緊密壓縮、高度安全的完全備份,在備份時不會影響應用正常使用。
Percona Xtrabackup是一款開源的備份工具,支援Innodb、Mysiam、Xtradb等儲存引擎資料的線上熱備。其特點是備份速度快,對innodb型業務資料幾乎無影響,對Myisam型資料會暫時性的鎖表,且恢復速度更快。通常,Percona Xtrabackup軟體部署有三種常見的方式,分別是rpm包、二進位制包以及原始碼編譯的方式安裝。建議:使用二進位制包方式安裝,方便快捷。
1.1Percona Xtrabackup優勢
-
快速可靠的資料庫備份(如熱備份、增量備份、bacula備份等)
-
份期間不間斷的事務處理
-
節省磁碟空間和網路頻寬與更好的壓縮
-
自動備份驗證
-
更高的正常執行時間,因為更快的恢復時間
-
於時間點恢復
1.2Percona Xtrabackup軟體下載
1.3Percona Xtrabackup軟體部署
在Linux系統建立/Xtrabackup目錄,上傳介質包percona-xtrabackup-2.3.10-Linux-x86_64.tar.gz
shell> mkdir –p /Xtrabackup sftp> cd /Xtrabackup sftp> put percona-xtrabackup-2.3.10-Linux-x86_64.tar.gz
解壓介質包,並設定環境變數
shell> cd /XtraBackup/ shell> tar zxvf percona-xtrabackup-2.3.10-Linux-x86_64.tar.gz shell> pwd /XtraBackup/percona-xtrabackup-2.3.10-Linux-x86_64/bin shell> vi /etc/profile export PATH=/mysql/app/bin:/XtraBackup/percona-xtrabackup-2.3.10-Linux-x86_64/bin:$PATH shell> source /etc/profile shell> su -
至此,Percona Xtrabackup部署完成。
二、常用的引數列表
常用引數
|
含義 |
-u | 賬戶 |
-p | 密碼 |
-P | 埠 |
-S | 套接字 |
-H | 主機ip |
--defaults-file | 讀取引數檔案位置 |
--databases | 指定資料庫 |
--no-timestamp | 不生成時間戳 |
--slave-info | 獲取主庫端binlog位置 |
--incremental | 建立增量備份 |
--incremental-basedir |
指定full backup目錄 |
--incremental-dir | 增量備份目錄 |
--redo-only | 增量恢復使用 |
--apply-log | 應用日誌
|
--copy-back | 拷貝到相應目錄 |
--move-back | 移動到相應目錄 |
三、備份恢復案例
3.1 全域性備份恢復
3.1.1 全域性備份
innobackupex --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock -uroot -pmysql [--slave-info] /xtrabak
3.1.2 日誌應用
innobackupex --apply-log /Xtrabackup/backup/2018-07-28_15-11-12
3.1.3全域性恢復
innobackupex --defaults-file=/etc/my.cnf --copy-back /Xtrabackup/backup/2018-07-28_15-11-12
注:使用copy-back引數 datadir目錄必須為空
3.2單表/多表備份恢復
3.2.1單表/多表備份
innobackupex --defaults-file=/usr/my.cnf --socket=/tmp/mysql.sock -uroot -proot (-–slave-info) --no-timestamp --databases="yzw.a [yzw.b]" /xtrabak
注:格式為 庫名.表名,可同時將不同庫下表進行匯出
3.2.2日誌應用
innobackupex --apply-log /Xtrabackup/backup/2018-07-28_15-11-12
3.2.3單表恢復
1.恢復準備,應用日誌從開始點到備份結束點
innobackupex --apply-log --export /xtrabackup/backup
2.生產端獲取建表語句並在目標端建立
3.目標端解除安裝ibd檔案
alter table test.a discard tablespace;
4.目標端拷貝備份檔案至庫目錄
cp a.cfg a.exp a.ibd /var/lib/mysql/data/test/
5.目標端修改拷貝檔案許可權
chown -R mysql:mysql /var/lib/mysql/data/test/
6.目標端載入表空間.ibd 檔案
alter table test.a import tablespace;
3.3增量備份恢復
3.3.1增量備份
第一次全量備份
innobackupex --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock -uroot -pmysql --no-timestamp /xtrabak/full
第一次增量備份 注:增量備份必須在全庫備庫基礎上
innobackupex --defaults-file=/etc/my.cnf -uroot -pmysql --socket=/tmp/mysql.sock --no-timestamp --incremental /xtrabak/incre1 --incremental-basedir=/xtrabak/full
第二次增量備份
innobackupex --defaults-file=/etc/my.cnf -uroot -pmysql --socket=/tmp/mysql.sock --no-timestamp --incremental /xtrabak/incre2 --incremental-basedir=/xtrabak/incre1
注:此時incremental-basedir 指向第一次增量備份目錄
3.3.2日誌應用
第一次應用備份檔案
innobackupex --apply-log --redo-only /xtrabak/full
第二次應用備份檔案
innobackupex --apply-log --redo-only /xtrabak/full --incremental-dir=/xtrabak/incre1
第三次應用備份檔案
innobackupex --apply-log /xtrabak/full --incremental-dir=/xtrabak/incre2
注:--redo-only引數 除最後一份增量檔案的應用時不需要新增該引數外,其餘都要加上該引數!!!
3.3.3全域性恢復
innobackupex --defaults-file=/etc/my.cnf --move-back /Xtrabackup/backup/2018-07-28_15-11-12
注:--move-back引數將備份出來檔案直接mv到datadir目錄,建議使用--copy-back
3.4壓縮特性
3.4.1壓縮備份
innobackupex --defaults-file=/etc/my.cnf --user=root --password=mysql --no-timestamp --compress --compress-threads=8 /xtrabak
3.4.2解壓備份檔案
解壓decompress
innobackupex --decompress /xtrabak
注:需要提前安裝qpress命令,安裝方式如下
shell> wget shell> tar xvf qpress-11-linux-x64.tar shell> cp qpress /usr/bin
3.4.3日誌應用
innobackupex --apply-log /xtrabak
3.4.4全域性恢復
innobackupex --defaults-file=/etc/my.cnf --copy-back /xtrabak
3.5流特性
3.5.1流備份
innobackupex --defaults-file=/etc/my.cnf --user=root --password=mysql --stream=tar --no-timestamp /xtrabak 1>/xtrabak/full.tar
注:直接生成tar包
3.5.2解壓備份檔案
tar -xvf full.tar
3.5.3日誌應用
innobackupex --apply-log /xtrabak
3.5.4全域性恢復
innobackupex --defaults-file=/etc/my.cnf --copy-back /xtrabak
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30310891/viewspace-2780801/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql備份與恢復(1)---物理備份MySql
- MySQL 非常規恢復與物理備份恢復MySql
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- 【MySQL】Xtrabackup備份及恢復指令碼MySql指令碼
- MySQL 備份與恢復MySql
- 【Xtrabackup】Xtrabackup全備、增量備份及恢復示例
- RAC備份恢復之Voting備份與恢復
- Mysql備份恢復MySql
- 詳解叢集級備份恢復:物理細粒度備份恢復
- 備份與恢復:polardb資料庫備份與恢復資料庫
- Mysql備份與恢復(2)---邏輯備份MySql
- 基於percona xtrabackup 2.4.14的增量備份恢復還原mysql 5.6MySql
- 《入門MySQL—備份與恢復》MySql
- MySQL備份與恢復——實操MySql
- 入門MySQL——備份與恢復MySql
- MySQL備份與恢復操作解析MySql
- Mysql資料備份與恢復MySql
- OceanBase物理備份恢復實踐
- 物理冷備份與恢復的操作命令
- 【MySQL】MySQL備份和恢復MySql
- MySQL運維實戰之備份和恢復(8.1)xtrabackup全量備份MySql運維
- Jenkins備份與恢復Jenkins
- Postgresql 備份與恢復SQL
- 使用Xtrabackup完整備份中恢復單表
- Mysql的幾種備份與恢復MySql
- MySQL入門--備份與恢復(三)MySql
- MySQL入門--備份與恢復(一)MySql
- MySQL入門--備份與恢復(二)MySql
- MySQL 日誌管理、備份與恢復MySql
- mydumper備份恢復
- 備份和恢復
- Oracle 備份 與 恢復 概述Oracle
- DB的備份與恢復
- GitLab的備份與恢復Gitlab
- docker 中 MySQL 備份及恢復DockerMySql
- GitLab的自動備份、清理備份與恢復Gitlab
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫