利用XtraBackup進行MySQL資料庫的備份

來源:互聯網
上載者:User

利用XtraBackup進行MySQL資料庫的備份

Xtrabackup是有percona公司開發的一款開源備份工具,它與ibbackup這個備份工具不同的是。ibbackup是一個收費的備份工具,而且在其備份效能上,ibbackup不如Xtrabackup。ibbackup和Xtrabackup都對Innodb儲存引擎支援線上物理完全備份和線上物理增量備份,對MyISAM儲存引擎來說,只支援溫備份而已。更對關於兩者的特性比較,請參考http://www.percona.com/software/percona-xtrabackup。

利用Xtrabackup備份mysql資料庫步驟如下:

一、安裝

1、簡介
Xtrabackup是由percona提供的mysqlDatabase Backup工具,據官方介紹,這也是世界上惟一一款開源的能夠對innodb和xtradb儲存引擎的資料庫進行熱備的工具。xtradb是Innodb的增強版,在其效能上比Innodb要好,特點如下:
(1)備份過程快速、可靠;
(2)備份過程不會打斷正在執行的事務;
(3)能夠基於壓縮等功能節約磁碟空間和流量;
(4)自動實現備份檢驗;
(5)還原速度快;

2、安裝
其最新版的軟體可從 http://www.percona.com/software/percona-xtrabackup/ 獲得。本文基於RHEL5.8的系統,因此,直接下載相應版本的rpm包安裝即可,這裡不再示範其過程。

安裝完成之後,會產生一個/usr/bin/innobackupex指令檔,這個指令檔封裝了xtrabackup,能同時處理Innodb和Myisam,但在處理Myisam時需要加一個讀鎖。

3、innobackupex簡介

innobackupex
innobackupex有更強的功能,它整合了xtrabackup和其他的一些功能,他不但可以全量備份/恢複,還可以基於時間的增量備份與恢複。

innobackupex備份原理
innobackupex首先調用xtrabackup來備份innodb資料檔案,當xtrabackup完成後,innobackupex就查看檔案xtrabackup_suspended ;然後執行“FLUSH TABLES WITH READ LOCK”來備份其他的檔案

innobackupex恢複原理
innobackupex首先讀取my.cnf,查看變數(datadir,innodb_data_home_dir,innodb_data_file_path,innodb_log_group_home_dir)對應的目錄是存在,確定相關目錄存在後,然後先copy myisam表和索引,然後在copy innodb的表、索引和日誌

Percona XtraBackup 2.2.6 發布,此版本現已提供在下載頁面和Percona 軟體庫。此版本支援 Ubuntu 14.10 和 CentOS7。

MySQL管理之使用XtraBackup進行熱備

MySQL開源備份工具Xtrabackup備份部署

MySQL Xtrabackup備份和恢複

用XtraBackup實現MySQL的主從複製快速部署【主不鎖表】

安裝和使用 Percona 推出的 Xtrabackup 備份 MySQL

二、備份的實現

1、完全備份

# innobackupex --user=DBUSER --password=DBUSERPASS  /path/to/BACKUP-DIR/

如果要使用一個最小許可權的使用者進行備份,則可基於如下命令建立此類使用者:
mysql> CREATE USER ’bkpuser’@’localhost’ IDENTIFIED BY ’s3cret’;
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ’bkpuser’;(如果出錯,則可以不加上)
mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO ’bkpuser’@’localhost’;
mysql> FLUSH PRIVILEGES;

使用innobakupex備份時,其會調用xtrabackup備份所有的InnoDB表,複製所有關於表結構定義的相關檔案(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相關檔案,同時還會備份觸發器和資料庫配置資訊相關的檔案。這些檔案會被儲存至一個以時間命名的目錄中

在備份的同時,innobackupex還會在備份目錄中建立如下檔案:
(1)xtrabackup_checkpoints —— 備份類型(如完全或增量)、備份狀態(如是否已經為prepared狀態)和LSN(記錄序號)範圍資訊;

每個InnoDB頁(通常為16k大小)都會包含一個記錄序號,即LSN。LSN是整個資料庫系統的系統版本號碼,每個頁面相關的LSN能夠表明此頁面最近是如何發生改變的。

(2)xtrabackup_binlog_info —— mysql伺服器當前正在使用的二進位記錄檔及至備份這一刻為止二進位日誌事件的位置。

(3)xtrabackup_binlog_pos_innodb —— 二進位記錄檔及用於InnoDB或XtraDB表的二進位記錄檔的當前position。

(4)xtrabackup_binary —— 備份中用到的xtrabackup的可執行檔;

(5)backup-my.cnf —— 備份命令用到的配置選項資訊;

在使用innobackupex進行備份時,還可以使用--no-timestamp選項來阻止命令自動建立一個以時間命名的目錄;如此一來,innobackupex命令將會建立一個BACKUP-DIR目錄來儲存備份資料。

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 3
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.