2168575 发表于 2018-9-30 10:59:38

MySql Database 备份(Percona XtraBackup)

# rpm -ivh percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm  
# su - mysql
  
$ mkdir backup
  

  
完整备份
  
$ vi full_backup.sh
  
#!/bin/bash
  
user='root'
  
passwd='abcd.1234'
  
my_config='/etc/my.cnf'
  
backup_dir='/home/mysql/backup'
  
if [ -f ~/.bash_profile ];
  
then
  
. ~/.bash_profile
  
fi
  
innobackupex--defaults-file=$my_config --user=$user --password=$passwd $backup_dir
  

  
# 删除N天前的备份
  
last_day=$(date -d "1 days ago" +%Y-%m-%d)
  
filename=$(find $backup_dir -name "$last_day*" -print|awk -F / '{print $NF}')
  
if [ ! -n "$filename" ]; then
  
echo "null"
  
else
  
rm -rf $backup_dir/$filename
  
fi
  

  
$ chmod a+x full_backup.sh
  

  
增量备份
  
$ vi incr_backup.sh
  
#!/bin/bash
  
user='root'
  
passwd='abcd.1234'
  
my_config='/etc/my.cnf'
  
backup_dir='/home/mysql/backup/'
  
last_day=$(date -d "1 days ago" +%Y-%m-%d)
  
filename=$(find $backup_dir -name "$last_day*" -print|awk -F / '{print $NF}')
  
if [ -f ~/.bash_profile ];
  
then
  
. ~/.bash_profile
  
fi
  
innobackupex --defaults-file=$my_config --user=$user --password=$passwd --incremental --incremental-basedir=$backup_dir/$filename $backup_dir
  

  
$ chmod a+x incr_backup.sh
  

  
$ crontab -e
  
00 3 * * 0 /home/mysql/full_backup.sh>/home/mysql/backup/full_backup.log 2>&1
  
00 3 * * 1-6 /home/mysql/incr_backup.sh>/home/mysql/backup/incr_backup.log 2>&1
  

  
$ crontab -l
  
00 3 * * 0 /home/mysql/full_backup.sh>/home/mysql/backup/full_backup.log 2>&1
  
00 3 * * 1-6 /home/mysql/incr_backup.sh>/home/mysql/backup/incr_backup.log 2>&1


页: [1]
查看完整版本: MySql Database 备份(Percona XtraBackup)