xtrabackup 操作及安裝

這是一套針對 mysql 在線備份服務系統,那本篇會記錄該服務是怎麼安裝的

備份


mysqld -v
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.26/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm
yum install percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm
fs.file-max = 51200
kernel.core_uses_pid = 1
kernel.msgmax = 65536
kernel.msgmnb = 65536
kernel.shmall = 4294967296
kernel.shmmax = 68719476736
kernel.sysrq = 0
net.core.netdev_max_backlog = 262144
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.somaxconn = 262144
net.core.wmem_default = 8388608
net.core.wmem_max = 16777216
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.ip_forward = 0
net.ipv4.ip_local_port_range = 1024    65000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_rmem = 4096        87380   4194304
net.ipv4.tcp_sack = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_wmem = 4096        16384   4194304
kernel.pid_max=1048576
kernel.threads-max=1048576
vm.max_map_count=1048576

fs.inotify.max_user_instances = 128000
fs.inotify.max_user_watches = 8192000
fs.inotify.max_queued_events = 1638400

*     soft   nofile    100000
*     hard   nofile    100000
*     soft   nproc     100000
*     hard   nproc     100000
*     soft   core      100000
*     hard   core      100000
session required   pam_limits.so
ulimit -n 20480
innobackupex --defaults-file=/etc/my.cnf --host=127.0.0.1 --port=3306 --user=root --password=****** ./restore
innobackupex --defaults-file=/etc/my.cnf --host=127.0.0.1 --port=3306 --user=root --password=****** --incremental ./restore/incer1 --incremental-basedir=./restore/2022-04-23_11-39-31
innobackupex --defaults-file=/etc/my.cnf --host=127.0.0.1 --port=3306 --user=root --password=****** --incremental ./restore/incer2 --incremental-basedir=./restore/incer1/2022-04-23_11-47-10

還原


systemctl stop mysqld
要注意一下 my.cnf 裡面檔案存放路徑在那
如果在預設目前以外的地方請先建立好相同的目錄。例如:
datadir=/volume1/mysql
innobackupex --apply-log --use-memory=4G --redo-only 備份檔路徑
# 例如:
innobackupex --apply-log --use-memory=4G --redo-only BASE-DIR
innobackupex --apply-log --use-memory=4G --redo-only 完整備份檔路徑 --incremental-dir=差異備份檔路徑  
# 例如:
innobackupex --apply-log --use-memory=4G --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
# 回滾未完成的日誌
innobackupex --apply-log BASE-DIR
innobackupex --apply-log --use-memory=4G --redo-only 完整備份檔路徑 --incremental-dir=差異備份檔路徑  
# 例如:
innobackupex --apply-log --use-memory=4G --redo-only BASE-DIR  --incremental-dir=INCREMENTAL-DIR-1
# 第二個不需 --redo-only 此參數
innobackupex --apply-log --use-memory=4G BASE-DIR  --incremental-dir=INCREMENTAL-DIR-2
# 回滾未完成的日誌
innobackupex --apply-log BASE-DIR 

完整備份目錄,daily.0是指第一次的增量備份,daily.1是指第二次的增量備份,以此類推。這裡要注意的是:最後一步的增量備份並沒有 --redo-only 選項!還有,可以使用 --use-memory 提高性能。

還原之前要先注意要還原目錄下要是空不能有資料

innobackupex --defaults-file=/etc/my2.cnf --copy-back 備份檔的路徑
例如:
innobackupex --defaults-file=/etc/my.cnf --copy-back BASE-DIR 
chown -R mysql:mysql /var/lib/mysql

參考相關網站



Revision #1
Created 26 July 2022 16:41:27 by Freedom
Updated 26 July 2022 16:51:46 by Freedom