# 不占用mysql进行的备份的方式 ## 安装过程 ``` xtrabackup-24 安装 [root@centos7 ~]# yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm # 加入该代码,启用这个repo percona-release enable-only tools release [root@centos7 ~]# yum -y install percona-xtrabackup-24 [root@centos7 ~]# yum -y install qpress ##innobackupex支持压缩导出,这里安装压缩工具 [root@centos7 ~]# innobackupex -version ###如果出现如下提示表示安装成功,我这里2.4.15 xtrabackup: recognized server arguments: --server-id=11 --datadir=/data/mysql_data --tmpdir=/tmp --log_bin=bin.log --innodb_page_size=8192 --innodb_buffer_pool_size=2G --innodb_io_capacity=4000 --innodb_flush_method=O_DIRECT --innodb_undo_tablespaces=3 --innodb_log_file_size=128M --innodb_log_buffer_size=16777216 innobackupex version 2.4.15 Linux (x86_64) (revision id: 544842a) [root@centos7 ~]# xtrabackup-80安装:(支持mysql8) 1.安装libev依赖 yum install libev 2.安装zstd依赖 yum install epel-release -y yum install zstd -y 3.安装Percona yum存储库 yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y 4.启用存储库 percona-release enable-only tools 5.安装xtrabackup yum install percona-xtrabackup-80 至此,xtrabackup安装完成 ``` ## 使用 ``` 备份全库到本地: xtrabackup --user=root --password=1234qwer --socket=/tmp/mysql.sock --backup --target-dir=/u01/apps/mysql8/datas/all_db --parallel=8 xtrabackup --user=root --password=1234qwer --databases=mscode_auth --socket=/tmp/mysql.sock --backup --target-dir=/u01/bak/mysql/backup/mscode_auth_db_`date +%F` --parallel=4 --compress --compress-threads=2 --compress 压缩 ``` ## 测试实例 ``` 10分钟备份完: 13G xtrabackup --user=root --password=1234qwer --socket=/tmp/mysql.sock --backup --target-dir=/u01/bak/mysql/backup/all_db_`date +%F` --parallel=4 --compress --compress-threads=2 scp -r -P 2828 /u01/bak/mysql/backup/all_db_2024-09-07 root@172.16.88.150:/u01/bak 123qwe!! 2.还原:20分钟 解压: xtrabackup --decompress --parallel=4 --target-dir=/u01/bak/all_db_2024-09-07 systemctl stop mysqld cd /u01/apps/mysql8/datas mv mysql mysqlbak mv /u01/bak/all_db_2024-09-07 ./mysql xtrabackup --prepare --apply-log-only --target-dir=/u01/apps/mysql8/datas/mysql chown -R mysql.mysql ./mysql 启动数据库: systemctl start mysqld ``` ## 备份压缩 ``` xtrabackup --user=root --password=874eded4026f572f --databases=sql_seee_btcahol --tables-exclude=sql_seee_btcahol.failed_jobs --socket=/tmp/mysql.sock --backup --target-dir=/u01/bak/db02_sql_seee_btcahol_`date +%F` --parallel=8 --compress --compress-threads=2 *** 例2 xtrabackup --user=root --password=874eded4026f572f --databases=sql_seee_btcahol --tables-exclude="failed_jobs|data_tvw|data_wvh|data_ifs|data_oyd|data_qbu|data_ady|data_aei|data_aei_copy1|data_bdw|data_ena|data_ifs|data_ihda|data_mrs|data_nfa|data_nxs|data_owv|data_owv_1|data_oyd|data_qbu|data_qdi|data_qyf|data_rgx|data_sgu|data_tda|data_tda_copy1|data_tes|data_tvw|data_tvw_1|data_uie|data_uio||data_uio_copy1||data_wtz||data_wvh||data_wvh_copy1||data_ydw||data_yfw||data_yis|| data_yug|| data_yuna||data_zdh|data_zgr" --socket=/tmp/mysql.sock --backup --target-dir=/u01/bak/db06_sql_seee_btcahol_`date +%F` --parallel=8 --compress --compress-threads=2 ** 通用 `xtrabackup --user=$mysql_user --password=$mysql_password --databases=$dbname --tables-exclude="failed_jobs${ignoretbs[@]}" --socket=/tmp/mysql.sock --backup --target-dir=//www/embk/$dbname_`date +%F` --parallel=8 --compress --compress-threads=2` ``` ## 参考网址 [mysql中xtrabackup全量备份/增量备份及恢复](https://www.jb51.net/database/327463ae4.htm) [mysql-xtrabackup的使用](https://blog.csdn.net/line_on_database/article/details/130482851) [MySQL备份之Xtrabackup](https://blog.csdn.net/Celeste7777/article/details/47354965) [使用xtrabackup备份工具完全恢复MySQL数据库](https://www.modb.pro/db/1791643273223294976)