oracle 導入導出(imp/exp)

查看幫助

C:\Windows\system32>exp help=y

Export: Release 10.2.0.1.0 - Production on 星期五 7月 20 15:05:39 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.



通過輸入 EXP 命令和您的用戶名/口令, 導出
操作將提示您輸入參數:

     例如: EXP SCOTT/TIGER

或者, 您也可以通過輸入跟有各種參數的 EXP 命令來控制導出
的運行方式。要指定參數, 您可以使用關鍵字:

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

USERID 必須是命令行中的第一個參數。

關鍵字   說明 (默認值)         關鍵字      說明 (默認值)
--------------------------------------------------------------------------
USERID   用戶名/口令           FULL        導出整個文件 (N)
BUFFER   數據緩衝區大小        OWNER        所有者用戶名列表
FILE     輸出文件 (EXPDAT.DMP)  TABLES     表名列表
COMPRESS  導入到一個區 (Y)   RECORDLENGTH   IO 記錄的長度
GRANTS    導出權限 (Y)          INCTYPE     增量導出類型
INDEXES   導出索引 (Y)         RECORD       跟蹤增量導出 (Y)
DIRECT    直接路徑 (N)         TRIGGERS     導出觸發器 (Y)
LOG      屏幕輸出的日誌文件    STATISTICS    分析對象 (ESTIMATE)
ROWS      導出數據行 (Y)        PARFILE      參數文件名
CONSISTENT 交叉表的一致性 (N)   CONSTRAINTS  導出的約束條件 (Y)

OBJECT_CONSISTENT    只在對象導出期間設置爲只讀的事務處理 (N)
FEEDBACK             每 x 行顯示進度 (0)
FILESIZE             每個轉儲文件的最大大小
FLASHBACK_SCN        用於將會話快照設置回以前狀態的 SCN
FLASHBACK_TIME       用於獲取最接近指定時間的 SCN 的時間
QUERY                用於導出表的子集的 select 子句
RESUMABLE            遇到與空格相關的錯誤時掛起 (N)
RESUMABLE_NAME       用於標識可恢復語句的文本字符串
RESUMABLE_TIMEOUT    RESUMABLE 的等待時間
TTS_FULL_CHECK       對 TTS 執行完整或部分相關性檢查
TABLESPACES          要導出的表空間列表
TRANSPORT_TABLESPACE 導出可傳輸的表空間元數據 (N)
TEMPLATE             調用 iAS 模式導出的模板名

成功終止導出, 沒有出現警告。

C:\Windows\system32>imp help=y

Import: Release 10.2.0.1.0 - Production on 星期六 7月 21 14:03:58 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.



通過輸入 IMP 命令和您的用戶名/口令, 導入
操作將提示您輸入參數:

     例如: IMP SCOTT/TIGER

或者, 可以通過輸入 IMP 命令和各種參數來控制導入
的運行方式。要指定參數, 您可以使用關鍵字:

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

USERID 必須是命令行中的第一個參數。

關鍵字   說明 (默認值)        關鍵字      說明 (默認值)
--------------------------------------------------------------------------
USERID   用戶名/口令           FULL       導入整個文件 (N)
BUFFER   數據緩衝區大小        FROMUSER    所有者用戶名列表
FILE     輸入文件 (EXPDAT.DMP)  TOUSER     用戶名列表
SHOW     只列出文件內容 (N)     TABLES      表名列表
IGNORE   忽略創建錯誤 (N)    RECORDLENGTH  IO 記錄的長度
GRANTS   導入權限 (Y)          INCTYPE     增量導入類型
INDEXES   導入索引 (Y)         COMMIT       提交數組插入 (N)
ROWS     導入數據行 (Y)        PARFILE      參數文件名
LOG     屏幕輸出的日誌文件    CONSTRAINTS    導入限制 (Y)
DESTROY                覆蓋表空間數據文件 (N)
INDEXFILE              將表/索引信息寫入指定的文件
SKIP_UNUSABLE_INDEXES  跳過不可用索引的維護 (N)
FEEDBACK               每 x 行顯示進度 (0)
TOID_NOVALIDATE        跳過指定類型 ID 的驗證
FILESIZE               每個轉儲文件的最大大小
STATISTICS             始終導入預計算的統計信息
RESUMABLE              在遇到有關空間的錯誤時掛起 (N)
RESUMABLE_NAME         用來標識可恢復語句的文本字符串
RESUMABLE_TIMEOUT      RESUMABLE 的等待時間
COMPILE                編譯過程, 程序包和函數 (Y)
STREAMS_CONFIGURATION  導入流的一般元數據 (Y)
STREAMS_INSTANTIATION  導入流實例化元數據 (N)

下列關鍵字僅用於可傳輸的表空間
TRANSPORT_TABLESPACE 導入可傳輸的表空間元數據 (N)
TABLESPACES 將要傳輸到數據庫的表空間
DATAFILES 將要傳輸到數據庫的數據文件
TTS_OWNERS 擁有可傳輸表空間集中數據的用戶

成功終止導入, 沒有出現警告。


導出全庫(使用sys用戶)
exp 'sys/oracle@orcl as sysdba' file=E:\my\orcl_full.dmp log=E:\my\orcl_full.log full=y
導出指定用戶下的對象(導出lau用戶下的對象)
exp lau/lau@orcl file=E:\my\orcl_oo.dmp log=E:\my\orcl_oo.log

exp 'sys/oracle@orcl as sysdba' file=E:\my\orcl_oo.dmp log=E:\my\orcl_oo.log owner=lau
導出指定用戶下的表(導出lau用戶下的T表)
exp lau/lau@orcl file=E:\my\orcl_t.dmp log=E:\my\orcl_t.log   tables=(T)


如果對象已經存在,使用imp導入時需要使用參數IGNORE=y。
導入用戶下的所有對象
imp 'sys/oracle@orcl as sysdba' file=E:\my\orcl_full.dmp log=E:\my\orcl_user_ocp.log fromuser=scott touser=ocp ignore=y buffer=1280000
導入指定表
imp 'sys/oracle@orcl as sysdba' file=E:\my\orcl_full.dmp log=E:\my\orcl_user_ocp.log fromuser=scott touser=ocp tables=(emp,dept) ignore=y buffer=1280000

如果想使用新的存儲參數重建索引,或者爲了加快導入速度,我們可以考慮將INDEXES設爲N。
注意:只有 DBA 才能導入由其他 DBA 導出的文件

分區操作

導出分區表中各分區的兩條記錄,然後導入
exp scott/tiger@orcl  file=E:\datdir\test.dmp tables=part_emp log=E:\datdir\test.log query="""where rownum < 3""" statistics=NONE
imp lau/lau@orcl  file=E:\datdir\test.dmp tables=part_emp ignore=y buffer=1280000  log=E:\datdir\test_imp.log

導出指定分區數據 part_emp2012_04_11
exp scott/tiger@orcl  file=E:\datdir\part_emp2012_04_11.dmp tables=part_emp:part_emp2012_04_11 log=E:\datdir\part_emp2012_04_11.log  statistics=NONE
imp lau/lau@orcl  file=E:\datdir\part_emp2012_04_11.dmp tables=part_emp ignore=y buffer=1280000  log=E:\datdir\part_emp2012_04_11_imp.log

如果要導出多個分區,則在tables參數中增加分區數。如:tables=(part_emp:part_emp2012_04_11,part_emp:part_emp2012_04_12)   .


導出導入時出現的錯誤
EXP-00091: 正在導出有問題的統計信息
設置字符集:
SQL> select userenv('language') from dual;

        USERENV('LANGUAGE')
        ----------------------------------------------------
        AMERICAN_AMERICA.ZHS16GBK

linux:
[oracle@raugher ~]$ export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
windows:
C:\Windows\system32>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

在解決了字符集問題之後,仍然出現這個錯誤,可以添加statistics=NONE選項,不導出統計信息

所以,
export 分區表的時侯常出現這種問題,解決起來大體兩個方面:
1、用analyze或dbms_stats重新收集庫、schema、或出問題的表的統計信息。
2、exp命令加statistics=NONE選項

IMP-00032: SQL 語句超過緩衝區長度
增加buffer=數字  選項 ,加大buffer。
   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章