一、Linux共享window目錄
1.共享文件夾
創建 一個 目錄(test)並設置 共享,修改 權限;
2.掛載目錄
在linux數據庫服務器上掛載共享 目錄 ,例如掛載在/windows:
#mount -t cifs -o username=administrator,password=xxx //windows_ip/test /windows
更改/etc/fstab,使其自動掛載,增加如下行。
//windows_ip/test /windows cifs defaults,username=administrator,password=123456 0 2
二、備份配置
1.開啓歸檔
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter system set log_archive_dest_1='location=/archivelog' scope=both;
SQL>alter database archivelog;
SQL>alter database open;
2.創建腳本及日誌存放目錄,如:
#mkdir -p /scripts/log
#chmod -R 777 /scripts
#mkdir -p /windows/old
3.創建備份腳本
#vi /scripts/backup.sh
#set the variables depending on your environment......
FULL='Sat'
RETENTION=7
CUMM='Wed'
BACKUP_OLD=/windows/old
BACKUP_DEST=/windows
BACKUP_LOG=/scripts/log
ERROR_LOG=/scripts
CHECK_HOME=/windows
ORACLE_USER=oracle
ORACLE_HOME=/oracle/product/db_1
ORACLE_SID=inhis
#define other variable......
BACKUP_DATE=`date +%Y%m%d`
SCHEDULE=`date |awk '{print $1}'`
RMAN=$ORACLE_HOME/bin/rman
#define backup type
if [ $SCHEDULE = $FULL ];then
BACKUP_TYPE="incremental level 0"
elif [ $SCHEDULE = $CUMM ];then
BACKUP_TYPE="incremental level 1 CUMULATIVE"
else
BACKUP_TYPE="incremental level 1"
fi
# Check local disk space......
USED=`df -k|grep $CHECK_HOME|awk '{print $5}'|awk -F% '{print $1}'`
if [ -z $USED ] || [ $USED -gt 85 ]; then
echo "At `date` Disk space is almost full or not mounted.please check it!
" >> $BACKUP_LOG/disk.log
exit 1
fi
#define rman backup......
RMAN_CMD="
$RMAN target / nocatalog log=$BACKUP_LOG/rman.log <<EOF
RUN {
#backup database......
ALLOCATE CHANNEL ch00 TYPE disk;
backup $BACKUP_TYPE database format '$BACKUP_DEST/bak_%d_%s_%p_%u.bak';
sql 'alter system archive log current';
RELEASE CHANNEL ch00;
# backup all archive logs......
change archivelog all validate;
ALLOCATE CHANNEL ch00 TYPE disk;
backup archivelog all format '$BACKUP_DEST/log_%d_%s_%p_%u.bak' delete all input
;
RELEASE CHANNEL ch00;
#backup current controlfile......
ALLOCATE CHANNEL ch00 TYPE disk;
copy current controlfile to '$BACKUP_DEST/control.bak';
RELEASE CHANNEL ch00;
}
EOF
"
#start rman backup......
su - oracle -c "$RMAN_CMD"
#check rman......
if [ $? -ne 0 ]; then
echo "at `date` backup failed!" >> $ERROR_LOG/err.log
exit 1
fi
#compress backup file......
tar -cvf $BACKUP_OLD/$BACKUP_DATE.tar $BACKUP_DEST/*.bak
rm -f $BACKUP_DEST/*.bak
# delete expired backup......
list=`find $BACKUP_OLD -mtime +$RETENTION`
echo $list
rm -f $list
4.設置執行權限:
#chmod +x backup,sh
5.創建計劃任務
設置計劃任務,如在每天的凌晨兩點發起備份:
#crontab -e
#min hour day month dayofweek command
0 2 * * * /scripts/backup.sh