mysql全量備份-計劃任務
阿新 • • 發佈:2022-05-17
[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