需求描述

MySQL 备份 670G 的库

  • xtrabackup备份
  • mysqldump备份
  • mydumper备份
    • 缺憾:版本跨度大的时候,不能通用;比如老版本Mydumper备份,不能用新版本的恢复
mydumper -u root -p root_pwd -G -R -E -B database -o /tmp/mysql_backup/ -h 172.16.6.28

最佳实践

  • mysql超过26G ,就用 xtrabackup ,mysqldump效率会很低
  • 并行备份,比如 mydumper 是挺快的
  • 备份速度影响:物理备份看盘,以及是否开备份启压缩

备份脚本

 # 部分参数请根据实际调整
current time=$(date +"%Y-%m-%d %H-%M-%S")
remote backup_dir="/data/backup file storage/mysql/hesuan/$[current time] full"
sshpass -p "xxx" ssh xxx"mkdir -p $(remote backup dir)"
user=root
password=xxxx
socket="/data/mysq1/3396/aata/sock/mysgl.sock"
myconf="/data/mysql/3306/conf/my.cnf"
hub ssh user passwd="xxxxx"
expect <<EOF
set timeout 1200;
spawn bash -c "/usr/local/xtrabackup/bin/xtrabackup --defaults-file=$(myconf) \
--no-timestamp --slave-info \
--paralle1=8 --compress --compress-thread=8 \
--safe-slave-backup --safe-slave-backup-timeout=360 \
--ftwrl-wait-threshold=10 --ftwrl-wait-query-type=all --ftwrl-wait-timeout=180 \
--kill-long-queries-timeout=40 --kill-long-query-type=SELECT \
--user=${user] --password=${password} --socket=${socket} \
--backup
--stream=xbstream \
--target-dir=./ | ssh xxxxx \"cat- >$(remote backup dir}/$(date +%Y-%m-%d %H:%m:%s) fullback.xbstream \""
expect {
    "*yes/no*" {send "yes\n";exp continue}
    "*permission denied*" (exit 1}
    "*password*" {send "${hub ssh user_passwd]\n";exp continue}
    "*Killed by signal 1" {exit 1}
}
EOF


  • 无标签

0 评论

你还没有登录。你所做的任何更改会将作者标记为匿名用户。 如果你已经拥有帐户,请登录