oracle 備份指令碼
a、用oracle使用者建立備份目錄
b、 crontab -e
在linux下編輯時間任務(root使用者)
寫入如下
0 4 * * 0-6 su - oracle -c /home/oracle/oraclebackup/backupSH/logicbackup.sh
30 4 * * 0-6 su - oracle -c /home/oracle/oraclebackup/backupSH/hotbackup.sh
0 5 1 * * su - oracle -c /home/oracle/oraclebackup/backupSH/coldbackup.sh
備份指令碼1 logicbackup.sh
#!/bin/sh
backuppath=/home/oracle/oraclebackup/backupData/logicData
current_month=`date +%Y_%m`
current_day=`date +%Y_%m_%d`
mkdir -p ${backuppath}/${current_month}/${current_day}
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
/u01/oracle/10g/bin/exp userid=gdeii/gdeii123@sch206 file=${backuppath}/${current_month}/${current_day}/logic_${current_day}.dmp log=${backuppath}/${current_month}/${current_day}
備份指令碼2hotbackup.sh
#!/bin/ksh
export LANG=en_US
BACKUP_DATE=`date +%d`
backupDIR=/home/oracle/oraclebackup/backupData/hotData
current_month=`date +%Y_%m`
current_day=`date +%Y_%m_%d`
export rman_back_dir=$backupDIR/$current_month/$current_day
mkdir -p $rman_back_dir
RMAN_LOG_FILE=${rman_back_dir}/rmanlog_${current_day}.log
TODAY=`date`
USER=`id|cut -d "(" -f2|cut -d ")" -f1`
echo "-----------------$TODAY-------------------">$RMAN_LOG_FILE
ORACLE_HOME=/u01/oracle/10g
export ORACLE_HOME
RMAN=$ORACLE_HOME/bin/rman
export RMAN
ORACLE_SID=sch206
export ORACLE_SID
ORACLE_USER=oracle
export ORACLE_USER
echo "ORACLE_SID: $ORACLE_SID">>$RMAN_LOG_FILE
echo "ORACLE_HOME:$ORACLE_HOME">>$RMAN_LOG_FILE
echo "ORACLE_USER:$ORACLE_USER">>$RMAN_LOG_FILE
echo "==========================================">>$RMAN_LOG_FILE
echo "BACKUP DATABASE BEGIN......">>$RMAN_LOG_FILE
echo " ">>$RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
WEEK_DAILY=`date +%a`
case "$WEEK_DAILY" in
"Mon")
BAK_LEVEL=2
;;
"Tue")
BAK_LEVEL=2
;;
"Wed")
BAK_LEVEL=2
;;
"Thu")
BAK_LEVEL=1
;;
"Fri")
BAK_LEVEL=2
;;
"Sat")
BAK_LEVEL=2
;;
"Sun")
BAK_LEVEL=0
;;
"*")
BAK_LEVEL=error
esac
export BAK_LEVEL=$BAK_LEVEL
echo "Today is : $WEEK_DAILY incremental level= $BAK_LEVEL">>$RMAN_LOG_FILE
RUN_STR="
BAK_LEVEL=$BAK_LEVEL
export BAK_LEVEL
ORACLE_HOME=$ORACLE_HOME
export ORACLE_HOME
ORACLE_SID=$ORACLE_SID
export ORACLE_SID
$RMAN target sys/gdeii123 catalog catalog/catalog@sch206 msglog $RMAN_LOG_FILE append <
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level $BAK_LEVEL Database format='${rman_back_dir}/dbk_level${BAK_LEVEL}_%U_%T.dbf' tag='orcl_lev"$BAK_LEVEL"';
sql 'alter system archive log current';
backup archivelog all tag='arc_bak' format='${rman_back_dir}/archlog_level${BAK_LEVEL}_%U_%T';
backup current controlfile tag='bak_ctlfile' format='${rman_back_dir}/ctl__level${BAK_LEVEL}_%U_%T';
backup spfile tag='spfile' format='${rman_back_dir}/orcl_spfile_level${BAK_LEVEL}_%U_%T';
release channel c2;
release channel c1;
}
report obsolete;
delete noprompt obsolete;
crosscheck backup;
delete noprompt expired backup;
list backup summary;
resync catalog;
EOF
"
# Initiate the command string
if [ "$CUSER" = "root" ]
then
echo "Root Command String: $RUN_STR" >> $RMAN_LOG_FILE
su - $ORACLE_USER -c "$RUN_STR" >> $RMAN_LOG_FILE
RSTAT=$?
else
echo "User Command String: $RUN_STR" >> $RMAN_LOG_FILE
/bin/sh -c "$RUN_STR" >> $RMAN_LOG_FILE
RSTAT=$?
fi
# ---------------------------------------------------------------------------
# Log the completion of this script.
# ---------------------------------------------------------------------------
if [ "$RSTAT" = "0" ]
then
LOGMSG="ended successfully"
else
LOGMSG="ended in error"
fi
echo >> $RMAN_LOG_FILE
echo ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
3 coldbackup.sh 冷備份指令碼
#!/bin/bash
srcPath=/u01/oracle/oradata/sch206
srcdbs=/u01/oracle/10g/dbs
thedate=`date +%Y_%m_%d`
backuppath=/home/oracle/oraclebackup/backupData/coldData/$thedate/
backupdbs=/home/oracle/oraclebackup/backupData/coldData/$thedate/dbs/
mkdir -p $backuppath/dbs
$ORACLE_HOME/bin/sqlplus "/as sysdba" <
shutdown immediate
!cp $srcPath/*.dbf $backuppath
!cp $srcPath/*.ctl $backuppath
!cp $srcPath/*.log $backuppath
!cp $srcdbs/* $backupdbs
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23141985/viewspace-714816/,如需轉載,請註明出處,否則將追究法律責任。
上一篇:
oracle 備份指令碼
下一篇:
自動開機
![oracle 備份指令碼](https://i.iter01.com/images/c7e43ea87787ea70648b3b17b12023983513dbf879af95b70b0cff7860d557a9.png)
請登入後發表評論
登入
全部評論
相關文章
- ORACLE備份指令碼Oracle指令碼
- oracle自動冷備份指令碼Oracle指令碼
- 分享Oracle Rman的備份指令碼Oracle指令碼
- ORACLE常用定時備份指令碼Oracle指令碼
- oracle資料庫使用rman備份指令碼Oracle資料庫指令碼
- 備份指令碼指令碼
- rman 備份指令碼指令碼
- mysql備份指令碼MySql指令碼
- 自動備份指令碼指令碼
- windows mysqldump備份指令碼WindowsMySql指令碼
- 【DATAPUMP】Oracle資料泵定時備份刪除指令碼Oracle指令碼
- expdp 邏輯備份指令碼指令碼
- 資料庫備份指令碼資料庫指令碼
- 兩套mysql備份指令碼MySql指令碼
- ORACLE NBU調取oracle rman指令碼備份歸檔不自動刪除歸檔Oracle指令碼
- MySQL中binlog備份指令碼分享MySql指令碼
- 使用shell 指令碼備份資料指令碼
- Mysql定時備份資料指令碼MySql指令碼
- 檢查備份情況的指令碼指令碼
- 【MySQL】Xtrabackup備份及恢復指令碼MySql指令碼
- MySQL:Windows下分庫備份指令碼MySqlWindows指令碼
- windows 全量+增量備份指令碼batWindows指令碼BAT
- mysqldump壓縮備份匯出匯入(含定期備份shell指令碼)MySql指令碼
- ORACLE 備份表Oracle
- MySQL資料庫備份的shell指令碼MySql資料庫指令碼
- windows 批處理備份目錄指令碼Windows指令碼
- MySQL備份指令碼,應該這麼寫MySql指令碼
- Windows環境PgSql自動備份指令碼WindowsSQL指令碼
- shell 備份檔案指令碼+自動清理指令碼
- linux mysql定時備份指令碼記錄LinuxMySql指令碼
- 【BASIS】HANA備份指令碼,Catalog自動清理指令碼
- Liunx備份mysql資料庫的shell指令碼MySql資料庫指令碼
- Mysqldump備份說明及資料庫備份指令碼分享-運維筆記MySql資料庫指令碼運維筆記
- KOSQL Server2019資料庫備份與還原指令碼(批量備份)zrbSQLServer資料庫指令碼
- ORACLE備份策略(轉)Oracle
- Networker備份oracle racOracle
- oracle資料庫備份之exp增量備份Oracle資料庫
- oracle 11g RAC 安裝前準備指令碼Oracle指令碼
- mysql容器的定時備份指令碼,有二種方法,備份好後打包傳送到遠端備份主機MySql指令碼