當前位置:首頁 » 數據倉庫 » 備份資料庫的shell腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

備份資料庫的shell腳本

發布時間: 2023-08-23 08:20:18

❶ 伺服器數據怎樣備份

對於伺服器而言,它承擔的使命是7x24小時不間斷的對外提供稿襲服務,但它面臨的風險也是很大的,無論是人為誤操作、硬體損壞還是黑客攻擊,難免有數據損壞丟失的時候。一旦發生數據損壞、丟失現象後,如果沒有備份數據,那損失就大了,所以對於任何一台伺服器而言,數據的備份機制是不可缺少的。

伺服器根據提供的服務不同,大致可為分:資料庫伺服器、應用伺服器、文件伺服器。不同伺服器的備份機制還是有所區別的,我們分別來看下:

文件伺服器備份方案有哪些?

1、純敬鋒Rsync+Inotify實時增量備份

藉助Linux的Inotify特性可以監測文件系統變化,一旦發現變化則通知Rsync去同步數據,這樣就實現了增量備份,而且性能和及時性都很高。

2、通過伺服器定時任務每日凌晨執行備份任務

這種只適合對重要的數據進行日切備份,大概思路就是:Crontab+shell腳本來定時備份。

3、雲伺服器可藉助快照功能來全盤備份

資料庫伺服器備份方案

對於資料庫而言建議部署「主從同步」來實現數據備份,這樣做的好處就是:一方面存在數據副本,另外一方面多節點可以緩解資料庫做晌壓力。

當然了,現在主流資料庫也提供全量備份的功能,但如果在數據量大的情況下可能會影響資料庫的性能。

1、以主流的Mysql資料庫為例,備份方案主要有:

binlog備份

mysqlmp全庫備份

2、SQLServer也支持完全備份、事務日誌備份、差異備份等:

以上就是我的觀點,對於這個問題大家是怎麼看待的呢?

❷ 編寫一個shell腳本每天16:30備份mysql數據並壓縮打包(打包文件按照當天日期命名)放到/root/data下

#!/bin/bash

date=$(date-d'+0days''+%Y-%m-%d')#聲明一個變數,並賦值當天日期
cd/root/data#進入目錄
mkdir$date#創建目錄

mysqlmp-uusername-ppassworddb_name>$date"db_name.sql"#資料庫備份,修改用戶名密碼,還有要備份資料庫

tar-zcf$date".tar.gz"$date#壓縮打包
rm-rf$date#刪除源數據

保存為bak.sh,每天16:30備份定時任務,沒有crontab命令:yum install vixie-cron

chmod +x /.../bak.sh

crontab -e

30 16 * * * /.../bak.sh

❸ 設計一個shell腳本程序,要求有如下功能: 實現自動備份功能和清理備份等

#!/bin/bash
TIME=`date+%Y%m%d|cut-b3-8`
#question1
tar-zcvf/home/bak/VAR_$TIME_BAK.gzip/var
#question2
ls-l/var>>/home/bak/VAR_$TIME_BAK.log
#question3
find/home/bak-name'*gzip'-mtime+1|xargsrm-rf

腳本名字backup.sh,放到/root下,然後用root創建cronjob

0 12 * * * /root/backup.sh

#question 4 (以redhat為例)

echo " /root/backup.sh " >> /etc/rc.local

#question 5

把下列代碼寫入cronjob中

#!/bin/bash
TIME=`date+%Y"/"%m"/"%d""%H":"%m`
if[-f/home/shell.log]
then
echo"$TIMErunning">/home/tmp.log
cat/home/shell.log>>/home/tmp.log
mv/home/tmp.log/home/shell.log
else
touch/home/shell.log
fi

腳本名字status.sh,放到/root下 (寫的有點小問題,功能執行沒問題)

0 * * * * /root/status.sh