我的java天地

          oracle中的數(shù)據(jù)導(dǎo)入和導(dǎo)出

          本文對(duì)Oracle數(shù)據(jù)的導(dǎo)入導(dǎo)出 imp ,exp 兩個(gè)命令進(jìn)行了介紹, 并對(duì)其相應(yīng)的參數(shù)進(jìn)行了說(shuō)明,然后通過(guò)一些示例進(jìn)行演練,加深理解.
          文章最后對(duì)運(yùn)用這兩個(gè)命令可能出現(xiàn)的問(wèn)題(如權(quán)限不夠,不同oracle版本)進(jìn)行了探討,并提出了相應(yīng)的解決方案;
          本文部分內(nèi)容摘錄自網(wǎng)絡(luò),感謝網(wǎng)友的經(jīng)驗(yàn)總結(jié);


          一.說(shuō)明

          ?? oracle 的exp/imp命令用于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的導(dǎo)出/導(dǎo)入操作;
          ?? exp命令用于把數(shù)據(jù)從遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器導(dǎo)出至本地,生成dmp文件;
          ?? imp命令用于把本地的數(shù)據(jù)庫(kù)dmp文件從本地導(dǎo)入到遠(yuǎn)程的Oracle數(shù)據(jù)庫(kù)中。

          二.語(yǔ)法

          可以通過(guò)在命令行輸入 imp help=y 獲取imp的語(yǔ)法信息:
          =============================================================================
          ? C:\Documents and Settings\auduser>imp help=y

          ? Import: Release 9.0.1.1.1 - Production on 星期二 5月 20 18:21:57 2008

          ? (c) Copyright 2001 Oracle Corporation.? All rights reserved.

          ? 可以通過(guò)輸入 IMP 命令和您的用戶(hù)名/口令
          ? 后接用戶(hù)名/口令的命令:

          ? 例程: IMP SCOTT/TIGER

          ? 或者, 可以通過(guò)輸入 IMP 命令和各種參數(shù)來(lái)控制“導(dǎo)入”
          ? 按照不同參數(shù)。要指定參數(shù),您可以使用關(guān)鍵字:

          ? 格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
          ? 例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
          ? 或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表

          ? USERID 必須是命令行中的第一個(gè)參數(shù)。

          ? 關(guān)鍵字? 說(shuō)明(默認(rèn))??????? 關(guān)鍵字????? 說(shuō)明(默認(rèn))
          ? --------------------------------------------------------------------------
          ? USERID?? 用戶(hù)名/口令?????????? FULL???????? 導(dǎo)入整個(gè)文件 (N)
          ? BUFFER?? 數(shù)據(jù)緩沖區(qū)大小???????? FROMUSER???? 所有人用戶(hù)名列表
          ? FILE???? 輸入文件 (EXPDAT.DMP)??? TOUSER?????? 用戶(hù)名列表
          ? SHOW???? 只列出文件內(nèi)容 (N) TABLES????? 表名列表
          ? IGNORE?? 忽略創(chuàng)建錯(cuò)誤 (N)??? RECORDLENGTH? IO 記錄的長(zhǎng)度
          ? GRANTS? 導(dǎo)入權(quán)限 (Y)?????????? INCTYPE????? 增量導(dǎo)入類(lèi)型
          ? 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????????????? 將表/索引信息寫(xiě)入指定的文件
          ? SKIP_UNUSABLE_INDEXES? 跳過(guò)不可用索引的維護(hù) (N)
          ? FEEDBACK?????????????? 每 x 行顯示進(jìn)度 (0)
          ? TOID_NOVALIDATE??????? 跳過(guò)指定類(lèi)型 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)

          ? 下列關(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ù)的用戶(hù)

          ==============================================
          同樣可以通過(guò)輸入 exp help=y 獲取exp的語(yǔ)法信息

          ? Microsoft Windows XP [版本 5.1.2600]
          ? (C) 版權(quán)所有 1985-2001 Microsoft Corp.

          ? C:\Documents and Settings\auduser>exp help=y

          ? Export: Release 9.0.1.1.1 - Production on 星期二 5月 20 18:26:34 2008

          ? (c) Copyright 2001 Oracle Corporation.? All rights reserved.

          ?

          ? 通過(guò)輸入 EXP 命令和用戶(hù)名/口令,您可以
          ? 后接用戶(hù)名/口令的命令:

          ? 例程: EXP SCOTT/TIGER

          ? 或者,您也可以通過(guò)輸入跟有各種參數(shù)的 EXP 命令來(lái)控制“導(dǎo)出”
          ? 按照不同參數(shù)。要指定參數(shù),您可以使用關(guān)鍵字:

          ? 格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
          ? 例程: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
          ? 或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表

          ? USERID 必須是命令行中的第一個(gè)參數(shù)。

          ? 關(guān)鍵字? 說(shuō)明(默認(rèn))??????? 關(guān)鍵字????? 說(shuō)明(默認(rèn))
          ? --------------------------------------------------------------------------
          ? USERID?? 用戶(hù)名/口令?????????? FULL???????? 導(dǎo)出整個(gè)文件 (N)
          ? BUFFER?? 數(shù)據(jù)緩沖區(qū)大小???????? OWNER???? 所有者用戶(hù)名列表
          ? FILE?????? 輸出文件 (EXPDAT.DMP)? TABLES?????? 表名稱(chēng)列表
          ? COMPRESS?? 導(dǎo)入到一個(gè)區(qū) (Y) RECORDLENGTH IO 記錄的長(zhǎng)度
          ? GRANTS? 導(dǎo)出權(quán)限 (Y)?????????? INCTYPE????? 增量導(dǎo)出類(lèi)型
          ? 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 交叉表一致性??? CONSTRAINTS? 導(dǎo)出約束條件 (Y)

          ? FEEDBACK???????????? 每 x 行顯示進(jìn)度 (0)
          ? FILESIZE???????????? 每個(gè)轉(zhuǎn)儲(chǔ)文件的最大大小
          ? FLASHBACK_SCN??????? 用于回調(diào)會(huì)話(huà)快照的 SCN
          ? FLASHBACK_TIME?????? 用來(lái)獲得最接近于指定時(shí)間的 SCN 的時(shí)間
          ? QUERY??????????????? 用來(lái)導(dǎo)出表的子集的選擇子句
          ? RESUMABLE??????????? 遇到與空格有關(guān)的錯(cuò)誤時(shí)掛起 (N)
          ? RESUMABLE_NAME?????? 用來(lái)標(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)出的模板名稱(chēng)

          三.使用示例

          3.1 數(shù)據(jù)導(dǎo)出:

          ?1 將數(shù)據(jù)庫(kù)SampleDB完全導(dǎo)出,用戶(hù)名system 密碼manager 導(dǎo)出到E:\SampleDB.dmp中

          ?? exp system/manager@TestDB file=E:\sampleDB.dmp full=y

          ?2 將數(shù)據(jù)庫(kù)中system用戶(hù)與sys用戶(hù)的表導(dǎo)出

          ?? exp system/manager@TestDB file=E:\sampleDB.dmp? owner=(system,sys)

          ?3 將數(shù)據(jù)庫(kù)中的表 TableA,TableB 導(dǎo)出

          ??? exp system/manager@TestDB? file=E:\sampleDB.dmp? tables=(TableA,TableB)

          ?4 將數(shù)據(jù)庫(kù)中的表tableA中的字段filed1 值為 "王五" 的數(shù)據(jù)導(dǎo)出

          ?? exp system/manager@TestDB? file=E:\sampleDB.dmp? tables=(tableA)? query=' where filed1='王五'
          ?
          ?? 如果想對(duì)dmp文件進(jìn)行壓縮,可以在上面命令后面 加上 compress=y 來(lái)實(shí)現(xiàn)。

          3.2 數(shù)據(jù)的導(dǎo)入

          ?1 將備份數(shù)據(jù)庫(kù)文件中的數(shù)據(jù)導(dǎo)入指定的數(shù)據(jù)庫(kù)SampleDB 中,如果 SampleDB 已存在該表,則不再導(dǎo)入;

          ?? imp system/manager@TEST? file=E:\sampleDB.dmp? full=y? ignore=y
          ?

          ?2 將d:\daochu.dmp中的表table1 導(dǎo)入

          ?imp system/manager@TEST? file=E:\sampleDB.dmp? tables=(table1)

          3. 導(dǎo)入一個(gè)完整數(shù)據(jù)庫(kù)

          ?imp system/manager file=bible_db log=dible_db full=y ignore=y

          4. 導(dǎo)入一個(gè)或一組指定用戶(hù)所屬的全部表、索引和其他對(duì)象

          ?imp system/manager file=seapark log=seapark fromuser=seapark imp
          ?system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)

          5. 將一個(gè)用戶(hù)所屬的數(shù)據(jù)導(dǎo)入另一個(gè)用戶(hù)

          ?imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
          ?imp system/manager file=tank log=tank fromuser=(seapark,amy)
          ?touser=(seapark1, amy1)

          6. 導(dǎo)入一個(gè)表

          ?imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)

          7. 從多個(gè)文件導(dǎo)入

          ?imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
          log=paycheck, filesize=1G full=y

          8. 使用參數(shù)文件

          ?imp system/manager parfile=bible_tables.par
          bible_tables.par參數(shù)文件:
          ?#Import the sample tables used for the Oracle8i Database Administrator's
          Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
          參數(shù)文件示例見(jiàn)附錄


          9. 增量導(dǎo)入

          ?imp system./manager inctype= RECTORE FULL=Y? FILE=A

          ?
          不少情況下要先將表徹底刪除,然后導(dǎo)入。
          ?

          ?

          四.參數(shù)說(shuō)明

          4.1、8i EXP常用選項(xiàng)
          ?1、FULL,這個(gè)用于導(dǎo)出整個(gè)數(shù)據(jù)庫(kù),在ROWS=N一起使用時(shí),可以導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)。例如:
          ?exp sys file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y
          ?2、BUFFER和FEEDBACK,在導(dǎo)出比較多的數(shù)據(jù)時(shí),我會(huì)考慮設(shè)置這兩個(gè)參數(shù)。例如:
          ?exp new file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000 tables=WO4,OK_YT
          ?3、FILL和LOG,這兩個(gè)參數(shù)分別指定備份的DMP名稱(chēng)和LOG名稱(chēng),包括文件名和目錄,例子見(jiàn)上面。
          ?需要說(shuō)明的是,EXP可以直接備份到磁帶中,即使用FILE=/dev/rmt0(磁帶設(shè)備名),但是一般我們都不這么做,原因有二:一、這樣做的速度會(huì)慢很多,二、現(xiàn)在一般都是使用磁帶庫(kù)的,不建議直接對(duì)磁帶進(jìn)行操作。至于沒(méi)有使用磁帶庫(kù)的朋友可以考慮和UNIX的TAR結(jié)合使用。
          ?如果你真想使用EXP直接到磁帶,你可以參考Metalink文章“EXPORTING TO TAPE ON UNIX SYSTEMS”(文檔號(hào):30428.1),該文中有詳細(xì)解釋。
          ?4、 COMPRESS參數(shù)將在導(dǎo)出的同時(shí)合并碎塊,盡量把數(shù)據(jù)壓縮到initial的EXTENT里,默認(rèn)是N,一般建議使用。DIRECT參數(shù)將告訴 EXP直接讀取數(shù)據(jù),而不像傳統(tǒng)的EXP那樣,使用SELECT來(lái)讀取表中的數(shù)據(jù),這樣就減少了SQL語(yǔ)句處理過(guò)程。一般也建議使用。不過(guò)有些情況下 DIRECT參數(shù)是無(wú)法使用的。
          ?5、如何使用SYSDBA執(zhí)行EXP/IMP?
          ?這是一個(gè)很現(xiàn)實(shí)的問(wèn)題,有時(shí)候我們需要使用SYSDBA來(lái)執(zhí)行EXP/IMP,如進(jìn)行傳輸表空間的EXP/IMP,以及在9i下用SYS用戶(hù)來(lái)執(zhí)行EXP/IMP時(shí),都需要使用SYSDBA才可。

          posted on 2009-04-15 20:47 tobyxiong 閱讀(623) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): DATABASES

          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          隨筆分類(lèi)(144)

          隨筆檔案(157)

          相冊(cè)

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 罗定市| 托克逊县| 天镇县| 崇义县| 汤阴县| 呼伦贝尔市| 南江县| 澳门| 荣昌县| 汤原县| 仪陇县| 宜兰县| 宝应县| 邵东县| 天峨县| 莱州市| 五河县| 河西区| 军事| 名山县| 顺昌县| 克拉玛依市| 阿克苏市| 若尔盖县| 沙洋县| 车险| 东源县| 务川| 聊城市| 浪卡子县| 上高县| 南充市| 抚宁县| 睢宁县| 东安县| 弥勒县| 肃北| 塔城市| 车险| 伽师县| 大埔区|