mysql簡單資料庫定期備份
阿新 • • 發佈:2021-01-22
-
需要對單節點mysql主機中的資料庫定期進行備份,備份需求是每天全量備份一次,保留七天資料,方法如下:
-
需要備份的資料庫:
infor
yy -
書寫的指令碼為:
需要修改的地方:
1.密碼
2.mysql.sock路徑
3.--databases 後面接的資料庫名稱
4./data/$day/$day.yy.sql 為我自己存放位置,根據自己需求修改
vim /data/backup.sh #!/bin/bash source /etc/profile day=`date +%Y%m%d` password=wa!11111qaz mkdir -p /data/$day mysqldump --single-transaction --master-data=2 -S /var/lib/mysql/mysql.sock --databases infor -p$password> /data/$day/$day.infor.sql mysqldump --single-transaction --master-data=2 -S /var/lib/mysql/mysql.sock --databases yy -p$password> /data/$day/$day.yy.sql
- 之後設定定時任務,每天的晚上五點半進行全量備份
crontab -u root -e
30 17 * * * sh /data/backup.sh
- 最後實現的效果為(每天會建立一個資料夾,裡面包含所有的備份資料庫):
- 另外,如果想要備份整個全套的,可以用-A引數:
mysqldump --single-transaction --master-data=2 -S /var/lib/mysql/mysql.sock -A -p$password > /data/$day.sql
注意:
如果有主從服務的話,進行備份,要開啟binlog服務。
vim /etc/my.cnf //server_id 運算方式為:伺服器ip後一位加上埠 如果是192.168.1.111 3307------ 1113307 10.203.144.95 3306 ----953306 server_id =953306 binlog_format =row log_bin =mysql-bin binlog_rows_query_log_events =on log_slave_updates =on expire_logs_days =7 binlog_cache_size =65536 sync_binlog =1 slave-preserve-commit-order =ON
systemctl restart mysqld
如果不想寫變數,並且是全量完整備份的話,可以這樣執行:
mysqldump --single-transaction --master-data=2 -S /var/lib/mysql/mysql.sock -A -p'密碼'> $instance_$port_`date +%F`.sql