主頁 > 知識庫 > 定時備份 Mysql并上傳到七牛的方法

定時備份 Mysql并上傳到七牛的方法

熱門標(biāo)簽:外呼系統(tǒng)防封號違法嗎 400電話辦理都選易號網(wǎng) 高德地圖標(biāo)注模式 寶應(yīng)電信400電話辦理費(fèi)用 電銷機(jī)器人針對的 外呼系統(tǒng)服務(wù) 湘潭電銷機(jī)器人咨詢電話 如何在高德地圖標(biāo)注新地址 高德地圖標(biāo)注中心個人注冊

多數(shù)應(yīng)用場景下,我們需要對重要數(shù)據(jù)進(jìn)行備份、并放置到一個安全的地方,以備不時之需。

常見的 MySQL 數(shù)據(jù)備份方式有,直接打包復(fù)制對應(yīng)的數(shù)據(jù)庫或表文件(物理備份)、mysqldump 全量邏輯備份、xtrabackup 增量邏輯備份等。

常見的數(shù)據(jù)存儲方式有,本機(jī)存儲、FTP 上傳到遠(yuǎn)程服務(wù)器、云存儲(如阿里云OSS、七牛云存儲等)、甚至本地也行。

我們可能不想每次都手動去備份,也不想每次都那么耗時間的去下載,也不想就放在服務(wù)器上丟了,因為我們需要異地備份。那我們可以嘗試,寫個腳本定時備份數(shù)據(jù)庫,然后自動上傳到指定服務(wù)器或云存儲。

這里,我們說說 Linux 服務(wù)器下備份 MySQL 并上傳到七牛云存儲的方式。

準(zhǔn)備工作

•Linux 系統(tǒng)

•crontab 服務(wù)

需保證 crond 服務(wù)處于啟動自啟動狀態(tài)。

•gzip 命令

需系統(tǒng)能正常執(zhí)行 gzip 命令,用于壓縮文件。

•mysqldump 命令

需系統(tǒng)能正常執(zhí)行 mysqldump 命令,用于邏輯備份數(shù)據(jù)。mysqldump 備份的數(shù)據(jù),系由可執(zhí)行的 SQL 組成,不存在版本不兼容的問題。

•qshell 工具

qshell 是七牛云官方利用七牛文檔上公開的 API 實現(xiàn)的一個方便開發(fā)者測試和使用七牛 API 服務(wù)的命令行工具。

具體文檔和下載地址: https://developer.qiniu.com/kodo/tools/1302/qshell

•七牛云賬號

存儲數(shù)據(jù)的前提當(dāng)然是先有一個七牛的賬號,七牛對個人提供10G的免費(fèi)存儲空間,可供我們個人使用。注冊地址:
https://portal.qiniu.com/signup?code=3looatwobaxci

•七牛存儲空間

有了七牛云的賬號后,還需在控制臺手動創(chuàng)建一個空間(bucket)來存放數(shù)據(jù)。

qshell 配置

我們從官方地址中下載的 qshell 是個包含支持多個系統(tǒng)平臺的壓縮包,選擇我們對應(yīng)系統(tǒng)的那個二進(jìn)制文件,賦予其可執(zhí)行權(quán)限。也可以放置到 /usr/local/bin/ 等目錄下,方便直接調(diào)用 qshell 命令。

配置七牛賬號,ak、sk 在七牛云控制臺 > 個人中心 > 密鑰管理內(nèi)。
qshell account ak sk

該命令會將 ak/sk 賬號寫入 ~/.qshell/account.json,此后就不用再配置了。

我們這里用的 qshell 命令是 rput,即以分片上傳的方式上傳一個文件,使用文檔:

https://github.com/qiniu/qshell/blob/master/docs/rput.md

qshell rput Bucket> Key> LocalFile> true

qshell 的其他詳細(xì)功能使用,可自行參考其文檔。

腳本內(nèi)容

#!/bin/sh
# mysql data backup script
#
# use mysqldump --help,get more detail.
dbname=your_dbname
user=your_db_username
password=your_db_password
bakDir=/opt/backup/sql
logFile=/opt/backup/mysqlbak.log
datetime=`date +%Y%m%d%H%M%S`
keepDay=7
echo "-------------------------------------------" >> $logFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $logFile
echo "--------------------------" >> $logFile
cd $bakDir
bakFile=$dbname.$datetime.sql.gz
mysqldump -u$user -p$password $dbname | gzip > $bakFile
echo "數(shù)據(jù)庫 [$dbname] 備份完成" >> $logFile
echo "$bakDir/$bakFile" >> $logFile
echo "開始上傳備份文件至七牛云存儲" >> $logFile
/usr/local/bin/qshell rput Bucket> database/$bakFile $bakFile true | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" >> $logFile 2>1
echo "刪除${keepDay}天前的備份文件" >> $logFile
find $bakDir -ctime +$keepDay >> $logFile
find $bakDir -ctime +$keepDay -exec rm -rf {} \;
echo " " >> $logFile
echo " " >> $logFile

腳本中的數(shù)據(jù)庫配置、日志文件、存放路徑、Bucket>等需自行修改,并存在。database/$bakFile,表示的是 Key>,即在七牛存儲中的路徑文件名,可自定義。

腳本文件需可執(zhí)行權(quán)限,然后可以執(zhí)行腳本進(jìn)行測試。

定時任務(wù)

# 每天凌晨2點(diǎn)執(zhí)行備份腳本
* 2 * * * /opt/backup/baksql.sh

如果定時任務(wù)未執(zhí)行,可查看日志 /var/log/cron 排查問題,或者查看 crond 是否處于運(yùn)行狀態(tài)。

總結(jié)

以上所述是小編給大家介紹的定時備份 Mysql并上傳到七牛的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • shell腳本實現(xiàn)mysql定時備份、刪除、恢復(fù)功能
  • CentOS下mysql定時備份Shell腳本分享
  • MySQL定時備份方案(利用Linux crontab)
  • 淺析mysql 定時備份任務(wù)
  • MySQL定時備份數(shù)據(jù)庫操作示例
  • MySQL數(shù)據(jù)庫定時備份的實現(xiàn)方法
  • linux實現(xiàn)定時備份mysql數(shù)據(jù)庫的簡單方法
  • linux實現(xiàn)mysql數(shù)據(jù)庫每天自動備份定時備份
  • Mysql數(shù)據(jù)庫定時備份腳本分享
  • Windows下MySQL定時備份腳本的實現(xiàn)
  • mysql自動定時備份數(shù)據(jù)庫的最佳方法(windows服務(wù)器)
  • 在Windows環(huán)境下使用MySQL:實現(xiàn)自動定時備份

標(biāo)簽:黃山 佛山 黔南 馬鞍山 南充 宿遷 蘭州 賀州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《定時備份 Mysql并上傳到七牛的方法》,本文關(guān)鍵詞  定時,備份,Mysql,并,上,傳到,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《定時備份 Mysql并上傳到七牛的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于定時備份 Mysql并上傳到七牛的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章