云计算百科
云计算领域专业知识百科平台

【MySQL】KylinV10 ARM 服务器上编译MySQL 5.7 XtraBackup

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}

在ARM架构服务器(如aarch64)上编译Percona XtraBackup 2.4,需先安装依赖库、处理boost库依赖,并使用CMake配置编译。
注意: 编译服务器的内存别少于8G,否则大概率编译会卡住。

image.png

image.png

1.依赖安装

编译前需安装开发工具和库依赖。以YUM包管理器为例,执行:

yum install -y cmake gcc gcc-c++ libaio libaio-devel automake autoconf bison libtool ncurses-devel libgcrypt-devel libev-devel curl-devel

部分系统可能需额外安装crypt-devel以解决libgcrypt.h缺失问题。

2. boost库配置

Percona XtraBackup 2.4 需要Boost 1.59.0。
若系统未预装,需手动下载并指定路径:

  • 下载Boost源码:wget https://archives.boost.io/release/1.59.0/source/boost_1_59_0.tar.gz
  • 解压至指定目录(如/usr/local/boost/):tar zxf boost_1_59_0.tar.gz -C /usr/local/boost/
  • 编译时通过-DWITH_BOOST参数指向该路径。

为什么 Percona XtraBackup 2.4.28 不能使用系统自带的 Boost 1.78 ?

Percona XtraBackup 2.4.28 强制要求使用 Boost 1.59.0 而不是系统自带的 Boost 1.78,主要有以下几个原因:
API 和 ABI 兼容性问题

  • 二进制兼容性:Boost 库在不同版本间可能存在二进制接口(ABI)不兼容
  • API 变更:Boost 1.59 到 1.78 之间某些API可能发生了变化,导致编译或运行时错误
  • 内部依赖:XtraBackup 可能依赖特定版本的Boost内部实现细节
  • 测试和验证限制
    • Percona 只在 Boost 1.59.0 上进行了全面测试和验证
    • 新版本Boost可能引入未预期的行为变化或性能差异
  • 历史版本依赖
    • XtraBackup 2.4.28 是基于较旧的MySQL/Percona Server代码分支开发的
    • 当时开发环境使用的就是Boost 1.59.0
  • 已知问题规避
    • 特定版本的Boost可能包含已知问题的修复或规避方案

    3. 源码获取与编译

    3.1. 下载源码:从Percona官方源获取2.4版本源码包(如2.4.28):

    wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.28/source/tarball/percona-xtrabackup-2.4.28.tar.gz

    3.2. 解压并编译:

    tar zxf percona-xtrabackup-2.4.28.tar.gz
    cd percona-xtrabackup-2.4.28
    cmake -DBUILD_CONFIG=xtrabackup_release -DWITH_MAN_PAGES=OFF -DWITH_BOOST=/usr/local/boost
    make -j$(nproc)

    • cmake阶段会检查依赖,若缺失库(如libev、cURL),需提前安装对应-devel`包。
    • make -j$(nproc)使用所有CPU核心加速编译,可根据硬件调整。

    4.常见问题解决

    • Boost下载失败:若网络受限,提前下载Boost并禁用自动下载(通过-DDOWNLOAD_BOOST=1)。
    • 依赖库未找到:如提示Cannot find gcrypt.h,确保libgcrypt-devel已安装;若libev缺失,安装libev-devel。
    • CMake错误:检查PATH是否包含cmake,并确认源码路径无中文或空格。

    5.验证与安装

    编译完成后,验证二进制文件:

    make install

    安装路径默认为/usr/local/xtrabackup/,可调整CMAKE_INSTALL_PREFIX自定义。

    # ll /usr/local/xtrabackup/
    total 0
    drwxr-xr-x 2 root root 111 Dec 22 21:35 bin
    drwxr-xr-x 3 root root 20 Dec 22 21:35 lib
    drwxrwxr-x 9 root root 203 Dec 22 21:35 xtrabackup-test

    # ll /usr/local/xtrabackup/bin/
    total 212500
    lrwxrwxrwx 1 root root 10 Dec 22 21:35 innobackupex -> xtrabackup
    -rwxr-xr-x 1 root root 11421640 Dec 22 21:25 xbcloud
    -rwxr-xr-x 1 root root 3020 Dec 22 21:23 xbcloud_osenv
    -rwxr-xr-x 1 root root 5810448 Dec 22 21:25 xbcrypt
    -rwxr-xr-x 1 root root 5954856 Dec 22 21:25 xbstream
    -rwxr-xr-x 1 root root 194400768 Dec 22 21:34 xtrabackup

    /usr/local/xtrabackup/bin/xtrabackup –version

    xtrabackup: recognized server arguments:
    /usr/local/xtrabackup/bin/xtrabackup version 2.4.28 based on MySQL server 5.7.40 Linux (aarch64) (revision id: 44a8f7b)

    file /usr/local/xtrabackup/bin/xtrabackup

    /usr/local/xtrabackup/bin/xtrabackup: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=c259a4707495cdad9da6350f38a40ad0cef3d262, for GNU/Linux 3.7.0, with debug_info, not stripped

    参考

    boost_1_59_0
    https://www.boost.org/releases/1.59.0/

    Percona XtraBackup/Percona XtraBackup 2.4
    https://www.percona.com/downloads

    Compiling and Installing from Source Code
    https://docs.percona.com/percona-xtrabackup/2.4/installation/compiling_xtrabackup.html

    ARM架构下麒麟V10操作系统编译xtrabackup
    https://blog.csdn.net/weixin_58090109/article/details/118493212

    国产麒麟 arm 上编译安装 xtrabackup8
    https://opensource.actionsky.com/20220718-xtrabackup8

    MySQL 备份利器 Xtrabackup 全解析:从部署到恢复的实战指南
    https://mp.weixin.qq.com/s/YWvR32KuOR6HBJAcZ2trHw

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【MySQL】KylinV10 ARM 服务器上编译MySQL 5.7 XtraBackup
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!