mysql 定時備份資料

2021-07-16 16:41:42 字數 2460 閱讀 5732

標籤(空格分隔): mysql mysqldump

編寫shell指令碼

#!/bin/bash  

# description: mysql buckup shell script

user="username" // 連線資料庫的 使用者名稱

password="password" //連線資料庫的 密碼

database="your_database" //需要備份的資料庫

#mail="[email protected]"

backup_dir=/data/data_backup/database/ #備份檔案儲存路徑

logfile=/data/data_backup/database/backup.log #日誌檔案路徑

current=`date +"%y%m%d_%h%m"`

dumpfile=backup.$current.sql

archive=backup.$current.sql.tar.gz

options="-u$user -p$password

$database"

#判斷備份檔案儲存目錄是否存在,否則建立該目錄

if [ ! -d

$backup_dir ]

then

mkdir -p "$backup_dir"

fi#開始備份之前,將備份資訊頭寫入日記檔案

echo

" ">> $logfile

echo

"--------------------" >> $logfile

echo

"backup date:" $(date +"%y-%m-%d %h:%m:%s") >> $logfile

echo

"-------------------" >> $logfile

#切換至備份目錄

cd$backup_dir

mysqldump $options > $dumpfile

#判斷資料庫備份是否成功

if [[ $? == 0 ]]

then

tar czvf $archive

$dumpfile >> $logfile

2>&1

echo

"[$archive] backup successful!" >> $logfile

rm -f

$dumpfile

#刪除原始備份檔案,只需保留備份壓縮包

# 把壓縮包檔案備份到其他機器上。

#scp -p 1110 $backup_dir$archive ubuntu@*.*.*.*:/home/user/data_backup/ >> $logfile 2>&1

#mail -s "database:$database daily backup successful!" $mail

else

echo

"database backup fail!" >> $logfile

#備份失敗後向管理者傳送郵件提醒

#mail -s "database:$database daily backup fail!" $mail

fiecho

"backup process done"

#刪除3天以上的備份檔案

#cleaning

find $backup_dir -type f -mtime +2 -name "*.tar.gz" -exec rm -f {} \;

配置定時任務

2.1.進入 編輯定時任務的命令:

crontab -e
2.2. 新增乙個任務

0

3 * * * sh /data/data_backup/script/dump_timely.sh

2.3. 重啟crond

service crond restart

其他 當資料儲存目錄不是mysql的預設目錄時,需要主要建立乙個軟連線。

比如在my.cnf中,資料目錄長這樣:

datadir=/data/mysql_data/mysql

socket=/data/mysql_data/mysql/mysql.sock

然後我們必須建立乙個軟連線

ln -s /data/mysql_data/mysql/mysql.sock /var/lib/mysql/mysql.sock
否則mysqldump啟動不了, 並報類似下面的錯誤:

local mysql server through socket '/var/lib/mysql/mysql.sock'

參考:

mysql定時備份資料

備份指令碼 生產環境已經使用,沒有問題 bin bash 設定mysql的登入使用者名稱和密碼 根據實際情況填寫 mysql user root mysql password 123456 mysql host localhost mysql port 3306 mysql charset utf8...

Mysql遠端定時備份資料

1 建立備份路徑mkdir data backup test 2 建立備份指令碼vim backup.sh寫入shell mysqldump h 需要備份資料庫所在機器ip u使用者名稱 p密碼 備份的資料庫名 opt q r skip lock tables 備份檔案所在路徑例項 mysqldum...

Mysql定時備份資料指令碼

定時任務,計畫在每天晚上23點55分進行資料備份 bin bash 資料庫定時備份,並將備份的庫進行打包壓縮 user root 使用者名稱 passwd 123456 密碼 dataname sjk 資料庫名 back path vdb1 mysql backup 備份位址 date date y...