中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL如何定時備份方案

發布時間:2020-07-20 11:09:11 來源:億速云 閱讀:161 作者:小豬 欄目:開發技術

這篇文章主要講解了MySQL如何定時備份方案,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

前言

雖說現在這世道有些愛情是有價的,但是數據是無價的,數據備份是尤為的重要,可以在你未來的某一天不小心刪庫了,不用著急跑路。

MySQL如何定時備份方案

本片文章介紹的方案是利用Linux自身的crontab定時任務功能,定時執行備份數據庫的腳本。

技術要點:

  • 數據庫備份dump命令
  • shell腳本
  • Linux定時任務crontab
     

數據備份dump

數據庫都有一個導出數據庫內數據和結構的命令,就是備份。

將備份的數據還原會將原來的數據中的表刪了重建,再插入備份中的數據,這是恢復。

這一點需要注意,如果恢復之前的數據比備份的多,恢復后多的數據就沒有了。

列出我常用的兩種數據庫的備份和恢復命令

postgresql:

備份 pg_dump -h [ip] -U [用戶名] [庫名] >[導出的.sql 文件]

恢復 psql -s [庫名] -f [導出.sql 文件]

mysql:

備份 mysqldump -h -u [用戶名] -p [庫名] > [導出的.sql 文件]

恢復 mysql -u [用戶名] -p [庫名] < [導出的.sql 文件]

shell腳本

要完成一個功能完善的備份方案,就需要shell腳本。

我們要讓這個腳本備份到指定路徑,并壓縮存放,最多30個,超過30個刪除最早的,并記錄操作日志。

啥也不說了,話都在腳本里,干了!

#用戶名
username=root
#密碼
password=nicai
#將要備份的數據庫
database_name=l_love_you

#保存備份文件最多個數
count=30
#備份保存路徑
backup_path=/app/mysql_backup
#日期
date_time=`date +%Y-%m-%d-%H-%M`

#如果文件夾不存在則創建
if [ ! -d $backup_path ]; 
then  
 mkdir -p $backup_path; 
fi
#開始備份
mysqldump -u $username -p$password $database_name > $backup_path/$database_name-$date_time.sql
#開始壓縮
cd $backup_path
tar -zcvf $database_name-$date_time.tar.gz $database_name-$date_time.sql
#刪除源文件
rm -rf $backup_path/$database_name-$date_time.sql
#更新備份日志
echo "create $backup_path/$database_name-$date_time.tar.gz" >> $backup_path/dump.log

#找出需要刪除的備份
delfile=`ls -l -crt $backup_path/*.tar.gz | awk '{print $9 }' | head -1`

#判斷現在的備份數量是否大于閾值
number=`ls -l -crt $backup_path/*.tar.gz | awk '{print $9 }' | wc -l`

if [ $number -gt $count ]
then
 #刪除最早生成的備份,只保留count數量的備份
 rm $delfile
 #更新刪除文件日志
 echo "delete $delfile" >> $backup_path/dump.log
fi

給腳本起個顧名思義的漂亮名字 dump_mysql.sh

給腳本賦予可執行權限 chmod +x dump_mysql.sh , 執行后腳本變綠了就是可實行文件

執行方法:./加腳本名稱

chmod命令參數含義--
+ 代表添加某些權限
x 代表可執行權限

定時任務crontab

crontab是Linux自帶的一個定時任務功能,我們可以利用它每天凌晨執行一次 dump_mysql.sh 腳本。

crontab用法:

  • crontab -l 查看定時任務列表
  • crontab -e 編輯(新增/刪除)定時任務
     

運行crontab -e命令,打開一個可編輯的文本,輸入 00 01 * * * /app/dump_mysql.sh

保本并退出即添加完成。

內容解釋:

00 01 * * * /app/dump_mysql.sh 分兩部分看,

第一部分 00 01 * * * 是定時任務的周期,第二部分 /app/dump_mysql.sh 到時間做的事情。

周期表達式是五個占位符,分別代表: 分鐘、小時、日、月、星期

占位符用 * 表示 每 ,用在第一位就是每分鐘,第二位每小時,依此類推

占位符用 具體數字 表示 具體時間 ,10用在第一位就是10分,用在第三位表示10號,依此類推

占位符用 - 表示 區間 ,5-7用在第一位就是5分到7分,用在第五位表示周5到周日,依此類推

占位符用 / 表示 間隔 ,5-10/2用在第一位就是5分到10分間隔2分鐘,用在第二位表示5點到10點間隔2小時,依此類推

占位符用 , 表示 列表 ,5,10用在第一位就是5分和10分,用在第四位表示5月和10月,依此類推

看完上述內容,是不是對MySQL如何定時備份方案有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江达县| 上思县| 越西县| 明水县| 厦门市| 苍南县| 都安| 丹寨县| 来凤县| 佛教| 洞口县| 治县。| 长白| 十堰市| 定结县| 和林格尔县| 旬邑县| 霸州市| 长沙市| 双桥区| 凤山市| 交城县| 诏安县| 固始县| 武陟县| 通山县| 靖安县| 蕲春县| 岢岚县| 河曲县| 新巴尔虎右旗| 崇阳县| 调兵山市| 隆德县| 巴东县| 福安市| 霍城县| 巫溪县| 游戏| 南安市| 宝鸡市|