環境:aarch64/centos7.6 glibc-2.17
編譯器:gcc version 5.5.0 (GCC)
官方參考文檔:https://www.percona.com/doc/percona-xtrabackup/2.4/installation/compiling_xtrabackup.html
安裝依賴
- yum install -y cmake gcc gcc-c++ libaio libaio-devel automake autoconf bison libtool ncurses-devel libgcrypt-devel libev-devel libcurl-devel vim-common
- boost-1.59.0.tar.gz放置到/home/actiontech/src/boost_1_59_0/,不需要解壓
解壓源碼包
下載到/usr/src並解壓
開始編譯
- 在源碼目錄下新建編譯目錄/usr/src/percona-xtrabackup-2.4.5/build
- cd /usr/src/percona-xtrabackup-2.4.5/build
- 執行“CC=/usr/local/gcc-5.5/bin/gcc CXX=/usr/local/gcc-5.5/bin/g++ cmake .. -DWITH_BOOST=/home/actiontech/src/boost_1_59_0 -DCMAKE_INSTALL_PREFIX=/opt/percona-xtrabackup-2.4.5 -DBUILD_CONFIG=xtrabackup_release -DWITH_MAN_PAGES=OFF
-
- 如果沒有boost源碼包,可使用參數-DDOWNLOAD_BOOST=1自動下載,-DWITH_BOOST指定boost源碼保存的目錄
- cmake過程如果發生錯誤,重新cmake前需要刪除編譯目錄下的CMakeCache.txt文件
-
cmake成功,編譯目錄下生成Makefile
-
- make -j4 && make install
編譯成功的xtrabackup被安裝在/opt/percona-xtrabackup-2.4.5
踩坑記錄
報錯:
原因:當時使用了gcc7.3.1編譯觸發了xtrabackup的bug: https://jira.percona.com/browse/PXB-502axs
解決方案:
- 使用xtrabackup2.4.9,因爲該bug在2.4.9修復
- 使用低版本的gcc5.5.0