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