1. 程式人生 > 其它 >mysql全量備份-計劃任務

mysql全量備份-計劃任務

[root@mysql8-32 script]# cat beifen1.sh
#!/bin/bash
BACKUP=/backup3
BACKUP_TIME=`date +%F_%H-%M-%S`
[ -d "$BACKUP" ] || mkdir $BACKUP
mysqldump -uroot -A --single-transaction --source-data=1  --hex-blob >${BACKUP}/fullbak_${BACKUP_TIME}.sql
#mysqldump -uroot -A -F -E -R --triggers --single-transaction --master-data=1
--flush-privileges --default-character-set=utf8 --hex-blob >${BACKUP}/fullbak_${BACKUP_TIME}.sql #單機 --master-data=2 會將change master 語句寫入dump檔案中,只不過會被註釋掉在,從庫匯入後,配置主從需要指定檔名和位置 #主從 --master-data=1 會將change master 語句寫入dump檔案中,在從庫匯入後,配置主從無需再指定檔名和位置 #當master_data和 single_transaction 同時使用時,先加全域性讀鎖,然後設定事務一致性和使用一致性快照開始事務,然後馬上就取消鎖,然後執行匯出。 #如果不想阻塞,同時表是innodb引擎,可使用 single
-transaction 取得一致性快照(取出的資料是匯出開始時刻事務點的狀態 ) #FLUSH TABLES WITH READ LOCK #SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ #如果表不支援多版本特性,則只能使用 lock-all-tables 阻塞方式來保證一致性的匯出資料。

指令碼加執行許可權

[root@Mariadb script]# crontab -e
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
00  03  *  *  *  /script/beifen.sh

壓縮備份 系統外每個資料庫

[root@Mariadb script]# cat beifen2.sh 
#!/bin/bash
#mysql -uroot -S /mysql/3306/socket/mysql.sock -p123456
for db in `mysql -uroot -S /mysql/3306/socket/mysql.sock -p123456 -e "show databases;" |grep -Ev 'information_schema|performance_schema|test|mysql' | grep -v Database`
do 
  mysqldump -uroot -S /mysql/3306/socket/mysql.sock -p123456 -B $db | gzip > /backup/$db-`date +%F_%H-%M-%S`.sql.gz
done