大家看看这个参数inctype你是否使用过?我做了以下测试,欢迎拍砖!
http://www.itpub.net/thread-1737072-1-1.html
?
| 本帖最后由?java3344520 于 2012-11-8 12:51 編輯 大家看看這個(gè)參數(shù)inctype你是否使用過(guò)?我做了以下測(cè)試,歡迎拍磚! Oracle數(shù)據(jù)庫(kù)邏輯增量備份之exp/imp 一、實(shí)現(xiàn)需求 ? ?? ?? ?由于一個(gè)庫(kù)在云平臺(tái)上,雖然做了RMAN備份,但是RMAN備份在云本地磁盤上,同時(shí)庫(kù)備份數(shù)據(jù)量比較大,無(wú)法轉(zhuǎn)移到其他的空間上。由于該庫(kù)應(yīng)用的性質(zhì)比較特殊,大數(shù)據(jù)量部分要求保存180天后即可刪除,因此除了做RMAN之外,我希望將核心數(shù)據(jù)做下額外的備份,expdp可以滿足,目前是這么做的,但是expdp做不了增量備份。聽說(shuō)exp/imp有參數(shù)能做增量備份,但是又聽說(shuō)exp增量備份的最小單位是表,只要表一條數(shù)據(jù)發(fā)生變化,就會(huì)對(duì)全表進(jìn)行備份。之前沒有用過(guò)exp增量備份這個(gè)功能,于是決定先做下測(cè)試,看到底備份恢復(fù)效率和真實(shí)機(jī)制如何。 二、邏輯備份恢復(fù)工具exp/imp1、邏輯備份原理Oracle數(shù)據(jù)庫(kù)有三種標(biāo)準(zhǔn)的備份方法,它們分別是導(dǎo)出/導(dǎo)入(EXP/IMP、EXPDP/IMPDP)、熱備份和冷備份。導(dǎo)出備件是一種邏輯備份,冷備份和熱備份是物理備份。 邏輯導(dǎo)出備份:創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象的邏輯拷貝并存入一個(gè)二進(jìn)制轉(zhuǎn)儲(chǔ)文件。這種邏輯備份需要在數(shù)據(jù)庫(kù)啟動(dòng)的情況下使用, 其導(dǎo)出實(shí)質(zhì)就是讀取一個(gè)數(shù)據(jù)庫(kù)記錄集(甚至可以包括數(shù)據(jù)字典)并將這個(gè)記錄集寫入一個(gè)文件,這些記錄的導(dǎo)出與其物理位置無(wú)關(guān),導(dǎo)入實(shí)質(zhì)就是讀取轉(zhuǎn)儲(chǔ)文件并執(zhí)行其中的命令。此備份方式是通過(guò)Oracle的實(shí)用工具export和import來(lái)實(shí)施的, export是把數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出,import是把export卸出的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)中。通過(guò)此工具可以衍生出多種功能, 比如整個(gè)數(shù)據(jù)庫(kù)的備份、表結(jié)構(gòu)重建、數(shù)據(jù)的傳輸、用戶的改變等等。 重新溫習(xí)下exp/imp的語(yǔ)法和參數(shù),著重看看增量備份參數(shù)相關(guān)說(shuō)明。 2、exp語(yǔ)法和參數(shù)C:\Documents and Settings\A4586>exp help=y Export: Release 10.2.0.1.0 - Production on?星期三?11月?7 13:41:282012 Copyright (c) 1982, 2005, Oracle.??All rights reserved. 通過(guò)輸入?EXP?命令和您的用戶名/口令,?導(dǎo)出 操作將提示您輸入?yún)?shù): ? ???例如: EXPSCOTT/TIGER 或者,?您也可以通過(guò)輸入跟有各種參數(shù)的?EXP?命令來(lái)控制導(dǎo)出 的運(yùn)行方式。要指定參數(shù),?您可以使用關(guān)鍵字: ? ???格式:??EXP KEYWORD=value?或KEYWORD=(value1,value2,...,valueN) ? ???例如: EXPSCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) ? ?? ?? ?? ?? ?或TABLES=(T1:P1,T1:P2),?如果?T1?是分區(qū)表 USERID?必須是命令行中的第一個(gè)參數(shù)。 關(guān)鍵字? ?? ?? ?? ?? ?? ??說(shuō)明?(默認(rèn)值)? ?? ?? ? ----------? ?? ?? ?? ?? ?? ? --------------------------------------------------------- USERID? ?? ?? ?? ?? ?? ?? ???用戶名/口令 FULL? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???導(dǎo)出整個(gè)文件?(N) BUFFER? ?? ?? ?? ?? ?? ?? ???數(shù)據(jù)緩沖區(qū)大小 OWNER? ?? ?? ?? ?? ?? ?? ??所有者用戶名列表 FILE? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?輸出文件(EXPDAT.DMP) TABLES? ?? ?? ?? ?? ??表名列表 COMPRESS? ?? ?? ?? ?? ??導(dǎo)入到一個(gè)區(qū)?(Y) RECORDLENGTH? ?IO?記錄的長(zhǎng)度 GRANTS? ?? ?? ?? ?? ???導(dǎo)出權(quán)限?(Y) INCTYPE? ?? ?? ?? ?? ?? ?? ?? ?增量導(dǎo)出類型 INDEXES? ?? ?? ?? ?? ??導(dǎo)出索引?(Y) RECORD? ?? ?? ?? ?跟蹤增量導(dǎo)出?(Y) DIRECT? ?? ?? ?? ?? ???直接路徑?(N)? ?? ?? ? TRIGGERS? ?? ?? ??導(dǎo)出觸發(fā)器?(Y) LOG? ?? ?? ?? ?? ?? ??屏幕輸出的日志文件? ? STATISTICS? ?? ?? ?? ?分析對(duì)象(ESTIMATE) ROWS? ?? ?? ?? ?? ?? ?導(dǎo)出數(shù)據(jù)行(Y)? ?? ??? PARFILE? ?? ?? ?? ??參數(shù)文件名 CONSISTENT? ?? ?? ?? ?交叉表的一致性(N)? ? CONSTRAINTS? ?? ??導(dǎo)出的約束條件?(Y) OBJECT_CONSISTENT? ??只在對(duì)象導(dǎo)出期間設(shè)置為只讀的事務(wù)處理(N) FEEDBACK? ?? ?? ?? ??每?x?行顯示進(jìn)度?(0) FILESIZE? ?? ?? ?? ?? ?每個(gè)轉(zhuǎn)儲(chǔ)文件的最大大小 FLASHBACK_SCN? ?? ???用于將會(huì)話快照設(shè)置回以前狀態(tài)的?SCN FLASHBACK_TIME? ?? ??用于獲取最接近指定時(shí)間的?SCN?的時(shí)間 QUERY? ?? ?? ?? ?? ??用于導(dǎo)出表的子集的?select?子句 RESUMABLE? ?? ?? ?? ?遇到與空格相關(guān)的錯(cuò)誤時(shí)掛起?(N) RESUMABLE_NAME? ?? ?用于標(biāo)識(shí)可恢復(fù)語(yǔ)句的文本字符串 RESUMABLE_TIMEOUT? ? RESUMABLE?的等待時(shí)間 TTS_FULL_CHECK? ?? ?? ?? ?? ?? ?? ?對(duì)?TTS?執(zhí)行完整或部分相關(guān)性檢查 TABLESPACES? ?? ?? ?? ?要導(dǎo)出的表空間列表 TRANSPORT_TABLESPACE??導(dǎo)出可傳輸?shù)谋砜臻g元數(shù)據(jù)?(N) TEMPLATE? ?? ?? ?? ???調(diào)用?iAS?模式導(dǎo)出的模板名 3、imp語(yǔ)法和參數(shù)C:\Documents and Settings\A4586>imp help=y Import: Release 10.2.0.1.0 - Production on?星期三?11月?7 13:59:172012 Copyright (c) 1982, 2005, Oracle.??All rights reserved. 通過(guò)輸入?IMP?命令和您的用戶名/口令,?導(dǎo)入 操作將提示您輸入?yún)?shù): ? ???例如: IMPSCOTT/TIGER 或者,?可以通過(guò)輸入?IMP?命令和各種參數(shù)來(lái)控制導(dǎo)入 的運(yùn)行方式。要指定參數(shù),?您可以使用關(guān)鍵字: ? ???格式:??IMP KEYWORD=value?或KEYWORD=(value1,value2,...,valueN) ? ???例如: IMPSCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N ? ?? ?? ?? ?? ?或TABLES=(T1:P1,T1:P2),?如果?T1?是分區(qū)表 USERID?必須是命令行中的第一個(gè)參數(shù)。 關(guān)鍵字? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?說(shuō)明?(默認(rèn)值)? ?? ??? ----------------? ?? ?? ?? ?? ?? ?? ?? ???---------------------------------------- USERID? ?? ?? ?? ?? ?? ?? ?? ?? ?用戶名/口令? ?? ?? ??? FULL? ?? ?? ?? ?? ?? ?? ?? ?? ?導(dǎo)入整個(gè)文件?(N) BUFFER? ?? ?? ?? ?? ?? ?? ?? ?? ?數(shù)據(jù)緩沖區(qū)大小? ?? ??? FROMUSER? ?? ?? ?? ?? ?? ??所有者用戶名列表 FILE? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??輸入文件(EXPDAT.DMP)?? TOUSER? ?? ?? ?? ?? ?? ?? ?? ?用戶名列表 SHOW? ?? ?? ?? ?? ?? ?? ?? ?? ?只列出文件內(nèi)容(N)? ??? TABLES? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?表名列表 IGNORE? ?? ?? ?? ?? ?? ?? ?? ???忽略創(chuàng)建錯(cuò)誤(N)? ? RECORDLENGTH? ?? ?? ?? ???IO?記錄的長(zhǎng)度 GRANTS? ?? ?? ?? ?? ?? ?? ?? ???導(dǎo)入權(quán)限?(Y)? ?? ?? ? INCTYPE? ?? ?? ?? ?? ?? ?? ?? ?增量導(dǎo)入類型 INDEXES? ?? ?? ?? ?? ?? ?? ?? ??導(dǎo)入索引?(Y)? ?? ??? COMMIT? ?? ?? ?? ?? ?? ??提交數(shù)組插入?(N) ROWS? ?? ?? ?? ?? ?? ?? ?? ?? ?導(dǎo)入數(shù)據(jù)行(Y)? ?? ??? PARFILE? ?? ?? ?? ?? ?? ?? ???參數(shù)文件名 LOG? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??屏幕輸出的日志文件? ? CONSTRAINTS? ?? ?? ?? ???導(dǎo)入限制?(Y) DESTROY? ?? ?? ?? ??覆蓋表空間數(shù)據(jù)文件?(N) INDEXFILE? ?? ?? ?? ?將表/索引信息寫入指定的文件 SKIP_UNUSABLE_INDEXES??跳過(guò)不可用索引的維護(hù)?(N) FEEDBACK? ?? ?? ?? ?? ?每?x?行顯示進(jìn)度?(0) TOID_NOVALIDATE? ?? ???跳過(guò)指定類型?ID?的驗(yàn)證 FILESIZE? ?? ?? ?? ?? ?? ???每個(gè)轉(zhuǎn)儲(chǔ)文件的最大大小 STATISTICS? ?? ?? ?? ?? ?? ?始終導(dǎo)入預(yù)計(jì)算的統(tǒng)計(jì)信息 RESUMABLE? ?? ?? ?? ???在遇到有關(guān)空間的錯(cuò)誤時(shí)掛起?(N) RESUMABLE_NAME? ?? ???用來(lái)標(biāo)識(shí)可恢復(fù)語(yǔ)句的文本字符串 RESUMABLE_TIMEOUT? ?? ?RESUMABLE?的等待時(shí)間 COMPILE? ?? ?? ?? ?? ???編譯過(guò)程,?程序包和函數(shù)?(Y) STREAMS_CONFIGURATION??導(dǎo)入流的一般元數(shù)據(jù)?(Y) STREAMS_INSTANTIATION? ?導(dǎo)入流實(shí)例化元數(shù)據(jù)?(N) 下列關(guān)鍵字僅用于可傳輸?shù)谋砜臻g TRANSPORT_TABLESPACE?導(dǎo)入可傳輸?shù)谋砜臻g元數(shù)據(jù)(N) TABLESPACES?將要傳輸?shù)綌?shù)據(jù)庫(kù)的表空間 DATAFILES?將要傳輸?shù)綌?shù)據(jù)庫(kù)的數(shù)據(jù)文件 TTS_OWNERS?擁有可傳輸表空間集中數(shù)據(jù)的用戶 三、exp邏輯備份ORACLE數(shù)據(jù)庫(kù)的邏輯備份分為三種模式:表備份、用戶備份和完全備份。 (1)、表方式(T方式),將指定表的數(shù)據(jù)導(dǎo)出。 (2)、用戶方式(U方式),將指定用戶的所有對(duì)象及數(shù)據(jù)導(dǎo)出。 (3)、全庫(kù)方式(Full方式),將數(shù)據(jù)庫(kù)中的所有對(duì)象導(dǎo)出 1、exp表模式備份備份某個(gè)用戶模式下指定的對(duì)象(表)。業(yè)務(wù)數(shù)據(jù)庫(kù)通常采用這種備份方式。 若備份到本地文件,使用如下命令: C:\Documents and Settings\A4586>set nls_lang=simplifiedchinese_china.zhs16gbk C:\Documents and Settings\A4586>exp scott/tiger file=c:\exp_scott_emp.dmplog=c:\exp_scott_emplog tables=scott.emp,scott.dept 即將導(dǎo)出指定的表通過(guò)常規(guī)路徑... . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ???EMP導(dǎo)出了? ?? ?? ? 14?行 . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ? DEPT導(dǎo)出了? ?? ?? ???4?行 導(dǎo)出成功。 2、exp用戶模式備份備份某個(gè)用戶模式下的所有對(duì)象。業(yè)務(wù)數(shù)據(jù)庫(kù)通常采用這種備份方式。若備份到本地文件,使用如下命令: ? ?C:\Documentsand Settings\A4586>expscott/tiger file=c:\exp_scott.dmp log=c:\exp_scott.log owner=scott 即將導(dǎo)出指定的用戶... .?正在導(dǎo)出?pre-schema?過(guò)程對(duì)象和操作 .?正在導(dǎo)出用戶?SCOTT?的外部函數(shù)庫(kù)名 .?導(dǎo)出?PUBLIC?類型同義詞 .?正在導(dǎo)出專用類型同義詞 .?正在導(dǎo)出用戶?SCOTT?的對(duì)象類型定義 即將導(dǎo)出?SCOTT?的對(duì)象... .?正在導(dǎo)出數(shù)據(jù)庫(kù)鏈接 .?正在導(dǎo)出序號(hào) .?正在導(dǎo)出簇定義 .?即將導(dǎo)出?SCOTT?的表通過(guò)常規(guī)路徑... . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ?BONUS導(dǎo)出了? ?? ?? ???0?行 . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ? DEPT導(dǎo)出了? ?? ?? ???4?行 . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ???EMP導(dǎo)出了? ?? ?? ? 14?行 . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?SALGRADE導(dǎo)出了? ?? ?? ???5?行 ……. 3、exp全庫(kù)模式備份備份完整的數(shù)據(jù)庫(kù)。業(yè)務(wù)數(shù)據(jù)庫(kù)不采用這種備份方式。注意導(dǎo)出用戶權(quán)限。備份命令為: C:\Documents and Settings\A4586>exp system/oraclefile=c:\exp_full.dmp log=c:\exp_full.log full=y; 即將導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)... .?正在導(dǎo)出表空間定義 .?正在導(dǎo)出概要文件 .?正在導(dǎo)出用戶定義 .?正在導(dǎo)出角色 .?正在導(dǎo)出資源成本 .?正在導(dǎo)出回退段定義 .?正在導(dǎo)出數(shù)據(jù)庫(kù)鏈接 .?正在導(dǎo)出序號(hào) ……. 四、imp邏輯恢復(fù)數(shù)據(jù)導(dǎo)入(Import)的過(guò)程是數(shù)據(jù)導(dǎo)出(Export)的逆過(guò)程,分別將數(shù)據(jù)文件導(dǎo)入數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)的邏輯恢復(fù)分為表恢復(fù)、用戶恢復(fù)、完全恢復(fù)三種模式。 1、imp表模式恢復(fù)A.?恢復(fù)表備份數(shù)據(jù)的全部?jī)?nèi)容 若從本地文件恢復(fù)scott導(dǎo)出的表,使用如下命令: ? ? C:\Documentsand Settings\A4586>impscott/tiger fromuser=scott touser=scott file=c:\exp_scott_emp.dmp log=c:\imp_scott_emp.log 經(jīng)由常規(guī)路徑由?EXPORT:V10.02.01?創(chuàng)建的導(dǎo)出文件 已經(jīng)完成?ZHS16GBK?字符集和?AL16UTF16 NCHAR?字符集中的導(dǎo)入 導(dǎo)入服務(wù)器使用?AL32UTF8?字符集?(可能的字符集轉(zhuǎn)換) .?正在將?SCOTT?的對(duì)象導(dǎo)入到?SCOTT . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ?"EMP"導(dǎo)入了? ?? ?? ? 14?行 . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ?"DEPT"導(dǎo)入了? ?? ?? ? 4?行 即將啟用約束條件... 成功終止導(dǎo)入,?沒有出現(xiàn)警告。 B.?恢復(fù)備份數(shù)據(jù)中的指定表 若從本地文件恢復(fù)scott備份導(dǎo)出的表,此時(shí)必須制定所有表,使用如下命令: C:\Documents andSettings\A4586>impscott/tiger fromuser=scott touser=scotts file=c:\exp_scott_emp.dmp log=c:\imp_scott_emp.logtables=emp ignore=y; 經(jīng)由常規(guī)路徑由?EXPORT:V10.02.01?創(chuàng)建的導(dǎo)出文件 已經(jīng)完成?ZHS16GBK?字符集和?AL16UTF16 NCHAR?字符集中的導(dǎo)入 導(dǎo)入服務(wù)器使用?AL32UTF8?字符集?(可能的字符集轉(zhuǎn)換) .?正在將?SCOTT?的對(duì)象導(dǎo)入到?SCOTTS . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ?"EMP"導(dǎo)入了? ?? ?? ? 14?行 即將啟用約束條件... 成功終止導(dǎo)入,?沒有出現(xiàn)警告。 2、imp用戶模式恢復(fù)A.?恢復(fù)備份數(shù)據(jù)的全部?jī)?nèi)容 若從本地文件恢復(fù)整個(gè)用戶的所有表,使用如下命令 ? ???C:\Documents and Settings\A4586>imp scott/tigerfromuser=scott touser=scott file=c:\exp_scott.dmp log=c:\imp_scott.log; .?正在將?SCOTT?的對(duì)象導(dǎo)入到?SCOTTS B.?恢復(fù)備份數(shù)據(jù)中的指定表 若從本地文件恢復(fù)該用戶的部分表,注意,這里一定要使用ingore=y,使用如下命令: ? ?C:\Documentsand Settings\A4586>impscott/tiger fromuser=scott touser=scotts file=c:\exp_scott.dmp log=c:\imp_scott.logtables=emp ignore=y; 經(jīng)由常規(guī)路徑由?EXPORT:V10.02.01?創(chuàng)建的導(dǎo)出文件 已經(jīng)完成?ZHS16GBK?字符集和?AL16UTF16 NCHAR?字符集中的導(dǎo)入 導(dǎo)入服務(wù)器使用?AL32UTF8?字符集?(可能的字符集轉(zhuǎn)換) . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ?" EMP "導(dǎo)入了? ?? ? 14?行 成功終止導(dǎo)入,?沒有出現(xiàn)警告。 3、imp全庫(kù)模式恢復(fù)A.?恢復(fù)備份數(shù)據(jù)的全庫(kù)全部?jī)?nèi)容 若從全庫(kù)備份文件恢復(fù)全庫(kù),使用如下命令: C:\Documents and Settings\A4586>imp scott/tigerfile=c:\exp_full.dmp log=c:\imp_full.log full=y; 經(jīng)由常規(guī)路徑由?EXPORT:V10.02.01?創(chuàng)建的導(dǎo)出文件 已經(jīng)完成?ZHS16GBK?字符集和?AL16UTF16 NCHAR?字符集中的導(dǎo)入 導(dǎo)入服務(wù)器使用?AL32UTF8?字符集?(可能的字符集轉(zhuǎn)換) .?正在將?SYSTEM?的對(duì)象導(dǎo)入到?SYSTEM ……. B.?恢復(fù)備份數(shù)據(jù)的特定用戶內(nèi)容 若從全庫(kù)備份文件恢復(fù)特定用戶的對(duì)象,使用如下命令: C:\Documents and Settings\A4586>imp scott/tigerfile=c:\exp_full.dmp log=c:\imp_full_scott.log fromuser=scott touser=scott ignore=y; 經(jīng)由常規(guī)路徑由?EXPORT:V10.02.01?創(chuàng)建的導(dǎo)出文件 已經(jīng)完成?ZHS16GBK?字符集和?AL16UTF16 NCHAR?字符集中的導(dǎo)入 導(dǎo)入服務(wù)器使用?AL32UTF8?字符集?(可能的字符集轉(zhuǎn)換) .?正在將?SCOTT?的對(duì)象導(dǎo)入到?SCOTTS ……. C.?恢復(fù)備份數(shù)據(jù)的特定表內(nèi)容 若從全庫(kù)備份文件恢復(fù)特定表,使用如下命令: C:\Documents and Settings\A4586>imp scott/tigerfile=c:\exp_full.dmp log=c:\imp_full.log fromuser=scott touser=scott tables=empignore=y; 經(jīng)由常規(guī)路徑由?EXPORT:V10.02.01?創(chuàng)建的導(dǎo)出文件 已經(jīng)完成?ZHS16GBK?字符集和?AL16UTF16 NCHAR?字符集中的導(dǎo)入 導(dǎo)入服務(wù)器使用?AL32UTF8?字符集?(可能的字符集轉(zhuǎn)換) .?正在將?SCOTT?的對(duì)象導(dǎo)入到?SCOTT . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ?"EMP"導(dǎo)入了? ?? ?? ? 14?行 即將啟用約束條件... 成功終止導(dǎo)入,?沒有出現(xiàn)警告。 五、?exp/imp增量參數(shù)INCTYPE1、exp增量備份條件增量導(dǎo)出是一種常用的數(shù)據(jù)備份方法,它只能對(duì)整個(gè)數(shù)據(jù)庫(kù)來(lái)實(shí)施,并且必須使用SYSTEM賬號(hào)來(lái)導(dǎo)出。在進(jìn)行此種導(dǎo)出時(shí),系統(tǒng)不要求回答任何問(wèn)題。導(dǎo)出文件名缺省為export.dmp,如果不希望自己的輸出檔定名為export.dmp,必須在命令行中指出要用的文件名。當(dāng)全庫(kù)備份比較小時(shí)候,采用數(shù)據(jù)庫(kù)備份更便于恢復(fù)。 執(zhí)行增量備份必須滿足下列條件: 1.只對(duì)完整數(shù)據(jù)庫(kù)備份有效,且第一次需要full=y參數(shù),以后需要inctype=incremental參數(shù)。 2.?用戶必須有EXP_FULL_DATABASE的系統(tǒng)角色。 2、exp增量備份類型增量導(dǎo)出包括三種類型: (1)“完全”增量導(dǎo)出(Complete) 備份整個(gè)數(shù)據(jù)庫(kù),腳本內(nèi)容如下: C:\Documents andSettings\A4586>expsystem/oracle inctype=complete file=c:\exp_incr_full.dmplog=c:\exp_incr_full.log (2)“增量型”增量導(dǎo)出(Incremental) 備份上一次備份后改變的數(shù)據(jù),腳本內(nèi)容如下: C:\Documents andSettings\A4586>expsystem/oracle inctype=incremental file=c:\exp_incr_incr.dmplog=c:\exp_incr_incr.log (3)“累積型”增量導(dǎo)出(Cumulative) ? ?? ?? ?備份自上次“完全”導(dǎo)出之后數(shù)據(jù)庫(kù)中變化了的數(shù)據(jù)。腳本內(nèi)容如下: C:\Documents andSettings\A4586>expsystem/oracle inctype=cumulative file=c:\exp_incr_cum.dmplog=c:\exp_incr_cum.log 六、增量備份恢復(fù)實(shí)例1、exp增量備份恢復(fù)策略數(shù)據(jù)庫(kù)管理員可以排定一個(gè)備份日程表,用數(shù)據(jù)導(dǎo)出的三個(gè)不同方式合理高效的完成。 比如數(shù)據(jù)庫(kù)的備分任務(wù)可以做如下安排: 星期一:完全導(dǎo)出(export_A.dmp) 星期二:增量導(dǎo)出(export_B.dmp) 星期三:增量導(dǎo)出(export_C.dmp) 星期四:增量導(dǎo)出(export_D.dmp) 星期五:累計(jì)導(dǎo)出(export_E.dmp) 星期六:增量導(dǎo)出(export_F.dmp) 星期日:增量導(dǎo)出(export_G.dmp) 如果在星期日,數(shù)據(jù)庫(kù)遭到意外破壞,數(shù)據(jù)庫(kù)管理員可按照如下步驟恢復(fù)數(shù)據(jù)庫(kù): 第一步:用命令CREATE DATABASE重新生成數(shù)據(jù)庫(kù)結(jié)構(gòu); 第二步:創(chuàng)建一個(gè)足夠大的附加回滾,供imp使用。 第三步:完全增量導(dǎo)入A: imp system/manager inctype=RESTORE FULL=y FILE=A 第四步:累計(jì)增量導(dǎo)入E: imp system/manager inctype=RESTORE FULL=Y FILE=E 第五步:最近增量導(dǎo)入F: imp system/manager inctype=RESTORE FULL=Y FILE=F 2、A時(shí)間點(diǎn)全備C:\Documents and Settings\A4586>sqlplus sys/oracle assysdba SQL*Plus: Release 10.2.0.1.0 - Productionon?星期三?11月?7 17:03:41 2012 Copyright (c) 1982, 2005, Oracle.??All rights reserved. 連接到: Oracle Database 10g Enterprise EditionRelease 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Miningoptions SQL>grant dba to scott; SQL> create tablespace tbs_incr datafile'D:\oracle\product\10.2.0\oradata\xmlgis\tbs_incr.dbf' size 10M autoextend onnext 10M maxsize unlimited; SQL> create table scott.a (status varchar(20),weektimevarchar(20)) tablespace tbs_incr; SQL> insert into scott.a values('insert','A'); SQL> commit; C:\Documents and Settings\A4586>exp scott/tigerinctype=complete file=c:\exp_incr_A.dmp log=c:\exp_incr_A.log; 日志中發(fā)現(xiàn)如下: .?即將導(dǎo)出?SCOTT?的表通過(guò)常規(guī)路徑... . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? A導(dǎo)出了? ?? ?? ???1?行 3、B時(shí)間點(diǎn)增量備份SQL> create table scott.b (status varchar(20),weektimevarchar(20)) tablespace tbs_incr; SQL> insert into scott.b values('insert','b'); SQL> insert into scott.a values('insert','b'); SQL> commit;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? C:\Documents and Settings\A4586>exp scott/tiger inctype=incrementalfile=c:\exp_incr_B.dmp log=c:\exp_incr_B.log; 日志中發(fā)現(xiàn)如下: .?即將導(dǎo)出?SCOTT?的表通過(guò)常規(guī)路徑... . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? A導(dǎo)出了? ?? ?? ???2?行 . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? B導(dǎo)出了? ?? ?? ???1?行 ? 通過(guò)以上就說(shuō)明了exp增量備份的最小執(zhí)行?單位是表。 4、C時(shí)間點(diǎn)累積備份SQL> create table scott.c (status varchar(20),weektimevarchar(20)) tablespace tbs_incr; SQL> insert into scott.c values('insert','c'); SQL> insert into scott.a values('insert','c'); SQL> commit; C:\Documents and Settings\A4586>exp scott/tiger inctype=cumulativefile=c:\exp_incr_C.dmp log=c:\exp_incr_C.log; 日志中發(fā)現(xiàn)如下: .?即將導(dǎo)出?SCOTT?的表通過(guò)常規(guī)路徑... .?.?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? A導(dǎo)出了? ?? ?? ???3?行 . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? B導(dǎo)出了? ?? ?? ???1?行 . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? C導(dǎo)出了? ?? ?? ???1?行 注意,這里的B表也被備份了,這是因?yàn)檫@里做的是累積備份,相對(duì)于全庫(kù)備份的增加來(lái)進(jìn)行的,因此B表也是新增的,因此被備份了。增量和累積的差異非常清晰。 5、D時(shí)間點(diǎn)增量備份SQL> create table scott.d (status varchar(20),weektimevarchar(20)) tablespace tbs_incr; SQL> insert into scott.d values('insert','d'); SQL> insert into scott.a values('insert','d'); SQL> commit;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? C:\Documents and Settings\A4586>exp scott/tiger inctype=incrementalfile=c:\exp_incr_D.dmp log=c:\exp_incr_D.log; 日志中發(fā)現(xiàn)如下: .?即將導(dǎo)出?SCOTT?的表通過(guò)常規(guī)路徑... . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? A導(dǎo)出了? ?? ?? ???4?行 . .?正在導(dǎo)出表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? D導(dǎo)出了? ?? ?? ???1?行 6、E時(shí)間點(diǎn)增量備份SQL> create table scott.e(status varchar(20),weektimevarchar(20)) tablespace tbs_incr; SQL> insert into scott.e values('insert','e'); SQL> insert into scott.a values('insert','e'); SQL> commit; SQL> col status format a10 SQL> select * from scott.a; STATUS? ? WEEKTIME -------------------------------------------------- insert? ? b insert? ? A insert? ? c insert? ? d insert? ? e 6、A表丟失數(shù)據(jù)恢復(fù)? ?? ?? ?假設(shè)A表數(shù)據(jù)被誤刪除后,這個(gè)時(shí)候想要恢復(fù)到A,B,C,D,E某個(gè)時(shí)間的備份如何操作呢?(變相的需求是當(dāng)前數(shù)據(jù)不是我想要的,我想恢復(fù)到之前某天的數(shù)據(jù),先刪除,在恢復(fù)!) 由于表是一個(gè)單獨(dú)備份的對(duì)象單元,因此恢復(fù)的時(shí)候只要找到備份文件,就可以恢復(fù)到想要恢復(fù)的時(shí)刻。 舉例:恢復(fù)表A到C點(diǎn)時(shí)間的數(shù)據(jù),恢復(fù)步驟如下: SQL> select * from scott.a; STATUS? ? WEEKTIME -------------------------------------------------- insert? ? b insert? ? A insert? ? c insert? ? d insert? ? e SQL> drop table scott.a; C:\Documents and Settings\A4586>imp scott/tigerfromuser=scott touser=scott file=c:\exp_incr_c.dmp log=c:\imp_incr_c.logtables=a ignore=y; 經(jīng)由常規(guī)路徑由?EXPORT:V10.02.01?創(chuàng)建的導(dǎo)出文件 已經(jīng)完成?ZHS16GBK?字符集和AL16UTF16 NCHAR?字符集中的導(dǎo)入 導(dǎo)入服務(wù)器使用?AL32UTF8?字符集?(可能的字符集轉(zhuǎn)換) .?正在將?SCOTT?的對(duì)象導(dǎo)入到?SCOTT . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ???"A"導(dǎo)入了? ?? ?? ???3?行 成功終止導(dǎo)入,?沒有出現(xiàn)警告。 SQL> col status format a10 SQL> select * from scott.a; STATUS? ? WEEKTIME ---------- ---------------------------------------- insert? ? b insert? ? A insert? ? c 舉例:恢復(fù)A表到D點(diǎn)時(shí)刻數(shù)據(jù) SQL> drop table scott.a; C:\Documents and Settings\A4586>imp scott/tigerfromuser=scott touser=scott fil=c:\exp_incr_d.dmp log=c:\imp_incr_d.logtables=a ignore=y; 經(jīng)由常規(guī)路徑由?EXPORT:V10.02.01?創(chuàng)建的導(dǎo)出文件 已經(jīng)完成?ZHS16GBK?字符集和?AL16UTF16 NCHAR?字符集中的導(dǎo)入 導(dǎo)入服務(wù)器使用?AL32UTF8?字符集?(可能的字符集轉(zhuǎn)換) .?正在將?SCOTT?的對(duì)象導(dǎo)入到?SCOTT . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ???"A"導(dǎo)入了? ?? ?? ???4?行 成功終止導(dǎo)入,?沒有出現(xiàn)警告。 SQL> col status format a10 SQL> select * from scott.a; STATUS? ? WEEKTIME -------------------------------------------------- insert? ? b insert? ? A insert? ? c insert? ? d 7、D時(shí)間點(diǎn)丟失表空間恢復(fù)? ?? ?? ?假設(shè)在D時(shí)間點(diǎn)備份之后做了些操作后,表空間的數(shù)據(jù)文件tbs_del.dbf被誤刪除了,這個(gè)情況下的數(shù)據(jù)恢復(fù)步驟: ? ?? ?? ?1:模擬破壞表空間 刪除tbs_incr.dbf數(shù)據(jù)文件,關(guān)閉數(shù)據(jù)庫(kù)重新啟動(dòng)后,執(zhí)行插入報(bào)錯(cuò)如下: SQL> insert intoscott.a values('del files','e'); insert into scott.a values('del files','e') ? ?? ?? ?? ?? ?? ? * 第?1?行出現(xiàn)錯(cuò)誤: ORA-00376:?此時(shí)無(wú)法讀取文件?7 ORA-01110:?數(shù)據(jù)文件?7:'D:\ORACLE\PRODUCT\10.2.0\ORADATA\XMLGIS\TBS_INCR.DBF' 2:將被損壞的表空間(或涉及到數(shù)據(jù)文件損壞的表空間)offline: SQL>connect / as sysdba SQL> COL SEGMENT_NAME FORMAT A10 SQL> select SEGMENT_NAME,SEGMENT_TYPE from dba_segmentswhere tablespace_name='T BS_INCR'; SEGMENT_NA SEGMENT_TYPE ---------------------------------------------- A? ?? ?? ?TABLE B? ?? ?? ?TABLE C? ?? ?? ?TABLE D? ?? ?? ?TABLE E? ?? ?? ?TABLE SQL>alter tablespace tbs_incr offline immediate; SQL>drop tablespace tbs_incr including contents; 3:恢復(fù)表空間和數(shù)據(jù)文件 SQL>create tablespace tbs_incr datafile'D:\oracle\product\10.2.0\oradata\xmlgis\tbs_incr.dbf' size 10M autoextend onnext 10M maxsize unlimited; 創(chuàng)建表空間參數(shù),以及數(shù)據(jù)文件的路徑和大小,可以參照以前的設(shè)置,創(chuàng)建表空間成功后,一一恢復(fù)屬于該表空間的各用戶對(duì)象。 ? ?? ?? ?然后根據(jù)想要表對(duì)應(yīng)的備份進(jìn)行恢復(fù)即可,步驟同6. 8、全庫(kù)恢復(fù)? ?? ?? ?進(jìn)行全庫(kù)方法,建立好表空間,然后全庫(kù)導(dǎo)入,這里測(cè)試用刪除SCOTT用戶的表A,來(lái)測(cè)試全庫(kù)恢復(fù)情況(A+C+D): 恢復(fù)全庫(kù)備份A: C:\Documents and Settings\A4586>imp scott/tiger??file=c:\exp_incr_a.dmp log=c:\imp_incr_a.loginctype=restore full=y ignore=y; 恢復(fù)累積備份C: C:\Documents and Settings\A4586>imp scott/tiger??file=c:\exp_incr_c.dmp log=c:\imp_incr_c.loginctype=restore full=y ignore=y; .?正在將?SCOTT?的對(duì)象導(dǎo)入到?SCOTT . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ???"A"導(dǎo)入了? ?? ?? ???3?行 . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ???"B"導(dǎo)入了? ?? ?? ???1?行 . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ???"C"導(dǎo)入了? ?? ?? ???1?行 恢復(fù)增量備份D: C:\Documents and Settings\A4586>imp scott/tiger??file=c:\exp_incr_d.dmp log=c:\imp_incr_d.loginctype=restore full=y ignore=y; .?正在將?SCOTT?的對(duì)象導(dǎo)入到?SCOTT . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ???"A"導(dǎo)入了? ?? ?? ???4?行 . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ???"D"導(dǎo)入了? ?? ?? ???1?行 SQL> col status format a10 SQL> select * from scott.a; STATUS? ? WEEKTIME -------------------------------------------------- insert? ? b insert? ? A insert? ? c insert? ? d 異常測(cè)試:刪除A表和B表,直接用C備份進(jìn)行恢復(fù),看看回復(fù)情況如何 SQL> DROP TABLE SCOTT.A; SQL> DROP TABLE SCOTT.B; 直接恢復(fù)累積備份C: C:\Documents and Settings\A4586>imp scott/tiger??file=c:\exp_incr_c.dmp log=c:\imp_incr_c.loginctype=restore full=y ignore=y; .?正在將?SCOTT?的對(duì)象導(dǎo)入到?SCOTT . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ???"A"導(dǎo)入了? ?? ?? ???3?行 . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ???"B"導(dǎo)入了? ?? ?? ???1?行 . .?正在導(dǎo)入表? ?? ?? ?? ?? ?? ?? ?? ?? ???"C"導(dǎo)入了? ?? ?? ???1?行 SQL> select * from scott.b; select * from scott.b ? ?? ?? ?? ?? ?? ???* 第?1?行出現(xiàn)錯(cuò)誤: ORA-00942:?表或視圖不存在 這個(gè)時(shí)候發(fā)現(xiàn),B表并未導(dǎo)入,類似RMAN里的不完全恢復(fù)。 七、Exp/Imp增量備份恢復(fù)總結(jié)? ?Export/Import支持的增量和累計(jì)備份實(shí)際上是表級(jí)的,即上一次備份之后變化的表將全表卸載,而不是變化的記錄。因此,在以OLTP應(yīng)用為主的數(shù)據(jù)庫(kù)中,由于保存主要業(yè)務(wù)數(shù)據(jù)的表處于頻繁的錄入和更新之中,增量和累計(jì)卸載并不能顯著提高備份的效率。 ? ??在做整個(gè)數(shù)據(jù)庫(kù)Import時(shí),缺省狀態(tài)下以一個(gè)Table為一個(gè)Transaction,所以如果存在一些表的數(shù)據(jù)量很大,?建議使用commit=y并且要提供一個(gè)較大的buffer值,同時(shí)建立一個(gè)臨時(shí)Rollback segment?,它的default storage參數(shù)initial?和?next要設(shè)置大一些,并要將這個(gè)Rollback Segment Online,同時(shí)offline?其他小的rollbacksegments。確保一個(gè)Table能完整import?。因?yàn)樵谧?/span>import時(shí),?數(shù)據(jù)庫(kù)將自動(dòng)創(chuàng)建索引,及完整性約束,?為了加快數(shù)據(jù)加載的速度及一次成功的概率,可以考慮在export之前首先disable所有的完整性約束,?在import之后在enable所有的完整性約束。而對(duì)索引,可以考慮單獨(dú)export索引。通過(guò)使用命令?"imp indexfile=……"?在import數(shù)據(jù)之后來(lái)單獨(dú)創(chuàng)建索引。 ? ??如果希望在export數(shù)據(jù)庫(kù)時(shí),直接將產(chǎn)生的dmp文件寫到外設(shè)上,?你可以使用?"exp file=設(shè)備名…?Volsize=設(shè)備的容量"。 由于export出來(lái)的文件可能較大,而某些操作系統(tǒng)(如Linux)對(duì)文件大小有限制,如不能大于2G。因此可將dmp文件設(shè)置為指定大小的若干文件。如: exp sys/managerbuffer=4096000 file=(full1.dmp,full2.dmp,full3.dmp,full4.dmp) filesize=2GFull=y inctype=complete log=full.log 總結(jié):特殊場(chǎng)景,該備份可以被適用。不過(guò)RMAN還是更便捷啊!難怪INCTYPE要被廢棄呢。 WORD里格式好好的,到編輯器格式亂了,附件下載: |
轉(zhuǎn)載于:https://www.cnblogs.com/gongyu/p/4276962.html
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的大家看看这个参数inctype你是否使用过?我做了以下测试,欢迎拍砖!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OC语言Block和协议
- 下一篇: [译]管理IIS日志的存储