麒麟系统V10 arm版部署Xtrabackup8🌵
搭建好MySQL或主从复制后,需要配置备份策略。可以设置逻辑备份,也可以设置物理备份。
ARM架构只能编译安装percona-xtrabackup。
官方文档:https://docs.percona.com/percona-xtrabackup/8.0/compile-xtrabackup.html#2-installation-prerequisites
麒麟V10系统信息:
[root@localhost ~]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Sword)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)"
ANSI_COLOR="0;31"
[root@localhost ~]# uname -a
Linux iZ2zehq1ipv0p99b58g8k7Z 4.19.90-25.23.v2101.ky10.aarch64 #1 SMP Wed Jan 4 09:57:28 CST 2023 aarch64 aarch64 aarch64 GNU/Linux
1. 下载Xtrabackup
1.1 安装XtraBackuo工具:
[root@localhost ~]# wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-34/source/tarball/percona-xtrabackup-8.0.35-34.tar.gz
1.2 安装依赖
[root@localhost ~]# yum install -y cmake make gcc-c++ libtool bison \
openssl-devel libcurl-devel ncurses-devel readline-devel \
libaio-devel numactl-devel libev-devel libtirpc-devel libudev-devel \
zlib-devel libzstd-devel lz4-devel libxml2-devel libidn-devel libicu-devel \
cyrus-sasl-devel openldap-devel libgcrypt-devel libgpg-error-devel \
protobuf-devel protobuf-compiler patch vim-common procps-ng-devel
2. 解压安装
[root@localhost ~]# tar -xvf percona-xtrabackup-8.0.35-34.tar.gz -C /root/soft
[root@localhost ~]# cd percona-xtrabackup-percona-xtrabackup-8.0.35-34
[root@localhost percona-xtrabackup-percona-xtrabackup-8.0.35-34]# mkdir build
[root@localhost percona-xtrabackup-percona-xtrabackup-8.0.35-34]# cd build
boost下载超时,需手动下载部署。
#在同级目录build操作
[root@localhost build]# mkdir -p boost
#直接解压到boost目录下
[root@localhost build]# tar -xjf boost_1_77_0.tar.bz2 -C boost --strip-components=1
3. cmake配置
**CMake(跨平台自动化构建系统)**是软件编译过程中的核心工具,用于管理项目构建的全生命周期。
[root@localhost build]# cmake .. \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/usr/local/percona-xtrabackup-8.0.35 \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DWITH_BOOST=/root/soft/percona-xtrabackup-8.0.35-34/build/boost \
-DDOWNLOAD_BOOST=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=bundled \
-DWITH_LZ4=bundled \
-DWITH_ZSTD=bundled \
-DWITH_CURL=system \
-DWITH_ICU=bundled \
-DWITH_PROTOBUF=system \
-DPROTOBUF_LITE_LIBRARY=/usr/lib64/libprotobuf-lite.so \
-DPROTOBUF_LIBRARY=/usr/lib64/libprotobuf.so \
-DPROTOBUF_INCLUDE_DIR=/usr/include \
-DWITH_LDAP=OFF \
-DWITH_FIDO=none \
-DWITH_NUMA=OFF \
-DWITH_VERSION_CHECK=OFF \
-DWITH_MAN_PAGES=OFF
① 如果报错"kerberos"
CMake Error at cmake/kerberos.cmake:407 (MESSAGE): Could not find KERBEROS Call Stack (most recent call first):
CMakeLists.txt:1819 (MYSQL_CHECK_KERBEROS) -- Configuring incomplete, errors occurred!
需在源码级别禁止 Kerberos 检测,注释掉 "#MYSQL_CHECK_KERBEROS()"。
[root@localhost build]# vim CMakeLists.txt
#找到这一行(大约在 1819 行左右):
MYSQL_CHECK_KERBEROS()
#直接注释掉
# MYSQL_CHECK_KERBEROS()
每次报错,都需清空build目录,重新操作。
cmake构建成功:
#看到以下信息,说明cmake构建成功。
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
ENABLE_DOWNLOADS
-- Build files have been written to: /root/package/percona-xtrabackup-8.0.35-34/build
4. make编译
[root@localhost build]# make -j4 (看服务器CPU情况配置)
#出现以下内容编译成功
[100%] Building CXX object storage/innobase/xtrabackup/src/CMakeFiles/xtrabackup.dir/kdf.cc.o
[100%] Building CXX object storage/innobase/xtrabackup/src/CMakeFiles/xtrabackup.dir/space_map.cc.o
cc1plus: warning: -Wformat-security ignored without -Wformat [-Wformat-security]
cc1plus: warning: -Wformat-security ignored without -Wformat [-Wformat-security]
[100%] Building CXX object storage/innobase/xtrabackup/src/CMakeFiles/xtrabackup.dir/redo_log_consumer.cc.o
cc1plus: warning: -Wformat-security ignored without -Wformat [-Wformat-security]
[100%] Building CXX object storage/innobase/xtrabackup/src/CMakeFiles/xtrabackup.dir/redo_log.cc.o
cc1plus: warning: -Wformat-security ignored without -Wformat [-Wformat-security]
[100%] Building CXX object storage/innobase/xtrabackup/src/CMakeFiles/xtrabackup.dir/__/__/__/__/sql-common/client_authentication.cc.o
cc1plus: warning: -Wformat-security ignored without -Wformat [-Wformat-security]
[100%] Linking CXX executable ../../../../runtime_output_directory/xtrabackup
make[2]: Leaving directory '/root/soft/percona-xtrabackup-8.0.35-34/build'
[100%] Built target xtrabackup
make[1]: Leaving directory '/root/soft/percona-xtrabackup-8.0.35-34/build'
5. make install安装
[root@localhost build]# make install
安装完成后,需设置环境变量
[root@localhost build]# echo 'export PATH=/usr/local/percona-xtrabackup-8.0.35/bin:$PATH' >> /etc/profile
[root@localhost build]# source /etc/profile
① 查看版本
[root@localhost build]# xtrabackup --version
2025-12-25T11:07:44.972353+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --datadir=/var/lib/mysql/data --server-id=2 --log_bin=mysql-bin
xtrabackup version 8.0.35-34 based on MySQL server 8.0.35 Linux (aarch64) (revision id: c8a25ff9)
② 检查动态链接库
[root@localhost build]# ldd /usr/local/percona-xtrabackup-8.0.35/bin/xtrabackup
linux-vdso.so.1 (0x0000fffc6a1c0000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000fffc6a160000)
libaio.so.1 => /lib64/libaio.so.1 (0x0000fffc6a130000)
libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x0000fffc6a050000)
libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x0000fffc6a000000)
libprocps.so.8 => /lib64/libprocps.so.8 (0x0000fffc69fb0000)
libprotobuf-lite.so.23 => /lib64/libprotobuf-lite.so.23 (0x0000fffc69ee0000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000fffc69ea0000)
librt.so.1 => /lib64/librt.so.1 (0x0000fffc69e70000)
libssl.so.1.1 => /lib64/libssl.so.1.1 (0x0000fffc69dc0000)
libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x0000fffc69ae0000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000fffc69ab0000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000fffc69900000)
libm.so.6 => /lib64/libm.so.6 (0x0000fffc69830000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000fffc697f0000)
libc.so.6 => /lib64/libc.so.6 (0x0000fffc69660000)
/lib/ld-linux-aarch64.so.1 (0x0000fffc6a1d0000)
libsystemd.so.0 => /lib64/libsystemd.so.0 (0x0000fffc69590000)
libz.so.1 => /lib64/libz.so.1 (0x0000fffc69550000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x0000fffc69500000)
liblz4.so.1 => /lib64/liblz4.so.1 (0x0000fffc694a0000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000fffc69450000)
libsecurity.so.0 => /lib64/libsecurity.so.0 (0x0000fffc69420000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x0000fffc69370000)
编译安装成功!