欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL定時備份方案(利用Linux crontab)

 更新時間:2020年07月19日 14:52:26   作者:茍且偷生  
這篇文章主要給大家介紹了關于MySQL定時備份方案的相關資料,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

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

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

技術要點:

  • 數(shù)據(jù)庫備份dump命令
  • shell腳本
  • Linux定時任務crontab

數(shù)據(jù)備份dump

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

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

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

列出我常用的兩種數(shù)據(jù)庫的備份和恢復命令

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
#將要備份的數(shù)據(jù)庫
database_name=l_love_you

#保存?zhèn)浞菸募疃鄠€數(shù)
count=30
#備份保存路徑
backup_path=/app/mysql_backup
#日期
date_time=`date +%Y-%m-%d-%H-%M`

#如果文件夾不存在則創(chuàng)建
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`

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

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

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

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

執(zhí)行方法:./加腳本名稱

chmod命令參數(shù)含義--
+ 代表添加某些權限
x 代表可執(zhí)行權限

定時任務crontab

crontab是Linux自帶的一個定時任務功能,我們可以利用它每天凌晨執(zhí)行一次 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 到時間做的事情。

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

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

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

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

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

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

總結

到此這篇關于MySQL定時備份方案的文章就介紹到這了,更多相關MySQL定時備份內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL中distinct和count(*)的使用方法比較

    MySQL中distinct和count(*)的使用方法比較

    這篇文章主要針對MySQL中distinct和count(*)的使用方法比較,對兩者之間的使用方法、效率進行了詳細分析,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 手把手教你MySQL運算符

    手把手教你MySQL運算符

    運算符是告訴MySQL執(zhí)行特定算數(shù)或邏輯操作的符號,下面這篇文章主要給大家介紹了關于MySQL運算符的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • pymysql操作mysql數(shù)據(jù)庫的方法

    pymysql操作mysql數(shù)據(jù)庫的方法

    這篇文章主要介紹了pymysql簡單操作mysql數(shù)據(jù)庫的方法,主要講的是一些基礎的pymysql操作mysql數(shù)據(jù)庫的方法,結合實例代碼給大家講解的非常詳細,需要的朋友可以參考下
    2023-04-04
  • MySQL中distinct語句去查詢重復記錄及相關的性能討論

    MySQL中distinct語句去查詢重復記錄及相關的性能討論

    這篇文章主要介紹了MySQL中distinct語句去查詢重復記錄及相關的性能討論,文中的觀點是在一定情況下避免在最高層查詢中使用distinct,需要的朋友可以參考下
    2016-01-01
  • MySQL實現(xiàn)去重的幾種方法小結

    MySQL實現(xiàn)去重的幾種方法小結

    在MySQL中,SELECT DISTINCT 和 GROUP BY 可以用來去除重復記錄,二者有相似的功能,但在某些情況下有所不同,本文將通過代碼示例給大家詳細介紹這幾種方法,感興趣的小伙伴跟著小編一起來看看吧
    2024-07-07
  • mysql常用日期時間/數(shù)值函數(shù)詳解(必看)

    mysql常用日期時間/數(shù)值函數(shù)詳解(必看)

    下面小編就為大家?guī)硪黄猰ysql常用日期時間/數(shù)值函數(shù)詳解(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • MySQL 大表添加一列的實現(xiàn)

    MySQL 大表添加一列的實現(xiàn)

    這篇文章主要介紹了MySQL 大表添加一列的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • MySQL數(shù)據(jù)遷移相關總結

    MySQL數(shù)據(jù)遷移相關總結

    這篇文章主要介紹了MySQL數(shù)據(jù)遷移的相關資料,幫助大家更好的理解和學習使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-04-04
  • MySQL 5.7中的關鍵字與保留字詳解

    MySQL 5.7中的關鍵字與保留字詳解

    最近在將數(shù)據(jù)從Oracle遷移到MySQL的過程中,遇到一些問題,其中就包括關鍵字。下面這篇文章主要給大家介紹了MySQL 5.7中的關鍵字與保留字的相關資料,文中介紹的非常詳細,需要的朋友可以參考學習,下面來一起看看吧。
    2017-03-03
  • MySQL 表的垂直拆分和水平拆分

    MySQL 表的垂直拆分和水平拆分

    這篇文章主要介紹了MySQL 表的垂直拆分和水平拆分,文中講解非常細致,幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下
    2020-07-07

最新評論