建立MySQL資料庫備份的好工具:XtraBackup
說到備份MySQL資料庫,不少人可能會先想到其自帶的命令列工具mysqldump,要說這個工具確實不錯,操作簡單呼叫靈活,不過mysqldump屬於邏輯備份工具,類似ORACLE資料庫中的export,小資料量時效率尚可,當資料量達到一定規模時,使用mysqldump執行備份的時間也許還可接受,但恢復時間基本就不能忍受了。
這種情況下就需要一種好用又高效的工具,xtrabackup就是其中一款,號稱免費版的InnoDB HotBackup。
Xtrabackup提供了兩種命令列工具:
- xtrabackup:專用於備份InnoDB引擎的資料;
- innobackupex:這是一個perl指令碼,在執行過程中會呼叫xtrabackup命令,這樣用該命令即可以實現備份InnoDB,也可以備份MyISAM引擎的物件。
目前xtrabackup最新版本已經升級到了1.6版本,可以到http://www.percona.com/downloads/xtrabackup/免費下載。
Xtrabackup提供了Linux下常見的安裝方式,包括RPM安裝,原始碼編譯方式,以及二進位制版本安裝,這裡三思嘗試下載了最新的1.6原始碼包,決定自行編譯安裝。
1.6版本的原始碼包相較之前大了數十倍,主要是由於原始碼包中同時包含了mysql5.1和mysql5.5的原始碼包,一個2M左右的小軟體,居然內建了兩個各有20餘M的軟體安裝包,這真不是一般人都想的出來的。
由於1.6版本新推不久,官網中的文件都沒有來的及更新完善,原始碼方式的安裝文件也並不完整,三思也只能連蒙帶猜,下列安裝步驟有可能並非最佳安裝方式,僅只是提供了一種,原始碼安裝xtrabackup並使其可用的方式。
由於xtrabackup依賴libinnodb連結庫,因此需要先編譯InnoDB,而後再編譯xtrabackup。要編譯安裝xtrabackup最簡單的方式當然是使用提供的編譯指令碼,首先還是解壓縮檔案,並進入到安裝目錄:
[root@rhel5u3 software]# tar xvfz xtrabackup-1.6.tar.gz
[root@rhel5u3 software]# cd xtrabackup-1.6ll的話會看到目錄有兩mysql-5.1.56.tar.gz和mysql-5.5.10.tar.gz兩個mysql原始碼包,正是這兩個原始碼包占用了大量的空間。除此外還有一個innobackupex的perl指令碼程式,該指令碼可以直接執行,不過執行備份任何時會報:
sh: xtrabackup_55: command not found
innobackupex: fatal error: no 'mysqld' group in MySQL options
innobackupex: fatal error: OR no 'datadir' option in group 'mysqld' in MySQL options提示xtrabackup_55命令不存在,接下來就是要編譯xtrabackup。
在解壓縮目錄下執行utils/build.sh,注意一定要在xtrabackup安裝目錄內執行,執行時要指定與之匹配的MySQL資料庫版本。
[root@rhel5u3 xtrabackup-1.6]# utils/build.sh
Build an xtrabackup binary against the specified InnoDB flavor.
Usage: build.sh CODEBASE
where CODEBASE can be one of the following values or aliases:
innodb51_builtin | 5.1 build against built-in InnoDB in MySQL 5.1
innodb55 | 5.5 build against InnoDB in MySQL 5.5
xtradb51 | xtradb build against Percona Server with XtraDB 5.1
xtradb55 | xtradb55 build against Percona Server with XtraDB 5.5三思安裝的是mysql5.5,因此這裡指定innodb55,執行命令如下:
- [root@rhel5u3 xtrabackup-1.6]# utils/build.sh innodb55
該指令碼會根據指定的引擎版本,自動解壓縮適當的MySQL原始碼包並進行編譯,這是最簡單的安裝方式。
命令執行完成之後,xtrabackup就可以用了,一般預設編譯後該檔案儲存在xtrabackup-1.6/mysql-5.5.10/storage/innobase/xtrabackup/目錄下,當然也可以通過find命令查詢xtrabackup的具體路徑。
建立兩個軟連結,以方便呼叫XtraBackup命令執行備份:
[root@rhel5u3 xtrabackup-1.6]# ln -s /data/software/xtrabackup-1.6/innobackupex /usr/local/mysql55/bin/innobackupex
[root@rhel5u3 xtrabackup-1.6]# ln -s /data/software/xtrabackup-1.6/mysql-5.5.10/storage/innobase/xtrabackup/xtrabackup_innodb55 /usr/local/mysql55/bin/xtrabackup_55將mysql55的bin載入到path環境變數,當然這步多數情況下應該在安裝mysql時做過了:
- [root@rhel5u3 xtrabackup-1.6]# export PATH=$PATH:/usr/local/mysql55/bin
至此,XtraBackup的原始碼安裝就完成了,接下來就可以使用這些命令執行備份任務了。例如,呼叫xtrabackup命令執行備份,舉個簡單的備份示例如下:
[root@rhel5u3 ~]# xtrabackup_55 --defaults-file=/data/mysqldata/3306/my.cnf --backup --target-dir=/data/mysql_20110524
xtrabackup_55 Ver undefined Rev undefined for 5.5.10 Linux (x86_64)
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /data/mysqldata/3306/data
xtrabackup: Target instance is assumed as followings.
xtrabackup: innodb_data_home_dir = /data/mysqldata/3306/innodb_ts
xtrabackup: innodb_data_file_path = ibdata1:10M:autoextend
xtrabackup: innodb_log_group_home_dir = /data/mysqldata/3306/innodb_log
xtrabackup: innodb_log_files_in_group = 2
xtrabackup: innodb_log_file_size = 5242880
110524 17:31:16 InnoDB: Using Linux native AIO
>> log scanned up to (1598402)
[01] Copying /data/mysqldata/3306/innodb_ts/ibdata1
to /data/mysql_20110524/ibdata1
[01] ...done
xtrabackup: The latest check point (for incremental): '1598402'
>> log scanned up to (1598402)
xtrabackup: Stopping log copying thread.
xtrabackup: Transaction log of lsn (1598402) to (1598402) was copied.來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-697899/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 配置xtrabackup備份mysql資料庫MySql資料庫
- 使用Xtrabackup備份mysql資料庫MySql資料庫
- (轉)使用Xtrabackup備份MySQL資料庫MySql資料庫
- (轉)使用Xtrabackup備份MySQL資料庫(續)MySql資料庫
- mysql資料庫xtrabackup壓縮備份測試MySql資料庫
- 使用 xtrabackup 進行MySQL資料庫物理備份MySql資料庫
- Mysql 物理備份工具xtrabackup的使用MySql
- 【MySql】 MySql備份工具Xtrabackup之二MySql
- 【MySql】 MySql備份工具Xtrabackup之一MySql
- XtraBackup 2.2.8 釋出,MySQL 備份工具MySql
- MySQL:xtrabackup備份MySql
- XtraBackup備份MySQLMySql
- xtrabackup備份mysql innodbMySql
- MySQL DBA備份工具Xtrabackup使用指南(轉)MySql
- mysql 資料庫 備份MySql資料庫
- mysql 資料庫備份MySql資料庫
- MySQL資料庫備份種類以及常用備份工具彙總MySql資料庫
- MySQL 資料庫備份種類以及常用備份工具彙總MySql資料庫
- MySQL · 物理備份 · Percona XtraBackup 備份原理MySql
- xtrabackup備份mysql以及建立自動定時任務MySql
- MySQL資料庫備份工具Mydumper使用介紹MySql資料庫
- MySQL資料庫的基本備份MySql資料庫
- 使用Xtrabackup遠端備份MysqlMySql
- Percona Xtrabackup 快速備份 MySQLMySql
- mysql innobackupex xtrabackup 大資料量 備份 還原MySql大資料
- innobackupex 備份MySQL資料庫MySql資料庫
- mysql 備份資料庫 mysqldumpMySql資料庫
- Xtrabackup實現資料庫備份和災難恢復資料庫
- MySQL資料庫常用的備份方法MySql資料庫
- innodb儲存引擎備份工具--Xtrabackup儲存引擎
- RMAN備份 建立catalog資料庫資料庫
- 1. 備份MySQL資料庫MySql資料庫
- Mysql資料庫自動備份MySql資料庫
- 備份mysql資料庫報告MySql資料庫
- 使用innobackupex備份mysql資料庫MySql資料庫
- mysql資料庫備份命令大全MySql資料庫
- 通過現有的資料庫備份建立新的資料庫資料庫
- 資料庫的定時備份(小庫、資料泵工具)資料庫