伺服器備份清理腳本
『壹』 伺服器數據怎樣備份
對於伺服器而言,它承擔的使命是7x24小時不間斷的對外提供稿襲服務,但它面臨的風險也是很大的,無論是人為誤操作、硬體損壞還是黑客攻擊,難免有數據損壞丟失的時候。一旦發生數據損壞、丟失現象後,如果沒有備份數據,那損失就大了,所以對於任何一台伺服器而言,數據的備份機制是不可缺少的。
伺服器根據提供的服務不同,大致可為分:資料庫伺服器、應用伺服器、文件伺服器。不同伺服器的備份機制還是有所區別的,我們分別來看下:
文件伺服器備份方案有哪些?
1、純敬鋒Rsync+Inotify實時增量備份
藉助linux的Inotify特性可以監測文件系統變化,一旦發現變化則通知Rsync去同步數據,這樣就實現了增量備份,而且性能和及時性都很高。
2、通過伺服器定時任務每日凌晨執行備份任務
這種只適合對重要的數據進行日切備份,大概思路就是:Crontab+shell腳本來定時備份。
3、雲伺服器可藉助快照功能來全盤備份
資料庫伺服器備份方案
對於資料庫而言建議部署「主從同步」來實現數據備份,這樣做的好處就是:一方面存在數據副本,另外一方面多節點可以緩解資料庫做晌壓力。
當然了,現在主流資料庫也提供全量備份的功能,但如果在數據量大的情況下可能會影響資料庫的性能。
1、以主流的Mysql資料庫為例,備份方案主要有:
binlog備份
mysqlmp全庫備份
2、SQLServer也支持完全備份、事務日誌備份、差異備份等:
以上就是我的觀點,對於這個問題大家是怎麼看待的呢?『貳』 rman備份腳本和rman增量備份腳本分享
一、單獨備份
1、經典整庫備份:backup
as
compressed
backupset
database
include
current
controlfile
plus
archivelog
delete
all
input;
2、tablespace:backup
tablespace
名字;
3、數據文件:backup
datafile
n;
(n:具體的數據文件編號select
file_name,file_id,tablespace_name
from
dba_data_files;)
4、控制文件:backup
current
controlfile;或者backup
database
include
current
controlfile;
5、日誌文件:backup
archivelog
all;或者
database
plus
archivelog;
6、參數文件:backup
spfile;
7、全庫備份腳本:
復制代碼
代碼如下:
run{
allocate
channel
c1
type
disk;
backup
full
tag
『dbfull'
format
『/backup/full%u_%s_%p'
database
include
current
controlfile;
sql
『alter
system
archive
log
current';
#在資料庫進行全備份完成之後,需要執行該條命令將當前日誌歸檔,備份歸檔日誌時應該包括最後生成的歸檔
backup
filesperset
3
format
『/backup/arch%u_%s_%p'#filesperset
3設定每個備份集里文件不超過3個
archivelog
all
delete
input;
#備份歸檔可選,可以單獨定期備份
release
channel
c1;
}
二、增量備份
1、0級增量備份
復制代碼
代碼如下:
run{
allocate
channel
c1
type
disk;
backup
incremental
level
0
tag
『db0'
format
『/backup/db0%u_%s_%p'database
include
current
controlfile;
;
sql
'alter
system
archive
log
current';#在資料庫進行全備份完成之後,需要執行該條命令將當前日誌歸檔,備份歸檔日誌時應該包括最後生成的歸檔
backup
filesperset
3
format
『/backup/arch%u_%s_%p'#filesperset
3設定每個備份集里文件不超過3個
archivelog
all
delete
input;
#備份歸檔可選,可以單獨定期備份
release
channel
c1;
}
2、1級備份腳本
復制代碼
代碼如下:
run{
allocate
channel
c1
type
disk;
backup
incremental
level
1
tag
『db1'
format
『/backup/db1%u_%s_%p'
database
skip
readonly
include
current
controlfile;
backup
filesperset
3
format
『/backup/arch%u_%s_%p'#filesperset設定每個備份集里文件不超過3個
archivelog
all
delete
input;
#備份歸檔可選,可以單獨定期備份
release
channel
c1;
}
『叄』 菜鳥求助:linux下oracle資料庫自動備份腳本,腳本可實現資料庫自動備份功能,並刪除三天前的備份
這個好辦。 cp 你的資料庫`date +'%y%m%d'` 指定目錄 這個是以年月日來命名備份 刪除的命令是
rm -f 你的資料庫名字`date -d "3 days ago" +'%y%m%d'` 這個是刪除匹配你資料庫的備份名日期前3天的備份文件 他會按照日期-3天匹配3天前的日期來刪除備份的
『肆』 windos伺服器怎麼寫壓縮備份的腳本啊
集成命令列表1功能:自動備份資料庫並按日期創建備份文件夾。代碼如下:@echooffecho執行備份任務echo正在停止資料庫…echo正在停止網站資料庫…netstopMySQLecho執行備份資料庫x"D:MySQLdata*.*"D:mysqlbakwebbak%date:~0,10%/e/y/cnetstartMySQLecho正在啟動網站資料庫…echo退出備份任務echo.exit拆解:停止資料庫命令代碼如下:netstopMySQL拷貝資料庫文件D:MySQLdata為資料庫存放目錄D:mysqlbakwebbak為資料庫備份目錄%date:~0,10%為當前備份日期創建目錄代碼如下:x"D:MySQLdata*.*"D:mysqlbakwebbak%date:~0,10%/e/y/c啟動資料庫代碼如下:netstartMySQL集成命令列表2功能:自動備份資料庫並日期rar加密打包(密碼為123456)。代碼如下:@echooffecho執行備份任務echo正在停止資料庫…echo正在停止網站資料庫…netstopMySQLecho執行備份資料庫x"D:hostmysqldata*.*"E:wwwrootDefaultwebmysql/e/y/cnetstartMySQLecho正在啟動網站資料庫…echo正在打包網站資料庫…"C:ProgramFilesWinRARWinRAR.exe"a-r-ibck-p123456-yE:wwwrootDefault\%date:~0,10%-WEBDATA.rarE:wwwrootDefaultwebmysql*.*echo退出RAR打包echo刪除復制資料庫del/s/qE:wwwrootDefaultwebmysql*echo退出備份任務echo.exit拆解:以上重復命令不重復說明了打包並加密C:ProgramFilesWinRARWinRAR.exe為winrar壓縮程序安裝目錄123456為壓縮包加密密碼E:wwwrootDefault為打包到的目錄%date:~0,10%-WEBDATA.rar為壓縮文件名,例如今天是2012-12-27名字就是2012-12-27-WEBDATA.rar代碼如下:"C:ProgramFilesWinRARWinRAR.exe"a-r-ibck-p123456-yE:wwwrootDefault\%date:~0,10%-WEBDATA.rarE:wwwrootDefaultwebmysql*.*刪除拷貝數據E:wwwrootDefaultwebmysql*為備份目錄,為方便下次備份一定要刪除。不然容易重復。代碼如下:del/s/qE:wwwrootDefaultwebmysql*備份任務下載說明:從網站進行命令下載到指定的目錄代碼如下:wgethttp://備份文件的WEB地址/MySQLDATA-%date:~0,10%.rar-PE:數據備份\%date:~0,10%wget下載地址:放在C:WindowsSystem32注意:也可以用其它工具進行下載,如果大文件的話不建議用這種方法。對於小文件倒還好。添加自動任務打開任務面板->任務計劃雙擊「添加任務計劃」下一步瀏覽到你創建的CMD。自定義任務的名稱,如果是資料庫的話建議一天備份一次。如果網站文件的話可以設置一周。下一步設置時間,建議設置2-3點左右。下一步輸入管理的帳號和密碼來完成任務創建。
『伍』 linux 自動備份和恢復的腳本
Linux是公認的運行穩定、安全性較高的操作系統,但是伺服器硬體故障和各種意外因素都會導致Linux伺服器硬碟上數據丟失。特別對於運用在商業領域中的Linux伺服器,數據的安全性、完整性和災難後的數據恢復能力是每一個Linux系統管理員最為關心的問題。Linux作為新一代網路操作系統,在伺服器方面的應用越來越廣泛。作為專門的網路伺服器,一個重要功能就是對伺服器數據進行備份,以確保數據的安全。
常見的Linux數據備份方法
Linux操作系統中的數據備份工作是Linux系統管理員的重要工作和職責。傳統的Linux伺服器數據備份的方法很多,備份的手段也多種多樣。常見的Linux數據備份方式僅僅是把數據通過TAR命令壓縮拷貝到磁碟的其它區域中去。還有比較保險的做法是雙機自動備份,不把所有數據存放在一台計算機上,否則一旦這台計算機的硬碟物理性損壞,那麼一切數據將不復存在了。所以雙機備份是商業伺服器數據安全的基本要求。通常情況下使用的雙機備份是雙機定時備份文件,而不是實時的。要實現雙機備份,必須先在單機上備份所有的文件,然後再把備份文件傳輸到其它機器上。這樣可能比較麻煩,而且有不足之處。例如,這樣做對於不需要備份的文件也要在網路上傳輸,會造成帶寬的浪費。
實現備份與刻錄的整合
為了彌補Linux上常見備份方法的不足,本文將講述使用sitback軟體將Linux伺服器磁碟中的指定數據進行自動備份,並刻錄到CDR光碟的方法,以達到數據在光碟中安全存儲的目的。此方法將數據備份和光碟刻錄兩個步驟整合在一起,自動化程度和安全性較高,而且sitback還能實現Linux網路中不同計算機之間的數據備份。
sitback簡介
sitback是一款基於開源協議開發的Unix平台下的自動備份軟體。與一些 Linux開放源碼軟體不同,sitback開發者僅提供源代碼壓縮包的形式給Linux用戶下載。盡管sitback沒有提供安裝方便的RPM格式,但是sitback的安裝採用了基於GNU協議的自動安裝和配置的automake/autoconf模式,使得一般的Linux系統管理員能順利地安裝調試好sitback。
sitback的獲取和安裝
目前sitback官方網站www.mrbean.dk提供的 sitback最高版本為0.3.1。為了能最大程度地體現sitback的最佳性能,sitback的開發者建議Linux用戶不要把sitback的開發版本和Beta測試版本使用到實際的數據備份中去,以防出現意外。
安裝sitback源代碼壓縮包可以根據以下幾個簡單的步驟完成:
◆建立臨時解壓目錄 /temp;
◆把sitback壓縮包拷貝到/temp目錄,並使用「tar xvfz sitback-x.x.x.tar.gz」命令對sitback源代碼壓縮包進行解壓;
◆執行./configure;
◆執行make;
◆執行make install。
通過以上幾個步驟可以迅速地安裝好sitback。請注意使用超級用戶root身份對sitback進行安裝。
編譯完sitback源代碼壓縮包之後,接著要在用戶根目錄中的Home目錄下創建一個.sitback目錄。該目錄用來存放一些數據備份和刻錄時產生的臨時文件,以及一些腳本文件或磁碟驅動器參數文件。
同所有通過編寫腳本文件來運行的程序一樣,sitback也需要Linux用戶自行編寫備份和刻錄的腳本文件,並讓Linux系統把sitback當作一個備份進程(backup-daemon)來自動執行。使用高效安全的Webmin管理系統來自動執行sitback也很方便。總之,用最少的代碼編寫出適合Linux系統實際情況的腳本是最為安全、高效的。
將數據刻錄至光碟的條件
讓sitback自動備份指定的磁碟數據,並將備份的數據直接刻錄到光碟中去,必須考慮的條件主要有以下幾點:
◆sitback運行的時間,即備份數據時間;
◆要備份的源目錄;
◆要備份到的目的目錄;
◆選擇存儲介質,包括磁介質、光存儲介質等;
◆是否要對備份數據進行校驗比較,提高備份安全性;
◆備份模式,全備份或部分數據備份;
◆備份數據還原問題。
sitback提供了很多參數供用戶選擇,具體參數和用法可以參考sitback源代碼壓縮包里的開發文檔和詳細的使用手冊。
實例運用
實例1
假設某Linux伺服器中有以下這些目錄:
◆/usr/smbdata 包含大多數應用軟體和用戶數據文件;
◆/usr/grafik 包含有重要的圖形文件。
為了備份以上兩個目錄數據,可以編寫一個腳本文件,代碼及說明如下:
ARCHIVE=/dev/st0
#定義要備份的數據
(ARCHIVE表示要備份的磁碟驅動器、文件目錄,甚至主機,例如:
「backuphost:/dev/st0」、
「backup@backuphost:/dev/nrt0」、
「[email protected]:/tmp/temp_backup.tar.gz」等)
TARGET=/usr/smbdata
#要備份的目的目錄
TARGET=/usr/grafik
#要備份的目的目錄
COMPRESSION=YES
#備份模式為對數據進行壓縮後備份
VERIFY=YES
#對備份數據進行校驗
REPORTFILE=/usr/smbdata/latest_backup.txt
#產生備份報告文件
REPORTPRINTER=//penguin4/Canon
#列印機信息
SMBUSER=computer1
#SAMBA用戶端計算機名
SMBPASSWD=123abc
#訪問密碼
VOLUMENAME=Full backup - Taastrup
TIME=1;02;00
#備份時間,每天2:00進行備份
TIME=2;02;00
TIME=3;02;00
TIME=4;02;00
TIME=5;02;00
TIME=6;02;00
以上是一個簡單的數據自動備份腳本的樣本文件。如果想使用SysV初始化,可以在/etc/rc.d/init.d/中創建一個小的腳本文件來運行 sitback。在上述腳本最後一行加入「/usr/local/bin/sitback -d data」才能使得sitback自動運行。查看每次備份的情況時,可以打開臨時文件/.sitback/sitback.log,裡面有sitback 運行的詳細記錄。
實例2
使用sitback將Linux伺服器中數據自動備份、刻錄兩個步驟進行整合。
為了達到數據備份和光碟刻錄整合的目的,需要使用以下腳本來實現。它是來自sitback官方網站的樣板腳本。
# Full backup of /home/bean, excluding Images
#對/home/bean,目錄進行全備份
# [email protected] 2002
# Write the archive to my cd-writer at 0,0,0
#將備份數據在指定時間寫入CDR刻錄機中
# (Iomega ZIPCD 650, USB), use speed=2, so that i can 刻錄機硬體參數
# do other things while the backup is cooking. Also
# use on-the-fly to avoid too much temporary data.
# (my machine has no problem supporting this)
#
ARCHIVE=0,0,0
SPEED=2
#Iomega ZIPCD 650, USB刻錄機寫入速度,
CD ON THE FLY
#寫入方式
# It is a huge advantage to have the files directory available
# on the cd, not inside an archive, when restoring my
# setup, hence the type 'CDRW'
#
TYPE=CDRW
#光碟類型,CDRW可擦寫光碟
# Targets... Exclude Images
TARGET=/home/bean
#目標文件目錄
EXCLUDE=/home/bean/Images
#目標文件目錄中不用備份的目錄(即排除備份的目錄)
# Various stuff. Compression and verification will automagically
# be turned off by sitback, but i do not want the warnings either,
# so i just turn it off from the beginning...
#
VERIFY=NO
#對備份數據進行校驗
COMPRESSION=NO
#備份數據無需壓縮
# When done, put a backup report in /home/bean/backup.log
#
REPORTFILE=/home/bean/backup.log
#產生的備份報告文件及路徑
關於sitback備份數據的恢復及SSH等安全措施,此處不予舉例說明。總的來說,sitback是一款不可多得的Linux操作系統平台中優秀的數據備份和恢復工具,使用sitback可以使得企業實現安全而高效的備份。
『陸』 Oracle資料庫RMAN的自動備份腳本簡介
Oracle資料庫RMAN的自動備份腳本簡介
各位同學知道Oracle資料庫RMAN如何自動備份腳本嘛?下面我為大家整理了關於Oracle資料庫RMAN的自動備份腳本文章,希望能為你提供幫助:
1、資料庫設置為歸檔方式
2、資料庫的備份腳本
db_full_backup.sh :資料庫全備腳本
db_l0_backup.sh :資料庫0級備份腳本
db_l1_backup.sh :資料庫1級備份腳本
ftp.sh :數據FTP上傳腳本
ftp_del.sh :數據FTP清理腳本
rman_bak.sh :數據備份主程序
3、備份原理
每周1、3、6進行0級備份
每周日、2、4、5進行1級備份
備份文件上傳到FTP伺服器
FTP伺服器每周清理一次,但是清理後將周六和周日的備份進行保留(6.bak和0.bak)
所有工作防暑crontab中自動執行備份
4、備份目錄含義
arc :資料庫歸檔目錄
rmanbak :資料庫備份文件的保存目錄
rmanscripts :資料庫腳本存放路徑
5、FTP目錄
ftp上必須手動建立目錄
L0:
---1
---3
---6
---6.bak
L1:
---2
---4
---5
---0
---0.bak
rman_bak.sh腳本主程序
#!/bin/bash
#--------------------------------------------
# Oracle auto backup using rman
#
# author:songrh
# week:1,3,6 Level 0 backup
# 2,4,5,0 Level 1 backup
# Copyright by ChenLong Tec
#--------------------------------------------
#
#
export ORACLE_BASE=/u02/oracle
export ORACLE_HOME=/u02/oracle/proct/9.2.4
export ORACLE_SID=PROD
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export NLS_LANG=american_america.ZHS16GBK
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NL33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:$PATH
export PATH=$PATH:/opt/local/bin
#
SH_PATH=/u02/rmanscripts
ARC_PATH=/u02/arch
RMAN_BAK_PATH=/u02/rmanbak
#
#FULL_PATH=$RMAN_BAK_PATH/full
L0_PATH=$RMAN_BAK_PATH/L0
L1_PATH=$RMAN_BAK_PATH/L1
#
#DAY_TAG=`date "%Y-%m-%d"`
LOG_TAG=`date "%Y-%m-%d"`
#FIRST_DAY=`date %e`
WEEK=`date %w`
#WEEK=1
#
# FTP configure
IP="122.120.150.155"
FTPUSER="ftpbak"
FTPPASS="******"
FTPROOT0="L0"
FTPROOT1="L1"
#
DISK_USE=`df -k |sed -n '/u02/'p | awk '{print $5}' |sed 's/%//'`
####check path function
############
if [[ $DISK_USE -ge 90 ]]; then
rm -rf $L0_PATH/*
rm -rf $L1_PATH/*
fi
if [ "$WEEK" = "6" -o "$WEEK" = "3" -o "$WEEK" = "1" ]; then
if [ ! -d $L0_PATH ]; then
mkdir $L0_PATH
fi
if [ "$WEEK" = "1" ]; then
rm -rf $L0_PATH/*
rm -rf $L1_PATH/*
mkdir $L0_PATH/$WEEK
$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK
cd $L0_PATH/$WEEK
$SH_PATH/ftp_del.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log
else
if [ ! -d $L0_PATH/$WEEK ]; then
mkdir $L0_PATH/$WEEK
$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK
cd $L0_PATH/$WEEK
$SH_PATH/ftp.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log
else
;