循例介紹下,xtrabackup工具是percona公司用perl語言開發的線上實體熱備份工具,由于是采取實體拷貝的方式來做的備份,是以速度非常快,幾十G資料也才幾分鐘就搞定了,而他巧妙的利用了mysql特性做到了線上熱備份,不用像以前做實體備份那樣關閉資料庫才行,直接線上就能完成整庫或者是部分庫的全量備份和增量備份.
新版本的xtrabackup改成了cmake安裝,和以前有點不一樣
版本說明:現在安裝的版本是2.3.4,而2.3.3之後不備份死鎖了,如果資料庫是mysql5.7之後的必須要裝2.4.4才可以用,當然了,會向下相容的.
安裝完主要是使用innobackupex指令,在我另一篇文章有說明怎麼去用它,裝完可以去看看.
編譯安裝方式:
安裝環境是centos6.8,也是已經安裝了mysql的,這個大家注意自己實際情況.
<code>#安裝依賴包前,先裝個epel庫,很實用,别嫌麻煩</code>
<code>rpm -Uvh http:</code><code>//mirrors</code><code>.kernel.org</code><code>/fedora-epel/6/i386/epel-release-6-8</code><code>.noarch.rpm</code>
<code>#然後安裝依賴包:</code>
<code>yum -y </code><code>install</code> <code>cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool zlib-devel libgcrypt-devel libcurl-devel crypt* libgcrypt* python-sphinx openssl imake libxml2-devel expat-devel ncurses5-devel ncurses-devle vim-common libgpg-error-devel libidn-devel perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL</code>
<code>#然後有個包要專門編譯安裝的</code>
<code>wget </code><code>"http://dist.schmorp.de/libev/libev-4.23.tar.gz"</code>
<code>==============================================</code>
<code>#這個下載下傳比較麻煩,可以到這下載下傳</code>
<code>http:</code><code>//down</code><code>.51cto.com</code><code>/data/2260629</code>
<code>============================================== </code>
<code>#是很常态的安裝方式</code>
<code>tar</code> <code>xvzf libev-4.23.</code><code>tar</code><code>.gz </code>
<code>.</code><code>/configure</code>
<code>make</code>
<code>make</code> <code>install</code>
<code>#再然後就可以開始進入主題了</code>
<code>wget </code><code>"https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.4/source/tarball/percona-xtrabackup-2.3.4.tar.gz"</code>
<code>#安裝方式是cmake的,</code>
<code>tar</code> <code>xf percona-xtrabackup-2.3.4.</code><code>tar</code><code>.gz</code>
<code>cd</code> <code>percona-xtrabackup-2.3.4</code>
<code>=======================================================</code>
<code>#但是到這裡要先等等,安裝前先看看有沒有這個檔案</code>
<code>ls</code> <code>-l CMakeCache.txt</code>
<code>#如果有,就删除,因為編譯過程可能因為這個檔案報錯,不一定存在(取決于是否編譯過),</code>
<code>#但是删掉一定可以通過,是以看實際情況.</code>
<code>rm</code> <code>-rf CMakeCache.txt</code>
<code>#現在可以開始安裝了</code>
<code>cmake -DBUILD_CONFIG=xtrabackup_release -DWITH_MAN_PAGES=OFF</code>
<code>make</code>
經過漫長等待(真的很長),終于裝完,稍等,想要用還要最完最後這一部
<code>cp</code> <code>-ar </code><code>/usr/local/xtrabackup/bin/innobackupex</code> <code>/usr/bin/</code>
<code>cp</code> <code>-ar </code><code>/usr/local/xtrabackup/bin/xtrabackup</code> <code>/usr/bin/</code>
好了,看看我們的勞動成果
<code>xtrabackup --version </code>
<code>xtrabackup version 2.3.4 based on MySQL server 5.6.24 Linux (x86_64) (revision </code><code>id</code><code>: e80c779)</code>
二進制包安裝方式:
說的比較籠統,大家可以直接了解為壓縮包的安裝方式,不用安裝依賴包,非常友善,我也更建議用這種方式來安裝,功能其實沒差.
<code>#首先當然是下載下傳了,我直接下載下傳最新的2.4.4的二進制包了,也可以支援5.7了</code>
<code>wget </code><code>"https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz"</code>
<code>=================================</code>
<code>#覺得下載下傳慢,那就去百度雲下載下傳吧</code>
<code>http:</code><code>//pan</code><code>.baidu.com</code><code>/s/1o8vtPR8</code>
<code>#進入下載下傳的目錄,然後解壓</code>
<code>cd</code> <code>/opt</code>
<code>tar</code> <code>xf percona-xtrabackup-2.4.4-Linux-x86_64.</code><code>tar</code><code>.gz</code>
<code>#直接把解壓出來的目錄移動到去/usr/local</code>
<code>ll</code>
<code>drwxr-xr-x 5 root root 60 7月 21 23:36 percona-xtrabackup-2.4.4-Linux-x86_64</code>
<code>mv</code> <code>percona-xtrabackup-2.4.4-Linux-x86_64 </code><code>/usr/local/</code>
<code>#名字太難看,創個軟連接配接</code>
<code>cd</code> <code>/usr/local/</code>
<code>ln</code> <code>-sf percona-xtrabackup-2.4.4-Linux-x86_64 xtrabackup</code>
<code>lrwxrwxrwx 1 root root 38 11月 19 11:52 xtrabackup -> percona-xtrabackup-2.4.4-Linux-x86_64/</code>
<code>#把指令也創個軟連接配接</code>
<code>ln</code> <code>-sf </code><code>/usr/local/xtrabackup/bin/</code><code>* </code><code>/usr/bin/</code>
<code>#看看效果</code>
<code>xtrabackup --version</code>
<code>xtrabackup version 2.4.4 based on MySQL server 5.7.13 Linux (x86_64) (revision </code><code>id</code><code>: df58cf2)</code>
基本上就是一個解壓和建立軟連接配接的過程,非常簡單
然後這就可以用了,至于怎麼用就看我另一篇文章吧,軟體的版本和支援的mysql版本有關,和指令無關,也就是說指令是基本通用的.
特殊情況說明:
在Ubuntu 16.04的環境下,會報缺失libgcrypt11錯誤,因為Ubuntu 16.04預設安裝libgcrypt20,不提供libgcrypt11,那這個時候我們就要自己去額外安裝了.
<code>#下載下傳位址:</code>
<code>wget http:</code><code>//launchpadlibrarian</code><code>.net</code><code>/279485070/libgcrypt11_1</code><code>.5.3-2ubuntu4.4_amd64.deb</code>
<code>#然後安裝:</code>
<code>dpkg -i libgcrypt11_1.5.3-2ubuntu4.4_amd64.deb</code>
然後再運作上面的步驟,就能解決這個問題
本文轉自arthur376 51CTO部落格,原文連結:http://blog.51cto.com/arthur376/1772177,如需轉載請自行聯系原作者