Linux ORCLE數據庫增量備份腳本
2020-07-26 14:32:19
供稿:網友
 
						ORCLE數據庫備份策略 
1.通過使用exp和imp命令實現數據庫導出和導入。 
有三種模式: 
a. 用戶模式: 導出(導入)用戶所有對象以及對象中的數據; 
b. 表模式: 導出(導入)用戶所有表或者指定的表; 
c. 整個數據庫: 導出(導入)數據庫中所有對象。 
如: 
普通導出 
a.導出一個完整數據庫 
exp system/manager file=f.dmp full=y 
b.導出數據庫定義而不導出數據 
exp system/manager file=f.dmp full=y rows=n 
普通導入: 
a.完全導入 
imp system/manager file=f.dmp full=y 
b.數據庫結構存在時,只導入數據 
imp system/manager file=f.dmp full=y ignore=y 
2.每周進行數據庫備份,以防數據庫被意外破壞后恢復數據 
安排如下: 
周一: 完全備份(f1) exp xxx/xxx inctype=complete file=f1.dmp 
周二: 增量備份(f2) exp xxx/xxx inctype=incremental file=f2.dmp 
周三: 增量備份(f3) exp xxx/xxx inctype=incremental file=f3.dmp 
周四: 增量備份(f4) exp xxx/xxx inctype=incremental file=f4.dmp 
周五: 累積備份(f5) exp xxx/xxx inctype=cumulative file=f5.dmp 
周六: 增量備份(f6) exp xxx/xxx inctype=incremental file=f6.dmp 
周日: 增量備份(f7) exp xxx/xxx inctype=incremental file=f7.dmp 
比如數據庫在周日被破壞,則可用以下方式恢復: 
1.創建空的數據庫,同之前的結構。 
2.imp xxx/xxx inctype=RESTORE FULL=y FILE=f1.dmp 
3.imp xxx/xxx inctype=RESTORE FULL=y FILE=f5.dmp 
4.imp xxx/xxx inctype=RESTORE FULL=y FILE=f6.dmp 
說明: 
完全導出:對整個數據庫的備份 
增量導出:是備份上一次完全導出后改變的數據。 
累積導出:是備份自上次完全導出后改變的數據。 
EXAMPLE:LINUX下備份數據庫 
BACKUP_DIR=/home/oracle/backups 
if [ ! -d $BACKUP_DIR ]; then 
mkdir -p $BACKUP_DIR 
fi 
DAYS=(Sun Mon Tue Wed Thu Fri Sat) #創建數組 
TYPES=(incremental complete incremental incremental incremental cumulative incremental) 
day=`date +%w` #取得本周天數,0代表周日,1代表周一 
DAY_NAME=${DAYS[$day]} #取得數組的值 
TYPE=${TYPES[$day]} 
DATE_NAME=`date +%F` 
FILE_NAME=${DATE_NAME}-${DAY_NAME}-${TYPE}.dmp #2008-12-8-Mon-complete.dmp 
exp xxx/xxx inctype=$TYPE file=${BACKUP_DIR}/${FILE_NAME} > /dev/null 
gzip ${BACKUP_DIR}/${FILE_NAME} 
find $BACKUP_DIR -mtime +7 -delete #刪除七天前更改過的文件