mysqldump备份

 

mysql备份:

backup_dir='/data/backup/mysql'
database_name='dbname'
bak_save_days=7
dd=`date +%Y-%m-%d-%H-%M-%S`

if [ ! -d $backup_dir ];then
  mkdir -p $backup_dir
fi

mysqldump --defaults-extra-file=/etc/mypass.txt --flush-logs --single-transaction --set-gtid-purged=OFF $database_name | gzip > $backup_dir/$database_name-$dd.sql.gz

mysqldump --defaults-extra-file=/etc/my_pass.txt --flush-logs --single-transaction  $database_name | gzip > $backup_dir/$database_name-$dd.gtid.sql.gz

#删除7天前的备份
find ${backup_dir} -maxdepth 1 -type f -name "*.sql.gz" -mtime +${bak_save_days} -exec rm -rf {} \;

 

mysqldump 不使用`--set-gtid-purged=OFF`,默认为--set-gtid-purged=ON,那么就会导出整个数据库的GTID号码,应用场景:将主库的数据备份出来还原到从库

使用`--set-gtid-purged=OFF`,不产生gtid,将备份的数据库全新还原到其他DB,自动重新生成新的gtid

posted on 2024-01-24 17:28  momingliu11  阅读(7)  评论(0编辑  收藏  举报