XtraBackup線上進行MySQL的主從部署一
【前言】MySQL的主從部署的方法有很多種,最常見的方法就是用mysqldump的方式進行,眾所周知mysqldump方式構建主從的方法有兩個很大的缺點:
1、主庫需要鎖表,這就意味著這期間主庫不能做修改的操作(在做匯出的時候需要停止相關的介面和應用,對於一些小公司可能沒影響,但如果是電商平台,就是相當於停止服務;
2、當資料量較小的時候mysqldump的方法是很快的,但是當資料量超過20G的時候,整個過程就相當的慢。曾經用這種方法導一個70G的資料庫,在使用的是高端儲存的情況下,匯出花費了50分鐘。
Percona提供了xtrabackup開源備份工具,可以快速且無鎖表地進行mysql的備份並且記錄相應的log資訊,特點如下:
•備份過程快速、可靠;
•備份過程不會打斷正在執行的事務;
•能夠基於壓縮等功能節約磁碟空間和流量;
•自動實現備份檢驗;
•還原速度快;
本文檔介紹通過xtrabackup進行搭建mysql的主從資料庫;
【一】軟體的安裝
1.1 https://www.percona.com/downloads/XtraBackup/
當前的版本已更新到2.2.11;
1.2 軟體的安裝
下載相應的rpm包後,運行:rpm -ivh percona-xtrabackup-2.2.11-1.el6.x86_64.rpm
[root@OTO-DB-T02 share]# rpm -ql percona-xtrabackup
/usr/bin/innobackupex
/usr/bin/xbcrypt
/usr/bin/xbstream
/usr/bin/xtrabackup
1.3 軟體的介紹
XtraBackup中主要包含了三個工具
xtrabackup:支援innodb儲存引擎表,xtradb儲存引擎表
innobackupex:支援innodb儲存引擎表、xtradb儲存引擎表、myisam儲存引擎表。
xbstream:流備份工具,用於減少備份和傳輸過程中的IO()
1.4 配置datadir參數
[root@OTO-DB-T02 backup]# more /etc/my.cnf |grep datadir
datadir=/data/mysql
註:當datadir參數沒有配置時還原的時候會報如下錯誤
innobackupex: got a fatal error with the following stacktrace: at /usr/bin/innobackupex line 2510
main::copy_back(0) called at /usr/bin/innobackupex line 1570
innobackupex: Error: Backup data file '/data/backup/2015-06-15_14-06-59/ibdata1' does not exist. at /usr/bin/innobackupex line 2510.
【二】 工具的使用
[root@OTO-DB-T02 backup]# innobackupex --help
Options:
--apply-log
Prepare a backup in BACKUP-DIR by applying the transaction log file
named "xtrabackup_logfile" located in the same directory. Also,
create new transaction logs. The InnoDB configuration is read from
the file "backup-my.cnf".
--backup-locks
This option controls if backup locks should be used instead of FLUSH
TABLES WITH READ LOCK on the backup stage. The option has no effect
when backup locks are not supported by the server. This option is
enabled by default, disable with --no-backup-locks.
--close-files
Do not keep files opened. This option is passed directly to
xtrabackup. Use at your own risk.
--compact
Create a compact backup with all secondary index pages omitted. This
option is passed directly to xtrabackup. See xtrabackup
documentation for details.
--compress
This option instructs xtrabackup to compress backup copies of InnoDB
data files. It is passed directly to the xtrabackup child process.
Try 'xtrabackup --help' for more details.
2.1的完整備份及還原過程
步驟一:進行資料庫的完整備份
innobackupex --defaults-file=/etc/my.cnf --user=root --password='123456' /data/backup
2.2 InnoDB備份,使備份可用
innobackupex --user=root --password='123456' --apply-log /data/backup/2015-06-15_14-57-24 (步驟一備份完成後會產生2015-06-15_14-57-24目錄)
說明:第一步備份相當於備份當前資料庫的資料檔案,但是備份期間系統的變更這個過程是不能備份的。所以要進行步驟二的備份,這個步驟可用記錄在備份步驟一系統進行的所有變更。這樣在進行恢複的過程會累加步驟一和步驟二的備份形成一個完整的備份;
2.3 資料庫的還原
innobackupex --defaults-file=/etc/my.cnf --user=root --password='123456' --copy-back /data/xtrabackup/2015-02-01_08-30-13/
2.4 檔案的授權
chown –R mysql:mysql /data/mysql
2.5 啟動資料庫
service mysqld start;啟動資料庫
2.6 根據/data/mysql下面的資訊串連主庫
[root@OTO-DB-T02 mysql]# cat xtrabackup_binlog_pos_innodb
./mysql-bin.000027 17645
MySQL管理之使用XtraBackup進行熱備
MySQL開源備份工具Xtrabackup備份部署
MySQL Xtrabackup備份和恢複
用XtraBackup實現MySQL的主從複製快速部署【主不鎖表】
安裝和使用 Percona 推出的 Xtrabackup 備份 MySQL
XtraBackup 的詳細介紹:請點這裡
XtraBackup 的:請點這裡
本文永久更新連結地址: