共計(jì) 3143 個(gè)字符,預(yù)計(jì)需要花費(fèi) 8 分鐘才能閱讀完成。
這篇文章主要講解了“怎么實(shí)現(xiàn) oracle 的 exp 增量備份”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么實(shí)現(xiàn) oracle 的 exp 增量備份”吧!
oracle exp 增量備份實(shí)驗(yàn)
https://blog.csdn.net/sinat_16741503/article/details/72876092
Oracle 數(shù)據(jù)庫有三種標(biāo)準(zhǔn)的備份方法,它們分別是導(dǎo)出/導(dǎo)入(EXP/IMP、EXPDP/IMPDP)、熱備份和冷備份。
導(dǎo)出備件是一種邏輯備份,冷備份和熱備份是物理備份。
exp 支持增量備份,而 expdp 不支持增量備份。
exp/imp 增量導(dǎo)出是一種常用的數(shù)據(jù)備份方法,它只能對整個(gè)數(shù)據(jù)庫來實(shí)施,并且必須作為 SYSTEM 來導(dǎo)出。
在進(jìn)行此種導(dǎo)出時(shí),系統(tǒng)不要求回答任何問題。導(dǎo)出文件名缺省為 export.dmp,如果不希望自己的輸出文件定名為
export.dmp,必須在命令行中指出要用的文件名。
增量導(dǎo)出包括三種類型:完全備份,累積備份,增量備份。
執(zhí)行增量備份必須滿足下列條件:
1. 只對完整數(shù)據(jù)庫備份有效,且第一次需要 full= y 參數(shù),以后需要 inctype=incremental 參數(shù)。
2. 用戶必須有 EXP_FULL_DATABASE 的系統(tǒng)角色。
下面簡單三種備份的用法以及區(qū)別:
1,完全備份:顧名思義,導(dǎo)出整個(gè)數(shù)據(jù)庫所有數(shù)據(jù)
exp system/oracle inctype=complete file=full.dmp log=full.log
2,累積備份:導(dǎo)出上次“完全備份”后數(shù)據(jù)庫變化的信息
exp system/oracle inctype=cumulative file=cumulative_1.dmp log=sys_cumulative_1.log
3,增量備份:備份上次“備份”后變化的信息
exp system/oracle inctype=incremental file=sys_cumulative_3.dmp log=sys_cumulative_3.log
例如我設(shè)置一個(gè) oracle 備份策略:
周六:完全備份
周日:增量備份
周一:增量備份
周二:增量備份
周三:累積備份
周四:增量備份
周五:增量備份
那么當(dāng)周六我的數(shù)據(jù)庫被破壞了(備份之前),恢復(fù)數(shù)據(jù)庫的流程呢,那就是:
第一,用命令 CREATE DATABASE 重新生成數(shù)據(jù)庫結(jié)構(gòu)。
第二,創(chuàng)建一個(gè)足夠大的附加回段。
第三,完全備份導(dǎo)入(周六)
imp system/oracle inctype=RESTORE FULL=y FILE= 周六完全備份文件
第四,累積備份導(dǎo)入(周三)
impsystem/oracle inctype=RESTORE FULL=y FILE= 周三累積備份文件
第五,增量備份導(dǎo)入(周四)
impsystem/oracle inctype=RESTORE FULL=y FILE= 周四累積備份文件
第六,增量備份導(dǎo)入(周五)
impsystem/oracle inctype=RESTORE FULL=y FILE= 周五累積備份文件
注意:使用這種方式對 oracle 數(shù)據(jù)庫進(jìn)行備份的,有一個(gè)弊端,就是最后一次備份到數(shù)據(jù)庫宕機(jī)前的數(shù)據(jù)會(huì)丟失。
– 下面給大家附上一段博主自己寫的完全備份策略腳本,累積備份和增量備份修改部分參數(shù)后即可:
#!/bin/bash
#oracle 數(shù)據(jù)庫備份用腳本, 該腳本對全庫進(jìn)行備份,每周六 1:00 執(zhí)行
##############################
##author——-***###
##############################
if [-f ~/.bash_profile]; then
. ~/.bash_profile
fi
set -e
last_day=`date -d -7 day +%Y%m%d`
# 上次數(shù)據(jù)備份時(shí)間
stime=`date +%s`
echo `date + %F %T `################### 全庫備份開始 ##################
cd /mnt/sd02/oracle_bak_68/
# 備份數(shù)據(jù)存放目錄
/data/app/oracle/product/11.2.0/dbhome_1/bin/exp system/oracle inctype=complete
file=sys_all_`date +%Y%m%d`.dmp log=sys_all_`date +%Y%m%d`.log
# 聲明 exp 路徑,有些環(huán)境下不聲明在定時(shí)任務(wù)中報(bào)錯(cuò)找不到該命令
rm sys_all_${last_day}.dmp
rm sys_all_${last_day}.log
# 刪除上周完全備份文件
etime=`date +%s`
s=`echo scale=0; ($etime – $stime)%60 | bc`
m=`echo scale=0; ($etime – $stime)/60%60 | bc`
h=`echo scale=0; ($etime – $stime)/60/60 | bc`
echo `date + %F %T `################ 全庫備份結(jié)束 #####################
echo `date + %F %T ` end 腳本執(zhí)行耗時(shí) $h 小時(shí) $m 分鐘 $s 秒
– 定時(shí)任務(wù)中備份策略設(shè)置如下:
#### 全庫備份用腳本,每周六早上一點(diǎn)執(zhí)行
01 01 * * 6 sh /home/oracle/zcb/oracle_all_bak.sh /home/oracle/zcb/log/oracle_a
ll_`date + \%Y\%m\%d `.log 2 1
#### 增量備份腳本,每周日,周一,周二,周四,周五 執(zhí)行
00 01 * * 0 sh /home/oracle/zcb/oracle_incremental_bak.sh /home/oracle/zcb/log/oracle_in
cremental_`date + \%Y\%m\%d `.log 2 1
00 01 * * 1 sh /home/oracle/zcb/oracle_incremental_bak.sh /home/oracle/zcb/log/oracle_in
cremental_`date + \%Y\%m\%d `.log 2 1
00 01 * * 2 sh /home/oracle/zcb/oracle_incremental_bak.sh /home/oracle/zcb/log/oracle_in
cremental_`date + \%Y\%m\%d `.log 2 1
00 02 * * 4 sh /home/oracle/zcb/oracle_incremental_bak.sh /home/oracle/zcb/log/oracle_in
cremental_`date + \%Y\%m\%d `.log 2 1
00 01 * * 5 sh /home/oracle/zcb/oracle_incremental_bak.sh /home/oracle/zcb/log/oracle_in
cremental_`date + \%Y\%m\%d `.log 2 1
#### 累積備份腳本,每周三執(zhí)行
00 01 * * 3 sh /home/oracle/zcb/oracle_cumulative_bak.sh /home/oracle/zcb/log/oracle_cu
mulative_`date + \%Y\%m\%d `.log 2 1
感謝各位的閱讀,以上就是“怎么實(shí)現(xiàn) oracle 的 exp 增量備份”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么實(shí)現(xiàn) oracle 的 exp 增量備份這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!