亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL中使用innobackupex、xtrabackup進行大數據的備份和還原教程

2024-07-24 13:06:19
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了MySQL中使用innobackupex、xtrabackup進行大數據的備份和還原教程,xtrabackup用來對超過10G數據的Mysql進行備份和還原任務,需要的朋友可以參考下
 
 

大數據量備份與還原,始終是個難點。當MYSQL超10G,用mysqldump來導出就比較慢了。在這里推薦xtrabackup,這個工具比mysqldump要快很多。

一、Xtrabackup介紹

1、Xtrabackup是什么

Xtrabackup是一個對InnoDB做數據備份的工具,支持在線熱備份(備份時不影響數據讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品。

Xtrabackup有兩個主要的工具:xtrabackup、innobackupex

1、xtrabackup只能備份InnoDB和XtraDB兩種數據表,而不能備份MyISAM數據表
2、 innobackupex是參考了InnoDB Hotbackup的innoback腳本修改而來的.innobackupex是一個perl腳本封裝,封裝了xtrabackup。主要是為了方便的 同時備份InnoDB和MyISAM引擎的表,但在處理myisam時需要加一個讀鎖。并且加入了一些使用的選項。如slave-info可以記錄備份恢 復后,作為slave需要的一些信息,根據這些信息,可以很方便的利用備份來重做slave。

2、Xtrabackup可以做什么 :

在線(熱)備份整個庫的InnoDB、 XtraDB表

在xtrabackup的上一次整庫備份基礎上做增量備份(innodb only)
以流的形式產生備份,可以直接保存到遠程機器上(本機硬盤空間不足時很有用)

MySQL數據庫本身提供的工具并不支持真正的增量備份,二進制日志恢復是point-in-time(時間點)的恢復而不是增量備份。
Xtrabackup工具支持對InnoDB存儲引擎的增量備份,工作原理如下:

(1)首先完成一個完全備份,并記錄下此時檢查點的LSN(Log Sequence Number)。
(2)在進程增量備份時,比較表空間中每個頁的LSN是否大于上次備份時的LSN,如果是,則備份該頁,同時記錄當前檢查點的LSN。
首 先,在logfile中找到并記錄最后一個checkpoint(“last checkpoint LSN”),然后開始從LSN的位置開始拷貝InnoDB的logfile到xtrabackup_logfile;接著,開始拷貝全部的數據文 件.ibd;在拷貝全部數據文件結束之后,才停止拷貝logfile。

因為logfile里面記錄全部的數據修改情況,所以,即時在備份過程中數據文件被修改過了,恢復時仍然能夠通過解析xtrabackup_logfile保持數據的一致。

因為innobackupex支持innodb,myisam,所以本文說一下,怎么使用innobackupex。

二,安裝xtrabackup

1、下載地址

http://www.percona.com/downloads/XtraBackup/

2、安裝

根據需求,選擇不同的版本,我選擇的是rpm安裝包,如果報以下錯誤

復制代碼代碼如下:

[root@localhost xtrabackup]# rpm -ivh percona-xtrabackup-2.2.4-5004.el6.x86_64.rpm 
warning: percona-xtrabackup-2.2.4-5004.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
error: Failed dependencies:
perl(Time::HiRes) is needed by percona-xtrabackup-2.2.4-5004.el6.x86_64

 

解決辦法:

 

復制代碼代碼如下:

 

[root@localhost xtrabackup]# yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL //安裝依賴包  
[root@localhost xtrabackup]# rpm -ivh percona-xtrabackup-2.2.4-5004.el6.x86_64.rpm   //重新安裝  
warning: percona-xtrabackup-2.2.4-5004.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY  
Preparing... ########################################### [100%]  
1:percona-xtrabackup ########################################### [100%]  

 

注意:

xtrabackup 2.2.4不支持mysql 5.1.73,所以如果要用新的xtrabackup,就要用高版本的mysql數據庫,不然就會報以下錯誤:
innobackupex: Error: Unsupported server version: '5.1.73'

二、修改my.cnf

查看一下mysqld下面有沒有datadir,如果沒有加上

復制代碼代碼如下:

[mysqld]  
datadir=/var/lib/mysql  

 

不加的話,還原數據的時候,有可能會出現以下問題:

復制代碼代碼如下:

xtrabackup: Error: Please set parameter 'datadir'
innobackupex: fatal error: no 'mysqld' group in MySQL options
innobackupex: fatal error: OR no 'datadir' option in group 'mysqld' in MySQL options

 

三、全部數據庫備份與還原

1、全部數據庫備份

 

復制代碼代碼如下:

# innobackupex --defaults-file=/etc/my.cnf --user=root /home/tank/backup/  

 

如果報以下錯誤:

 

復制代碼代碼如下:

InnoDB: Error: log file ./ib_logfile0 is of different size 5242880 bytes
InnoDB: than specified in the .cnf file 50331648 bytes!
innobackupex: Error: The xtrabackup child process has died at /usr/bin/innobackupex line 2679.

 

解決辦法:在my.cnf的mysqld中加入以下內容:

 

復制代碼代碼如下:

[mysqld]  
innodb_log_file_size = 5M  

 

2、單數據庫備份

 

復制代碼代碼如下:

# innobackupex --defaults-file=/etc/my.cnf --user=root --database=backup_test /home/tank/backup/  

 

3、數據庫備份并壓縮

 

復制代碼代碼如下:

# innobackupex --defaults-file=/etc/my.cnf --user=root --stream=tar  /home/tank/backup | gzip > /home/tank/backup/`date +%F_%H-%M-%S`.tar.gz  

 

4、全數據還原

 

復制代碼代碼如下:

# /etc/init.d/mysqld stop      //停掉mysql  
# mv /var/lib/mysql /var/lib/mysql_bak   //數據目錄備份  
# mkdir -p /var/lib/mysql  //重建數據目錄  
  
//--apply-log選項的命令是準備在一個備份上啟動mysql服務  
# innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log /home/tank/backup/2014-09-18_16-35-12  
  
//--copy-back 選項的命令從備份目錄拷貝數據,索引,日志到my.cnf文件里規定的初始位置  
# innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /home/tank/backup/2014-09-18_16-35-12  
  
# chown -R mysql.mysql /var/lib/mysql  //改變文件所屬  
# /etc/init.d/mysqld stop  //啟動mysql  

 

四、增量備份與還原

1、創建測試數據庫和表

 

復制代碼代碼如下:

create database backup_test;  //創建庫  
  
CREATE TABLE `backup` (  //創建表  
 `id` int(11) NOT NULL AUTO_INCREMENT ,  
 `name` varchar(20) NOT NULL DEFAULT '' ,  
 `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,  
 `del` tinyint(1) NOT NULL DEFAULT '0',  
 PRIMARY KEY (`id`)  
) ENGINE=myisam DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;  

 

2、增量備份

 

復制代碼代碼如下:

mysql> INSERT INTO backup (name) VALUES ('tank'),('tank1');  //插入數據  
  
# innobackupex --defaults-file=/etc/my.cnf --user=root --incremental-basedir=/home/tank/backup/2014-09-18_16-35-12 --incremental /home/tank/backup/  

 

3、在增量的基礎上在進行增量備份

 

復制代碼代碼如下:

mysql> INSERT INTO backup (name) VALUES ('tank2'),('tank3'),('tank4'),('tank5'),('tank6');  //在插入數據  
  
//2014-09-18_18-05-20這個目錄,上次增量備份產生的目錄  
# innobackupex --defaults-file=/etc/my.cnf --user=root --incremental-basedir=/home/tank/backup/2014-09-18_18-05-20 --incremental /home/tank/backup/  

 

查看增量備份記錄文件:

 

復制代碼代碼如下:

[root@localhost 2014-09-18_16-35-12]# cat xtrabackup_checkpoints   //全備目錄下的文件  
backup_type = full-prepared  
from_lsn = 0             //全備起始為0  
to_lsn = 23853959  
last_lsn = 23853959  
compact = 0  
  
[root@localhost 2014-09-18_18-05-20]# cat xtrabackup_checkpoints  //第一次增量備份目錄下的文件 
backup_type = incremental  
from_lsn = 23853959  
to_lsn = 23854112  
last_lsn = 23854112  
compact = 0  
  
[root@localhost 2014-09-18_18-11-43]# cat xtrabackup_checkpoints  //第二次增量備份目錄下的文件 
backup_type = incremental  
from_lsn = 23854112  
to_lsn = 23854712  
last_lsn = 23854712  
compact = 0  

 

增量備份做完后,把backup_test這個數據庫刪除掉,drop database backup_test;這樣可以對比還原后。

4、增量還原

 

復制代碼代碼如下:

# innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log --redo-only /home/tank/backup/2014-09-18_16-35-12  
  
# innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log --redo-only /home/tank/backup/2014-09-18_16-35-12 --incremental-dir=/home/tank/backup/2014-09-18_18-05-20  
  
# innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log --redo-only /home/tank/backup/2014-09-18_16-35-12 --incremental-dir=/home/tank/backup/2014-09-18_18-11-43  

 

在這里有三個目錄:

1)、/home/tank/backup/2014-09-18_16-35-12,全備份目錄
2)、/home/tank/backup/2014-09-18_18-05-20,第一次增量備份產生的目錄
3)、/home/tank/backup/2014-09-18_18-11-43,第二次增量備份產生的目錄

到這里增量還原,還沒有結束,還有最重要一步,就是要進行一次全量還原。停止數據庫,刪除/var/lib/mysql,在還原。

增量備份的原理就是,把增量目錄下的數據,整合到全變量目錄下,然后在進行,全數據量的還原。

總體來說,innobackupex速度快,支持innodb,myisam,用起來是還不是很方便,單庫還原,還是增量備份還原,都要進行全部數據庫還原,這個不合理。

五、innobackup 常用參數說明

--defaults-file
同xtrabackup的--defaults-file參數

--apply-log
對xtrabackup的--prepare參數的封裝

--copy-back
做數據恢復時將備份數據文件拷貝到MySQL服務器的datadir ;

--remote-host=HOSTNAME
通過ssh將備份數據存儲到進程服務器上;

--stream=[tar]
備 份文件輸出格式, tar時使用tar4ibd , 該文件可在XtarBackup binary文件中獲得.如果備份時有指定--stream=tar, 則tar4ibd文件所處目錄一定要在$PATH中(因為使用的是tar4ibd去壓縮, 在XtraBackup的binary包中可獲得該文件)。
在 使用參數stream=tar備份的時候,你的xtrabackup_logfile可能會臨時放在/tmp目錄下,如果你備份的時候并發寫入較大的話 xtrabackup_logfile可能會很大(5G+),很可能會撐滿你的/tmp目錄,可以通過參數--tmpdir指定目錄來解決這個問題。

--tmpdir=DIRECTORY
當有指定--remote-host or --stream時, 事務日志臨時存儲的目錄, 默認采用MySQL配置文件中所指定的臨時目錄tmpdir

--redo-only --apply-log組,
強制備份日志時只redo ,跳過rollback。這在做增量備份時非常必要。

--use-memory=#
該參數在prepare的時候使用,控制prepare時innodb實例使用的內存量

--throttle=IOS
同xtrabackup的--throttle參數
--sleep=是給ibbackup使用的,指定每備份1M數據,過程停止拷貝多少毫秒,也是為了在備份時盡量減小對正常業務的影響,具體可以查看ibbackup的手冊 ;

--compress[=LEVEL]
對備份數據迚行壓縮,僅支持ibbackup,xtrabackup還沒有實現;

--include=REGEXP
對 xtrabackup參數--tables的封裝,也支持ibbackup。備份包含的庫表,例如:--include="test.*",意思是要備份 test庫中所有的表。如果需要全備份,則省略這個參數;如果需要備份test庫下的2個表:test1和test2,則寫 成:--include="test.test1|test.test2"。也可以使用通配符,如:--include="test.test*"。

--databases=LIST
列出需要備份的databases,如果沒有指定該參數,所有包含MyISAM和InnoDB表的database都會被備份;

--uncompress
解壓備份的數據文件,支持ibbackup,xtrabackup還沒有實現該功能;

--slave-info,
備 份從庫, 加上--slave-info備份目錄下會多生成一個xtrabackup_slave_info 文件, 這里會保存主日志文件以及偏移, 文件內容類似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0

--socket=SOCKET
指定mysql.sock所在位置,以便備份進程登錄mysql.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色婷婷综合成人| 成人国产精品久久久| 国产精品第一视频| 精品国产网站地址| 91精品视频大全| 国产精品青草久久久久福利99| 国产成人精品电影| 亚洲欧洲第一视频| 日韩av免费看网站| 欧美裸体xxxx| 国内精品一区二区三区四区| 亚洲精品999| 日韩电影在线观看永久视频免费网站| 亚洲成av人影院在线观看| 欧美高跟鞋交xxxxhd| 91香蕉嫩草神马影院在线观看| 久久亚洲精品网站| 日本一区二区三区四区视频| 91精品国产综合久久香蕉| 国产精品欧美在线| 91精品久久久久久久久| 欧美老女人xx| 亚洲天堂免费在线| 亚洲欧美制服另类日韩| 亚洲视频专区在线| 在线视频免费一区二区| 亚洲精品suv精品一区二区| 日韩国产激情在线| 国产成人拍精品视频午夜网站| 久久成人一区二区| 91成人天堂久久成人| 国产精国产精品| 亚洲在线观看视频网站| 亚洲国产精品女人久久久| 在线视频欧美日韩精品| 日韩一区视频在线| 狠狠躁18三区二区一区| 国产69精品久久久久9999| 97香蕉久久夜色精品国产| 91精品国产综合久久香蕉| 欧美大胆在线视频| 国产精自产拍久久久久久| 另类专区欧美制服同性| 高清日韩电视剧大全免费播放在线观看| 欧洲成人在线观看| 97久久久久久| 日韩精品中文字幕在线| 91高潮在线观看| 色777狠狠综合秋免鲁丝| 国产精品成av人在线视午夜片| 成人性生交大片免费看小说| 中文字幕精品—区二区| 亚洲日本aⅴ片在线观看香蕉| 8x海外华人永久免费日韩内陆视频| 日韩国产高清视频在线| 麻豆国产va免费精品高清在线| 亚洲成av人影院在线观看| 久久久亚洲影院你懂的| 成人a视频在线观看| 欧美性xxxx极品hd欧美风情| 国产视频丨精品|在线观看| 日本高清+成人网在线观看| 亚洲国产精品成人av| 91产国在线观看动作片喷水| 精品久久久久久久久中文字幕| 亚洲人精选亚洲人成在线| 亚洲aⅴ男人的天堂在线观看| 亚洲一区二区久久久久久久| 日产精品99久久久久久| 色偷偷888欧美精品久久久| 欧美性高潮在线| 欧美大片在线看| 欧美激情网友自拍| 欧美亚洲一级片| 欧美壮男野外gaytube| 亚洲色图在线观看| 亚洲日本成人网| 国产丝袜视频一区| 久久亚洲精品成人| 91经典在线视频| 一本色道久久综合狠狠躁篇的优点| 日韩成人中文电影| 亚洲精品国产精品国自产在线| 亚洲一区中文字幕在线观看| 久久成人国产精品| 亚洲高清久久网| 日本精品性网站在线观看| 欧美在线观看视频| 91九色视频在线| 精品久久久久久亚洲国产300| 久久av资源网站| 欧美激情伊人电影| 亚洲一区二区三区成人在线视频精品| 欧美大码xxxx| 麻豆成人在线看| 欧美wwwxxxx| 亚洲男人的天堂在线播放| 91精品国产免费久久久久久| 精品高清美女精品国产区| 欧美激情精品久久久久久大尺度| 国产精品福利久久久| 日本伊人精品一区二区三区介绍| 亚洲精品福利免费在线观看| 亚洲成av人影院在线观看| 欧美精品久久一区二区| 国产成人久久久| 久久青草精品视频免费观看| 国产精品99久久久久久人| 日韩欧美在线视频日韩欧美在线视频| 91高潮精品免费porn| 成人免费在线网址| xxxx性欧美| 国产精品热视频| 欧美久久精品一级黑人c片| 91精品国产高清自在线看超| 久久天天躁夜夜躁狠狠躁2022| 中文字幕一区二区三区电影| 亚洲天堂2020| 91国在线精品国内播放| 亚洲欧美国产高清va在线播| 2025国产精品视频| 青青a在线精品免费观看| 国产精品流白浆视频| 日韩中文字幕在线视频| 国产一区二区三区在线看| 久久影院在线观看| 日韩av网址在线| 久久大大胆人体| 欧美裸体xxxx极品少妇软件| 国产成人一区二区| 亚洲第一黄色网| 国产精品久久9| 在线a欧美视频| 日韩av手机在线| 国产成人97精品免费看片| 91精品久久久久| 亚洲欧美国产va在线影院| 日韩av成人在线观看| 欧美电影在线播放| 精品久久久久久电影| 欧美性猛交xxxx| 姬川优奈aav一区二区| zzijzzij亚洲日本成熟少妇| 成人精品一区二区三区| 亚洲欧美日韩在线高清直播| 国产精品视频最多的网站| 日韩av一区二区在线| 国产精品美女午夜av| 国产成人在线播放| 欧美床上激情在线观看| 精品国内亚洲在观看18黄| 国产噜噜噜噜久久久久久久久| 欧美日韩国产中文字幕| 成人欧美在线观看| 一区二区三区四区视频| 国产精品444| 精品国产精品自拍| 91精品啪在线观看麻豆免费| 久久视频国产精品免费视频在线| 日韩电影在线观看中文字幕| 成人字幕网zmw| 亚洲人成在线观看| 亚洲开心激情网| 最近2019中文字幕第三页视频|