防偽碼:沒有相當程度的孤獨是不可能有內(nèi)心的平和。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了姜堰免費建站歡迎大家使用!1、概述
Percona XtraBackup(簡稱PXB)是 Percona 公司開發(fā)的一個用于 MySQL 數(shù)據(jù)庫物理熱備的備份工具,支持 MySQl(Oracle)、Percona Server 和 MariaDB,并且開源,淘寶的RDS for MySQL的物理備份就是基于XtraBackup做的。
Xtrabackup有兩個主要的工具:xtrabackup、innobackupex
(1)xtrabackup是C/C++編譯的二進制文件,只能備份InnoDB和XtraDB兩種數(shù)據(jù)表,而不能備份MyISAM數(shù)據(jù)表;
(2)innobackupex則封裝了xtrabackup,是一個perl腳本封裝,所以能同時備份處理innodb和myisam,但在處理myisam時需要加一個讀鎖;
1.1 備份原理
整個備份過程如下圖:
innobackupex 在啟動后,會先 fork 一個進程,啟動 xtrabackup進程,然后就等待 xtrabackup 備份完 ibd 數(shù)據(jù)文件;
xtrabackup 在備份 InnoDB 相關(guān)數(shù)據(jù)時,是有2種線程的,1種是 redo 拷貝線程,負責拷貝 redo 文件,1種是 ibd 拷貝線程,負責拷貝 ibd 文件;redo 拷貝線程只有一個,在 ibd 拷貝線程之前啟動,在 ibd 線程結(jié)束后結(jié)束。xtrabackup 進程開始執(zhí)行后,先啟動 redo 拷貝線程,從最新的 checkpoint 點開始順序拷貝 redo 日志;然后再啟動 ibd 數(shù)據(jù)拷貝線程,在 xtrabackup 拷貝 ibd 過程中,innobackupex 進程一直處于等待狀態(tài)(等待文件被創(chuàng)建)。
xtrabackup 拷貝完成idb后,通知 innobackupex(通過創(chuàng)建文件),同時自己進入等待(redo 線程仍然繼續(xù)拷貝);
innobackupex 收到 xtrabackup 通知后,執(zhí)行FLUSH TABLES WITH READ LOCK (FTWRL),取得一致性位點,然后開始備份非 InnoDB 文件(包括 frm、MYD、MYI、CSV、opt、par等)??截惙?InnoDB 文件過程中,因為數(shù)據(jù)庫處于全局只讀狀態(tài),如果在業(yè)務(wù)的主庫備份的話,要特別小心,非 InnoDB 表(主要是MyISAM)比較多的話整庫只讀時間就會比較長,這個影響一定要評估到。
當 innobackupex 拷貝完所有非 InnoDB 表文件后,通知 xtrabackup(通過刪文件) ,同時自己進入等待(等待另一個文件被創(chuàng)建);
xtrabackup 收到 innobackupex 備份完非 InnoDB 通知后,就停止 redo 拷貝線程,然后通知 innobackupex redo log 拷貝完成(通過創(chuàng)建文件);
innobackupex 收到 redo 備份完成通知后,就開始解鎖,執(zhí)行 UNLOCK TABLES;
最后 innobackupex 和 xtrabackup 進程各自完成收尾工作,如資源的釋放、寫備份元數(shù)據(jù)信息等,innobackupex 等待 xtrabackup 子進程結(jié)束后退出。
1.2 常用參數(shù)
--defaults-file:指明服務(wù)器的配置文件,此參數(shù)必須作為innobackupex的第一個參數(shù),否則報錯
--host:指明連接數(shù)據(jù)庫的主機
--user:指明執(zhí)行數(shù)據(jù)庫備份的用戶名
--password:指明執(zhí)行備份的密碼
--backup:指明為備份,此參數(shù)可以忽略
--apply-log:重做日志
--copy-back:執(zhí)行數(shù)據(jù)恢復
--slave-info:備份從庫的show slave status信息,僅用于在備份從庫時使用
--no-lock:不鎖表,僅適用于存儲引擎為innodb,并且不在乎備份位置點時使用
2、安裝XtraBackup
2.1 環(huán)境準備
主機名 | IP | 系統(tǒng) | MySQL版本 |
MySQL-01 | 192.168.10.20 | CentOS release 6.9 (Final) | 5.6.36 |
MySQL的安裝步驟略。
2.2 創(chuàng)建備份用戶
mysql> create user 'backup'@'localhost' identified by '123456'; Query OK, 0 rows affected (0.04 sec) mysql> grant reload,lock tables,replication client,process on *.* to 'backup'@'localhost' identified by '123456'; Query OK, 0 rows affected (0.30 sec) mysql> flush privileges; Query OK, 0 rows affected (0.04 sec)2.3 創(chuàng)建備份目錄
[root@MySQL-01 ~]#mkdir /backup2.4 下載xtraBackup
[root@MySQL-01 ~]#cd /opt # 下載可能較慢。 [root@MySQL-01 opt]#wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.7/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.7-2.el6.x86_64.rpm2.4 安裝XtraBackup
# 安裝的時候出現(xiàn)報錯,原因為依賴包未安裝。 [root@MySQL-01 opt]#rpm -ivh percona-xtrabackup-24-2.4.7-2.el6.x86_64.rpm warning: percona-xtrabackup-24-2.4.7-2.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY error: Failed dependencies: libev.so.4()(64bit) is needed by percona-xtrabackup-24-2.4.7-2.el6.x86_64 perl(DBD::mysql) is needed by percona-xtrabackup-24-2.4.7-2.el6.x86_64 # 安裝相關(guān)依賴包 [root@MySQL-01 opt]#yum -y install libev-devel perl-DBD-MySQL [root@MySQL-01 opt]#rpm -ivh percona-xtrabackup-24-2.4.7-2.el6.x86_64.rpm warning: percona-xtrabackup-24-2.4.7-2.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY Preparing... ########################################### [100%] 1:percona-xtrabackup-24 ########################################### [100%] [root@MySQL-01 opt]#rpm -ql percona-xtrabackup-24-2.4.7-2.el6.x86_64 /usr/bin/innobackupex #innobackupex腳本工具 /usr/bin/xbcloud /usr/bin/xbcloud_osenv /usr/bin/xbcrypt /usr/bin/xbstream /usr/bin/xtrabackup #最主要的備份工具 /usr/share/doc/percona-xtrabackup-24-2.4.7 /usr/share/doc/percona-xtrabackup-24-2.4.7/COPYING /usr/share/man/man1/innobackupex.1.gz /usr/share/man/man1/xbcrypt.1.gz /usr/share/man/man1/xbstream.1.gz /usr/share/man/man1/xtrabackup.1.gz3、備份與恢復測試
3.1 全量備份
# defaults-file:my.cnf配置路徑 [root@MySQL-01 opt]#innobackupex --defaults-file=/app/mysql/my.cnf --user=backup --password=123456 /backup # 查看backup目錄下已經(jīng)有備份文件 [root@MySQL-01 opt]#ll /backup/ total 4 drwxr-x--- 5 root root 4096 Jul 14 17:25 2017-07-14_17-25-24 [root@MySQL-01 opt]#ls /backup/2017-07-14_17-25-24/ backup-my.cnf performance_schema xtrabackup_checkpoints ibdata1 rep xtrabackup_info mysql xtrabackup_binlog_info xtrabackup_logfile [root@MySQL-01 opt]#cat /backup/2017-07-14_17-25-24/xtrabackup_checkpoints backup_type = full-backuped #備份方式為全量備份 from_lsn = 0 #由于是全備,其實LSN號為0 to_lsn = 13835894 #截止LSN號 last_lsn = 13835894 compact = 0 recover_binlog_info = 03.2 模擬恢復
既然全量備份已經(jīng)完成,那么就來測試一下。
# 將數(shù)據(jù)庫停掉 [root@MySQL-01 ~]#service mysqld stop Shutting down MySQL............ SUCCESS! # 將data文件移到backup目錄下 [root@MySQL-01 ~]#mv /app/mysql/data /backup/data_bak # 無法啟動mysqld了 [root@MySQL-01 ~]#service mysqld start Starting MySQL.Logging to '/app/mysql/data/MySQL-01.err'. . ERROR! The server quit without updating PID file (/app/mysql/data/MySQL-01.pid). # apply-log參數(shù):在真正恢復數(shù)據(jù)庫數(shù)據(jù)之前,先將數(shù)據(jù)庫redo日志狀態(tài)恢復。 [root@MySQL-01 ~]#innobackupex --defaults-file=/app/mysql/my.cnf --user=backup --password=123456 --apply-log /backup/2017-07-14_17-25-24 # 執(zhí)行數(shù)據(jù)恢復 [root@MySQL-01 ~]#innobackupex --defaults-file=/app/mysql/my.cnf --user=backup --password=123456 --copy-back /backup/2017-07-14_17-25-24 [root@MySQL-01 ~]#chown -R mysql.mysql /app/mysql/data # 再次啟動數(shù)據(jù)庫,顯示成功 [root@MySQL-01 ~]#service mysqld start Starting MySQL.Logging to '/app/mysql/data/MySQL-01.err'. . SUCCESS!4、參考
http://mysql.taobao.org/monthly/2016/03/07/
http://www.cnblogs.com/olinux/p/5207887.html
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章標題:XtraBackup全量備份與恢復MySQL數(shù)據(jù)-創(chuàng)新互聯(lián)
當前地址:http://jinyejixie.com/article34/dehppe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、靜態(tài)網(wǎng)站、移動網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、網(wǎng)站排名、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容