mysql資料庫定時備份

2021-10-24 21:56:55 字數 2795 閱讀 2112

找乙個目錄新建乙個指令碼,這裡選擇/var/bin

vim /var/bin/mysql_data_backup.sh
指令碼:

# 以下配置資訊請自己修改

mysql_user="root" #mysql備份使用者

mysql_password="root" #mysql備份使用者的密碼

mysql_host="localhost"

mysql_port="3306"

mysql_charset="utf8" #mysql編碼

backup_db_arr=("db1" "db2") #要備份的資料庫名稱,多個用空格分開隔開 如("db1" "db2" "db3")

backup_location=/opt/mysqlbackup #備份資料存放位置,末尾請不要帶"/",此項可以保持預設,程式會自動建立資料夾

expire_backup_delete="on" #是否開啟過期備份刪除 on為開啟 off為關閉

expire_days=3 #過期時間天數 預設為三天,此項只有在expire_backup_delete開啟時有效

# 本行開始以下不需要修改

backup_time=`date +%y%m%d%h%m` #定義備份詳細時間

backup_ymd=`date +%y-%m-%d` #定義備份目錄中的年月日時間

backup_3ago=`date -d '3 days ago' +%y-%m-%d` #3天之前的日期

backup_dir=$backup_location/$backup_ymd #備份檔案夾全路徑

welcome_msg="welcome to use mysql backup tools!" #歡迎語

# 判斷mysql是否啟動,mysql沒有啟動則備份退出

mysql_ps=`ps -ef |grep mysql |wc -l`

mysql_listen=`netstat -an |grep listen |grep $mysql_port|wc -l`

if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; then

echo "error:mysql is not running! backup stop!"

exit

else

echo $welcome_msgfi

# 連線到mysql資料庫,無法連線則備份退出

mysql -h$mysql_host -p$mysql_port -u$mysql_user -p$mysql_password <$backup_dir/$dbname-$backup_time.sql.gz`

flag=`echo $?`

if [ $flag == "0" ];then

echo "database $dbname success backup to $backup_dir/$dbname-$backup_time.sql.gz"

else

echo "database $dbname backup fail!"fi

done

else

echo "error:no database to backup! backup stop"

exit

fi# 如果開啟了刪除過期備份,則進行刪除操作

if [ "$expire_backup_delete" == "on" -a "$backup_location" != "" ];then

#`find $backup_location/ -type d -o -type f -ctime +$expire_days -exec rm -rf {} \;`

`find $backup_location/ -type d -mtime +$expire_days | xargs rm -rf`

echo "expired backup data delete complete!"

fiecho "all database backup success! thank you!"

exit

fi

賦予指令碼許可權

chmod 600 /opt/mysqlbackup.sh

chmod +x /opt/mysqlbackup.sh

新增定時器

vi /etc/crontab
指定每天凌晨1點執行備份

00 01 * * * /var/bin/mysql_data_backup.sh
重啟

/sbin/service crond reload //重新載入配置

/sbin/service crond restart //重啟服務

cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:

/sbin/service crond start //啟動服務

/sbin/service crond stop //關閉服務

/sbin/service crond restart //重啟服務

/sbin/service crond reload //重新載入配置

檢視crontab服務狀態:service crond status

手動啟動crontab服務:service crond start

檢視crontab服務是否已設定為開機啟動,執行命令:ntsysv

加入開機自動啟動:

chkconfig --level 35 crond on

MySQL資料庫定時備份

建立shell指令碼 在 usr local mysql 資料夾下建立backupdb.s 件 指令碼檔案可以自定義位置 vim backupdb.sh 建立指令碼內容如下 bin sh db user root db passwd 123123 db name userdb name date y...

MySql 資料庫定時備份

1 使用sqldump 任務計畫 mysqldump備份成sql檔案 假想環境 mysql 安裝位置 c mysql 論壇資料庫名稱為 bbs mysql root 密碼 123456 資料庫備份目的地 d db backup 指令碼 rem code start echo off cd c mys...

定時備份mysql資料庫

echo off set ymd date 4 date 5,2 date 8,2 e study phpstudy mysql bin mysqldump opt u root password root esc d db backup db ymd sql echo on 然後將txt文件改成b...