exp備份腳本-linux版:
注意 exp語句空格只能有1個,連續(xù)空格需要刪除多余
#!/bin/sh
export ORACLE_BASE=/u01
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=jisen
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
#define variable....
backup_date=`date +%Y%m%d`
bak_home=/u01
backup_dest=/backup/date
backup_log=/backup/log
RECIPT='jisen@mail.com'
# Check local disk space..................................
USED=` df -k|grep $bak_home|awk '{print $5}'|awk -F% '{print $1}'`
if [ $USED -gt 85 ]; then
echo "Disk space is full\243\254please check it"|mail -s "exp full backup failed" $RECIPT
exit 1
fi
#starting exp backup.....
exp system/ORAIDA full=y buffer=65536 file=$backup_dest/data_$backup_date.dmp log=$backup_log/data_$backup_date.log
# delete expired backup ...
list=` find $backup_dest -mtime +7`
echo $list
rm -f $list
if [ $? -ne 0 ]; then
cat $backup_log/data_$backup_date.log|mail -s "exp full backup failed,please check it" $RECIPT
exit 1
fi
cat $backup_log/data_$backup_date.log|mail -s "$backup_date exp log " $RECIPT
rman備份腳本fullbak.sql:
run {
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
backup full tag 'yangs' database include current controlfile format 'd:\orclbak\backup\full_%d_%T_%s' plus archivelog format 'd:\orclbak\backup\arch_%d_%T_%s' delete all input;
delete noprompt obsolete;
}
自動執(zhí)行上述腳本的bat文件
d:
cd D:\orclbak\script
rman target / msglog d:\orclbak\log\%date:~0,4%%date:~5,2%%date:~8,2%.log cmdfile=D:\orclbak\script\fullbak.sql
設(shè)置計劃任務(wù)
開始 -->管理工具 -->任務(wù)計劃 -->創(chuàng)建基本任務(wù)
將bat文件添加到任務(wù)計劃中即可。
補充說明:
文件名中的日期:
log日志文件采用的是DOS的date命令:

image.png
echo %date:~0,4%%date:~5,2%%date:~8,2%
RMAN備份文件采用的是Oracle提供的格式化功能:
%c 備份片的拷貝數(shù)
%d 數(shù)據(jù)庫名稱
%D 位于該月中的第幾天 (DD)
%M 位于該年中的第幾月 (MM)
%F 一個基于DBID唯一的名稱,這個格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII為該數(shù)據(jù)庫的DBID,YYYYMMDD為日期,QQ是一個1-256的序列
%n 數(shù)據(jù)庫名稱,向右填補到最大八個字符
%u 一個八個字符的名稱代表備份集與創(chuàng)建時間
%p 該備份集中的備份片號,從1開始到創(chuàng)建的文件數(shù)
%U 一個唯一的文件名,代表%u_%p_%c
%s 備份集的號
%t 備份集時間戳
%T 年月日格式(YYYYMMDD)
備份命令
RMAN提供幾個備份命令可以方便的備份數(shù)據(jù)庫
全庫備份,并且備份歸檔日志:
backup full tag 'yangs' database include current controlfile format 'd:\orclbak\backup\full_%d_%T_%s' plus archivelog format 'd:\orclbak\backup\arch_%d_%T_%s' delete all input;
備份冗余策略:保留2份備份集:
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
刪除不再需要的備份集
delete noprompt obsolete;
備份集是否obsolete由冗余策略決定。
歸檔日志備份腳本archback.sql:
run {
backup archivelog all format ’d:\backup\eyglearch_%d_%T_%s’ delete all input;
}