Oracle系列之一:備份還原之:EXP椎咧、IMP和EXPDP、IMPDP


title: Oracle系列之一:備份還原之:EXP把介、IMP和EXPDP勤讽、IMPDP
categories: Linux
tags:
- Oracle
timezone: Asia/Shanghai
date: 2019-02-01


環(huán)境

[root@rehl7501 oracle]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.5 (Maipo)

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

簡介

1、exp和imp是客戶端工具程序拗踢,它們既可以在客戶端使用脚牍,也可以在服務(wù)端使用。
2巢墅、expdp和impdp是服務(wù)端的工具程序诸狭,他們只能在oracle服務(wù)端使用,不能在客戶端使用砂缩。
3作谚、imp只適用于exp導(dǎo)出的文件,不適用于expdp導(dǎo)出文件庵芭;impdp只適用于expdp導(dǎo)出的文件妹懒,而不適用于exp導(dǎo)出文件。
  • EXP\IMP方式在備份的時(shí)候如果備份文件已經(jīng)存在双吆,會直接覆蓋
  • EXPDP\IMPDP數(shù)據(jù)泵方式如果備份文件已經(jīng)存在眨唬,會報(bào)錯

方法1:EXP\IMP方式備份和還原數(shù)據(jù)庫

1.1.EXP備份:傳統(tǒng)路徑導(dǎo)出

# 用戶模式:備份admin用戶的所有表
exp admin/xiaoliu@11.11.11.111/oracledb FILE=/home/oracle/full.dmp LOG=/home/oracle/full.log OWNER=admin

# 表模式(只導(dǎo)出C_CONS, DATASOURCE兩個(gè)表數(shù)據(jù))
exp admin/xiaoliu@11.11.11.111/oracledb FILE=/home/oracle/full.dmp LOG=/home/oracle/full.log TABLES=C_CONS, DATASOURCE

    ROWS=N      # 可以加此參數(shù)只導(dǎo)出數(shù)據(jù)庫結(jié)構(gòu)而不導(dǎo)出數(shù)據(jù)

1.2.EXP備份:直接路徑導(dǎo)出

# 用戶模式:備份admin用戶的所有表
exp admin/xiaoliu@11.11.11.111/oracledb FILE=/home/oracle/full.dmp LOG=/home/oracle/full.log OWNER=admin \
    recordlength=65535 direct=y buffer=104857600

# 表模式(只導(dǎo)出C_CONS, DATASOURCE兩個(gè)表數(shù)據(jù))
exp admin/xiaoliu@11.11.11.111/oracledb FILE=/home/oracle/full.dmp LOG=/home/oracle/full.log TABLES=C_CONS, DATASOURCE \
    recordlength=65535 direct=y buffer=104857600

    ROWS=N      # 可以加此參數(shù)只導(dǎo)出數(shù)據(jù)庫結(jié)構(gòu)而不導(dǎo)出數(shù)據(jù)

1.3.傳統(tǒng)路徑導(dǎo)出和直接路徑導(dǎo)出對比

1.兩者的差異

  • a.傳統(tǒng)路徑模式,使用SQL SELECT語句抽取表數(shù)據(jù)好乐。數(shù)據(jù)從磁盤讀入到buffer cache緩沖區(qū)中匾竿,行被轉(zhuǎn)移到評估緩沖區(qū)。
    在此之后根據(jù)SQL表達(dá)式蔚万,將記錄返回給導(dǎo)出客戶端岭妖,然后寫入到dump文件。

  • b.直接導(dǎo)出模式,數(shù)據(jù)直接從磁盤中讀取到導(dǎo)出session的PGA中昵慌,行被直接轉(zhuǎn)移到導(dǎo)出session的私有緩沖區(qū)假夺,從而跳過SQL命令處理層。
    避免了不必要的數(shù)據(jù)轉(zhuǎn)換斋攀。最后記錄返回給導(dǎo)出客戶端已卷,寫到dump文件。

2.性能問題

  • a.直接路徑導(dǎo)出方式比傳統(tǒng)路徑方式具有更優(yōu)的性能淳蔼,速度更快侧蘸,因?yàn)槔@過了SQL命令處理部分。

  • b.直接路徑導(dǎo)出方式支持RECORDLENGTH參數(shù)(最大為64k)鹉梨,該參數(shù)值通常建議設(shè)置為系統(tǒng)I/O或者DB_BLOCK_SIZE的整數(shù)倍

  • c.影響直接路徑導(dǎo)出的具體因素(DB_BLOCK_SIZE讳癌,列的類型,I/O性能俯画,即數(shù)據(jù)文件所在的磁盤驅(qū)動器是否單獨(dú)于dump文件所在的磁盤驅(qū)動器)

  • d.無論是直接路徑導(dǎo)出還是傳統(tǒng)路徑導(dǎo)出產(chǎn)生的dump析桥,在使用imp方式導(dǎo)入時(shí),會耗用相同的時(shí)間

3艰垂、直接路徑導(dǎo)出的限制

  • a.直接路徑導(dǎo)出不支持交互模式
  • b.不支持表空間傳輸模式(即TRANSPORT_TABLESPACES=Y不被支持)泡仗,支持的是FULL,OWNER,TABLES導(dǎo)出方式
  • c.不支持QUERY查詢方式,如exp scott/tige TABLES=emp QUERY="WHERE job='SALESMAN' " 不被支持
  • e.直接路徑導(dǎo)出使用RECORDLENGTH設(shè)置一次可以導(dǎo)出數(shù)據(jù)的量猜憎,取代傳統(tǒng)路徑使用buffer的設(shè)置
  • e.直接路徑導(dǎo)出要求NLS_LANG環(huán)境參數(shù)等于數(shù)據(jù)庫字符集娩怎,負(fù)責(zé)收到EXP-41警告及EXP-0終止錯誤

2.IMP還原:

# 用戶模式:恢復(fù)所有表
imp admin/xiaoliu FILE=/home/oracle/full.dmp LOG=/home/oracle/full.log FROMUSER=user_pssc_sm64 TOUSER=admin
imp admin/xiaoliu FILE=/home/oracle/full.dmp LOG=/home/oracle/full.log FULL=y

# 表模式:(只恢復(fù)C_CONS, DATASOURCE兩個(gè)表數(shù)據(jù))
imp admin/xiaoliu FILE=/home/oracle/full.dmp FROMUSER=user_pssc_sm64 TOUSER=admin TABLES=C_CONS, DATASOURCE
imp admin/xiaoliu FILE=/home/oracle/full.dmp TABLES=C_CONS, DATASOURCE


    ignore=y    # 表示忽略創(chuàng)建錯誤,繼續(xù)后面的操作
                # Oracle不執(zhí)行CREATE TABLE語句胰柑,直接將數(shù)據(jù)插入到表中
                # 假如插入的記錄違反了約束條件截亦,比如主鍵約束
                # 則出錯的記錄不會插入,但合法的記錄會添加到表中柬讨。
    
    ignore=n    # Oracle不執(zhí)行CREATE TABLE語句
                # 同時(shí)也不會將數(shù)據(jù)插入到表中
                # 而是忽略該表的錯誤崩瓤,繼續(xù)恢復(fù)下一個(gè)表。

方法2:EXPDP\IMPDP數(shù)據(jù)泵方式備份和還原數(shù)據(jù)庫

準(zhǔn)備工作

su - oracle
mkdir -p /home/oracle/bak/
sqlplus / as sysdba
select * from dba_directories;
CREATE OR REPLACE DIRECTORY bak AS '/home/oracle/bak/';
GRANT READ, WRITE ON DIRECTORY test_dir TO scott;

1.用戶模式:備份和恢復(fù)admin的所有表

# 普通方式導(dǎo)入導(dǎo)出
expdp admin/xiaoliu SCHEMAS=admin DIRECTORY=bak DUMPFILE=full.dmp LOGFILE=full.log COMPRESSION=all
impdp admin/xiaoliu SCHEMAS=admin DIRECTORY=bak DUMPFILE=full.dmp LOGFILE=full.log

# 開啟并行模式
expdp admin/xiaoliu SCHEMAS=admin DIRECTORY=bak DUMPFILE=full_%U.dmp LOGFILE=full.log COMPRESSION=all PARALLEL=2
impdp admin/xiaoliu SCHEMAS=admin DIRECTORY=bak DUMPFILE=full_%U.dmp LOGFILE=full.log PARALLEL=2

    COMPRESSION={ALL | DATA_ONLY | METADATA_ONLY | NONE}
        ALL:壓縮元數(shù)據(jù)和數(shù)據(jù)踩官。
        DATA_ONLY:僅壓縮數(shù)據(jù)却桶。
        METADATA_ONLY:僅壓縮元數(shù)據(jù)。這是默認(rèn)設(shè)置蔗牡。
        NONE:什么都沒有被壓縮颖系。
        
    PARALLEL=4      # 并行導(dǎo)入和導(dǎo)出,這里的4一般設(shè)置為CPU的個(gè)數(shù)辩越,可提高效率
    CLUSTER=NO      # 對于小作業(yè)嘁扼,最好指定CLUSTER = NO來約束作業(yè)在啟動它的實(shí)例上運(yùn)行。
                    # 使用CLUSTER參數(shù)可能會影響性能
                    # 因?yàn)榭鏞racle RAC實(shí)例分發(fā)導(dǎo)出作業(yè)會產(chǎn)生一些額外的開銷黔攒。

2.表模式:只備份和恢復(fù)C_CONS, DATASOURCE表

expdp admin/xiaoliu TABLES=C_CONS, DATASOURCE DIRECTORY=bak DUMPFILE=full.dmp LOGFILE=full.log COMPRESSION=all
impdp admin/xiaoliu TABLES=C_CONS, DATASOURCE DIRECTORY=bak DUMPFILE=full.dmp LOGFILE=full.log

    COMPRESSION={ALL | DATA_ONLY | METADATA_ONLY | NONE}
        ALL:壓縮元數(shù)據(jù)和數(shù)據(jù)趁啸。
        DATA_ONLY:僅壓縮數(shù)據(jù)强缘。
        METADATA_ONLY:僅壓縮元數(shù)據(jù)。這是默認(rèn)設(shè)置莲绰。
        NONE:什么都沒有被壓縮欺旧。
        
    PARALLEL=4      # 并行導(dǎo)入和導(dǎo)出姑丑,這里的4一般設(shè)置為CPU的核數(shù)蛤签,可提高效率
    CLUSTER=NO      # 對于小作業(yè),最好指定CLUSTER = NO來約束作業(yè)在啟動它的實(shí)例上運(yùn)行栅哀。
                    # 使用CLUSTER參數(shù)可能會影響性能
                    # 因?yàn)榭鏞racle RAC實(shí)例分發(fā)導(dǎo)出作業(yè)會產(chǎn)生一些額外的開銷震肮。

3.按查詢條件

expdp admin/xiaoliu DIRECTORY=bak DUMPFILE=full.dmp LOGFILE=full.log COMPRESSION=all TABLES=C_CONS QUERY=WHERE ROWNUM < 1000
impdp admin/xiaoliu DIRECTORY=bak DUMPFILE=full.dmp LOGFILE=full.log

    COMPRESSION={ALL | DATA_ONLY | METADATA_ONLY | NONE}
            ALL:壓縮元數(shù)據(jù)和數(shù)據(jù)。
            DATA_ONLY:僅壓縮數(shù)據(jù)留拾。
            METADATA_ONLY:僅壓縮元數(shù)據(jù)戳晌。這是默認(rèn)設(shè)置。
            NONE:什么都沒有被壓縮痴柔。
            
    PARALLEL=4      # 并行導(dǎo)入和導(dǎo)出沦偎,這里的4一般設(shè)置為CPU的個(gè)數(shù),可提高效率
    CLUSTER=NO      # 對于小作業(yè)咳蔚,最好指定CLUSTER = NO來約束作業(yè)在啟動它的實(shí)例上運(yùn)行豪嚎。
                    # 使用CLUSTER參數(shù)可能會影響性能
                    # 因?yàn)榭鏞racle RAC實(shí)例分發(fā)導(dǎo)出作業(yè)會產(chǎn)生一些額外的開銷。

附錄:EXPDP\IMPDP數(shù)據(jù)泵方式在RAC環(huán)境中使用的說明

在Oracle RAC環(huán)境中導(dǎo)出期間使用PARALLEL

在Oracle Real Application Clusters(Oracle RAC)環(huán)境中谈火,如果導(dǎo)出操作的PARALLEL = 1侈询,則所有Data Pump進(jìn)程都駐留在啟動作業(yè)的實(shí)例上。 因此糯耍,目錄對象可以指向該實(shí)例的本地存儲扔字。

如果導(dǎo)出操作將PARALLEL設(shè)置為大于1的值,則數(shù)據(jù)泵進(jìn)程可以駐留在作業(yè)啟動的實(shí)例之外的實(shí)例上温技。 因此革为,目錄對象必須指向可由Oracle RAC的所有實(shí)例訪問的共享存儲。

限制

此參數(shù)僅在Oracle Database 11g企業(yè)版中有效舵鳞。

英文:

Using PARALLEL During An Export In An Oracle RAC Environment

In an Oracle Real Application Clusters (Oracle RAC) environment, if an export operation has PARALLEL=1, then all Data Pump processes reside on the instance where the job is started. Therefore, the directory object can point to local storage for that instance.

If the export operation has PARALLEL set to a value greater than 1, then Data Pump processes can reside on instances other than the one where the job was started. Therefore, the directory object must point to shared storage that is accessible by all instances of the Oracle RAC.

Restrictions

This parameter is valid only in the Enterprise Edition of Oracle Database 11g.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末震檩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子系任,更是在濱河造成了極大的恐慌恳蹲,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俩滥,死亡現(xiàn)場離奇詭異嘉蕾,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)霜旧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門错忱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來儡率,“玉大人,你說我怎么就攤上這事以清《眨” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵掷倔,是天一觀的道長眉孩。 經(jīng)常有香客問我,道長勒葱,這世上最難降的妖魔是什么浪汪? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮凛虽,結(jié)果婚禮上死遭,老公的妹妹穿的比我還像新娘。我一直安慰自己凯旋,他們只是感情好呀潭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著至非,像睡著了一般钠署。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上睡蟋,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天踏幻,我揣著相機(jī)與錄音,去河邊找鬼戳杀。 笑死该面,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的信卡。 我是一名探鬼主播隔缀,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼傍菇!你這毒婦竟也來了猾瘸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤丢习,失蹤者是張志新(化名)和其女友劉穎牵触,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咐低,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揽思,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了见擦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钉汗。...
    茶點(diǎn)故事閱讀 39,754評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羹令,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出损痰,到底是詐尸還是另有隱情福侈,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布卢未,位于F島的核電站肪凛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏尝丐。R本人自食惡果不足惜显拜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望爹袁。 院中可真熱鬧,春花似錦矮固、人聲如沸失息。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盹兢。三九已至,卻和暖如春守伸,著一層夾襖步出監(jiān)牢的瞬間绎秒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工尼摹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留见芹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓蠢涝,卻偏偏與公主長得像玄呛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子和二,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容