<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        MySQL之Xtrabackup備份恢復數據庫_MySQL

        來源:懂視網 責編:小采 時間:2020-11-09 19:06:42
        文檔

        MySQL之Xtrabackup備份恢復數據庫_MySQL

        MySQL之Xtrabackup備份恢復數據庫_MySQL:bitsCN.com 一、Xtrabackup介紹 1、Xtrabackup是什么 Xtrabackup是一個對InnoDB做數據備份的工具,支持在線熱備份(備份時不影響數據讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品。 Xtrabackup有兩個主要的工具:xtrabackup
        推薦度:
        導讀MySQL之Xtrabackup備份恢復數據庫_MySQL:bitsCN.com 一、Xtrabackup介紹 1、Xtrabackup是什么 Xtrabackup是一個對InnoDB做數據備份的工具,支持在線熱備份(備份時不影響數據讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品。 Xtrabackup有兩個主要的工具:xtrabackup

        bitsCN.com

        一、Xtrabackup介紹

        1、Xtrabackup是什么

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

      1. xtrabackup只能備份InnoDB和XtraDB兩種數據表,而不能備份MyISAM數據表。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保持數據的一致。

        3、Xtrabackup備份原理

        XtraBackup基于InnoDB的crash-recovery功能。它會復制innodb的data file,由于不鎖表,復制出來的數據是不一致的,在恢復的時候使用crash-recovery,使得數據恢復一致。 :
        InnoDB維護了一個redo log,又稱為transaction log,事務日志,它包含了innodb數據的所有改動情況。當InnoDB啟動的時候,它會先去檢查data file和transaction log,并且會做二步操作:XtraBackup在備份的時候, 一頁一頁地復制innodb的數據,而且不鎖定表,與此同時,XtraBackup還有另外一個線程監視著transactions log,一旦log發生變化,就把變化過的log pages復制走。為什么要急著復制走呢?因為transactions log文件大小有限,寫滿之后,就會從頭再開始寫,所以新數據可能會覆蓋到舊的數據。
        在prepare過程中,XtraBackup使用復制到的transactions log對備份出來的innodb data file進行crash recovery。

        4、實現細節
        XtraBackup以read-write模式打開innodb的數據文件,然后對其進行復制。其實它不會修改此文件。也就是說,運行 XtraBackup的用戶,必須對innodb的數據文件具有讀寫權限。之所以采用read-write模式是因為XtraBackup采用了其內置的 innodb庫來打開文件,而innodb庫打開文件的時候就是rw的。
        XtraBackup要從文件系統中復制大量的數據,所以它盡可能地使用posix_fadvise(),來告訴OS不要緩存讀取到的數據,從 而提升性能。因為這些數據不會重用到了,OS卻沒有這么聰明。如果要緩存一下的話,幾個G的數據,會對OS的虛擬內存造成很大的壓力,其它進程,比如 mysqld很有可能被swap出去,這樣系統就會受到很大影響了。
        在備份innodb page的過程中,XtraBackup每次讀寫1MB的數據,1MB/16KB=64個page。這個不可配置。讀1MB數據之 后,XtraBackup一頁一頁地遍歷這1MB數據,使用innodb的buf_page_is_corrupted()函數檢查此頁的數據是否正常,如果數據不正常,就重新讀取這一頁,最多重新讀取10次,如果還是失敗,備份就失敗了,退出。在復制transactions log的時候,每次讀寫512KB的數據。同樣不可以配置。

        5、innobackupex 相關參數

        注:xtrabackup命令只備份數據文件,并不備份數據表結構(.frm),所以使用xtrabackup恢復的時候,你必須有對應表結構文件(.frm),所以,個人推薦采用innobackupex命令 [此命令相當于冷備份,復制數據目錄的索引,數據,結構文件,但會有短暫的鎖表(時間依賴于MyISAM大小)]。

        參數說明如下:

        --defaults-file:指定my.cnf參數文件的位置[此配置文件里必須指定datadir]。

        --apply-log:同xtrabackup的--prepare參數,一般情況下,在備份完成后,數據尚且不能用于恢復操作,因為備份的數據中可能會包含尚未提交的事務或已經提交但尚未同步至數據文件中的事務。因此,此時數據 文件仍處理不一致狀態。--apply-log的作用是通過回滾未提交的事務及同步已經提交的事務至數據文件使數據文件處于一致性狀態。

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

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

        --stream=[tar]:備份文件輸出格式, 該文件可在XtarBackup 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實例使用的內存。

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

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

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

        二、xtrabackup-2.1.6-702安裝

        本文通過源碼方式安裝xtrabackup-2.1.6-702

        下載地址:http://www.percona.com/downloads/XtraBackup/

        1、編譯所需的依賴包

        查看編譯所需的依賴包是否安裝,如果沒有安裝,則安裝之。

        rpm -q libaio libaio-devel perl-Time-HiRes curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel perl-ExtUtils-MakeMaker perl-DBD-MySQL.*

        yum -y install 包名

        2、安裝

        tar -zxvf percona-xtrabackup-2.1.6-702-Linux-x86_64.tar.gz

        cd percona-xtrabackup-2.1.6-702-Linux-x86_64/bin

        將innobackupex、xtrabackup等文件copy到mysql程序目錄下/bin目錄
        cp * /mysql/bin/
        將mysql安裝目錄下的文件做軟鏈接到/usr/bin/目錄下。這個比變量方便,這樣就完成了部署安裝!!!!!!!!!!!
        ln -s /mysql/bin/* /usr/bin/

        三、innobackupex使用參數介紹

        由于innobackupex能同時備份InnoDB和MyISAM引擎的表,這里重點介紹innobackupex的備份與恢復使用。通常一般都直接使用innobackupex,因為它能同時備份InnoDB和MyISAM引擎的表。要注意的是my.cnf里datadir這個參數是必須要指定的,xtrabackup_55是根據它去定位innodb數據文件的位置。

        1、 innobackupex語法及參數說明

        innobackup [--sleep=MS] [--compress[=LEVEL]] [--include=REGEXP] [--user=NAME] [--password=WORD]
        [--port=PORT] [--socket=SOCKET] [--no-timest a mp] [--ibbackup=IBBACKUP-BINARY] [--slave-info] [--stream=tar]
        [--defaults-file=MY.CNF] [--databases=LIST] [--remote-host=HOSTNAME] BACKUP-ROOT-DIR

        innobackup --apply-log [--use-memory=MB] [--uncompress] [--defaults-file=MY.CNF] [--ibbackup=IBBACKUP-BINARY] BACKUP-DIR

        innobackup --copy-back [--defaults-file=MY.CNF] BACKUP-DIR

        各參數說明:
        --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]
        對備份數據

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

      2. 文檔

        MySQL之Xtrabackup備份恢復數據庫_MySQL

        MySQL之Xtrabackup備份恢復數據庫_MySQL:bitsCN.com 一、Xtrabackup介紹 1、Xtrabackup是什么 Xtrabackup是一個對InnoDB做數據備份的工具,支持在線熱備份(備份時不影響數據讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品。 Xtrabackup有兩個主要的工具:xtrabackup
        推薦度:
        標簽: 恢復 備份 在線
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产一级高清视频免费看| 手机在线看永久av片免费| 免费一看一级毛片人| 久久无码av亚洲精品色午夜 | 在线a人片天堂免费观看高清| 亚洲精品午夜在线观看| 免费A级毛片av无码| 亚洲高清不卡视频| free哆啪啪免费永久| 亚洲综合久久一本伊伊区| 在线观看免费人成视频色| 亚洲另类无码一区二区三区| 日韩电影免费在线| 特级av毛片免费观看| 久久久久亚洲AV无码专区网站| 国产一二三四区乱码免费| 亚洲av鲁丝一区二区三区| 91禁漫免费进入| 亚洲精品无码成人| 亚洲日韩在线观看| 一区二区三区在线免费看| 亚洲综合图片小说区热久久| 毛色毛片免费观看| 一级黄色片免费观看| 亚洲国产一区在线| 成人男女网18免费视频| www.xxxx.com日本免费| 亚洲一本综合久久| 国内大片在线免费看| 国产免费久久精品99久久| 亚洲激情中文字幕| 精品国产免费观看| 拍拍拍无挡免费视频网站| 亚洲中文字幕人成乱码| 亚洲AⅤ永久无码精品AA| 久久久久国色av免费看| 久久人午夜亚洲精品无码区| 亚洲高清国产拍精品26U| 免费黄色大片网站| 国产精品99久久免费观看| 色欲aⅴ亚洲情无码AV蜜桃|