程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

EXP/IMP

編輯:Oracle教程

EXP/IMP


EXP/IMP是oracle中比較傳統的數據庫邏輯備份工具實現全庫或者表空間的邏輯備份,但是不支持用戶的交互模式,即在備份過程中無法控制或者切換進程。
下面介紹如何使用exp/imp:
SQL> select * from v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
SQL> !cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Kernel \r on an \m


EXP:
[oracle@localhost ~]$ exp help=y
Export: Release 11.2.0.1.0 - Production on 星期六 6月 13 18:36:25 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. 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 執行完整或部分相關性檢查
VOLSIZE 寫入每個磁帶卷的字節數
TABLESPACES 要導出的表空間列表
TRANSPORT_TABLESPACE 導出可傳輸的表空間元數據 (N)
TEMPLATE 調用 iAS 模式導出的模板名
成功終止導出, 沒有出現警告。

上面是oracle 11gR2的exp命令指令
在使用exp程序命令時,可以不帶參數,此時需要用戶輸入一些參數來導出要備份的數據,如用戶名和密碼,輸入緩沖區的大小,導出的文件名,導出的表還是所有用戶的對象,是否導出權限等等。
下面介紹exp導出整個數據庫,導出特定的用戶,導出特定的表和特定的表空間:
使用exp導出hr用戶的所有數據庫對象:
[oracle@localhost ~]$ exp
Export: Release 11.2.0.1.0 - Production on 星期六 6月 13 18:56:40 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
用戶名: hr
口令:
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
輸入數組提取緩沖區大小: 4096 > 默認的字節數是4096,如果用戶包含大對象,則需要設置該參數
導出文件: expdat.dmp > 默認文件名是expdat.dmp,可以更改
(2)U(用戶), 或 (3)T(表): (2)U > u 選擇導出的數據庫對象
導出權限 (yes/no): yes > yes 即是否導出對表、視圖,序列,角色的授權
導出表數據 (yes/no): yes > yes 即可以導出表的結構也可以導出數據或者導出表的結構和表數據,如果不導出表數據就是只導出表的結構,就是表的定義
壓縮區 (yes/no): yes > yes
已導出 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集
. 正在導出 pre-schema 過程對象和操作
. 正在導出用戶 HR 的外部函數庫名
. 導出 PUBLIC 類型同義詞
. 正在導出專用類型同義詞
. 正在導出用戶 HR 的對象類型定義
即將導出 HR 的對象...
. 正在導出數據庫鏈接
. 正在導出序號
. 正在導出簇定義
. 即將導出 HR 的表通過常規路徑...
. . 正在導出表 COUNTRIES導出了 0 行
. . 正在導出表 T導出了 3 行
. . 正在導出表 TT導出了 1 行
. 正在導出同義詞
. 正在導出視圖
. 正在導出存儲過程
. 正在導出運算符
. 正在導出引用完整性約束條件
. 正在導出觸發器
. 正在導出索引類型
. 正在導出位圖, 功能性索引和可擴展索引
. 正在導出後期表活動
. 正在導出實體化視圖
. 正在導出快照日志
. 正在導出作業隊列
. 正在導出刷新組和子組
. 正在導出維
. 正在導出 post-schema 過程對象和操作
. 正在導出統計信息
成功終止導出, 沒有出現警告。

linux中,所導出的對象在當前用戶的目錄下:
[oracle@localhost ~]$ ls -l expdat.dmp
-rw-r--r-- 1 oracle oinstall 16384 06-13 18:57 expdat.dmp

exp指令導出整個數據庫:
exp system/manager full=y file=database.dmp

.......
......
由於頁面,不具體羅列導出信息
[oracle@localhost ~]$ ls -l database.dmp
-rw-r--r-- 1 oracle oinstall 150200320 06-13 19:20 database.dmp

exp指令導出特定的表:
[oracle@localhost ~]$ exp hr/hr tables = hr.t file=hrt.dmp
Export: Release 11.2.0.1.0 - Production on 星期六 6月 13 19:30:12 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已導出 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集
即將導出指定的表通過常規路徑...
. . 正在導出表 T導出了 3 行
成功終止導出, 沒有出現警告。


[oracle@localhost ~]$ exp hr/hr tables = t file=hrt.dmp
Export: Release 11.2.0.1.0 - Production on 星期六 6月 13 19:30:24 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已導出 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集
即將導出指定的表通過常規路徑...
. . 正在導出表 T導出了 3 行
成功終止導出, 沒有出現警告。


[oracle@localhost ~]$ exp hr/hr tables = t file=hrt.dbf
Export: Release 11.2.0.1.0 - Production on 星期六 6月 13 19:30:54 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已導出 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集
即將導出指定的表通過常規路徑...
. . 正在導出表 T導出了 3 行
成功終止導出, 沒有出現警告。



[oracle@localhost ~]$ exp system/manager tables=hr.t file=hrtt.dmp 注意此時使用schema_name.table_name
Export: Release 11.2.0.1.0 - Production on 星期六 6月 13 19:33:46 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已導出 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集
即將導出指定的表通過常規路徑...
當前的用戶已更改為 HR
. . 正在導出表 T導出了 3 行
成功終止導出, 沒有出現警告。


導出特定用戶:
這種方式和不帶參數,很相似,下面做下實驗:
[oracle@localhost ~]$ exp system/manager owner=hr file=hr.dmp
Export: Release 11.2.0.1.0 - Production on 星期六 6月 13 19:37:34 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已導出 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集
即將導出指定的用戶...
. 正在導出 pre-schema 過程對象和操作
. 正在導出用戶 HR 的外部函數庫名
. 導出 PUBLIC 類型同義詞
. 正在導出專用類型同義詞
. 正在導出用戶 HR 的對象類型定義
即將導出 HR 的對象...
. 正在導出數據庫鏈接
. 正在導出序號
. 正在導出簇定義
. 即將導出 HR 的表通過常規路徑...
. . 正在導出表 COUNTRIES導出了 0 行
. . 正在導出表 T導出了 3 行
. . 正在導出表 TT導出了 1 行
. 正在導出同義詞
. 正在導出視圖
. 正在導出存儲過程
. 正在導出運算符
. 正在導出引用完整性約束條件
. 正在導出觸發器
. 正在導出索引類型
. 正在導出位圖, 功能性索引和可擴展索引
. 正在導出後期表活動
. 正在導出實體化視圖
. 正在導出快照日志
. 正在導出作業隊列
. 正在導出刷新組和子組
. 正在導出維
. 正在導出 post-schema 過程對象和操作
. 正在導出統計信息
成功終止導出, 沒有出現警告。

導出特定的表空間:

[oracle@localhost ~]$ exp system/manager tablespaces=users file=user.dmp
Export: Release 11.2.0.1.0 - Production on 星期六 6月 13 19:39:38 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已導出 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集
即將導出所選表空間...
對於表空間 USERS...
. 正在導出簇定義
. 正在導出表定義
. . 正在導出表 T導出了 3 行
. . 正在導出表 TT導出了 1 行
. . 正在導出表 QUEST_SOO_EVENT_CATEGORIES導出了 1641 行
. . 正在導出表 QUEST_SOO_PARSE_TIME_TRACK導出了 1 行
. . 正在導出表 QUEST_SOO_SCHEMA_VERSIONS導出了 1 行
. . 正在導出表 QUEST_SOO_VERSION導出了 1 行
. . 正在導出表 BOOKINFO導出了 19 行
. . 正在導出表 BOOKTYPE導出了 7 行
. . 正在導出表 BORROW導出了 0 行
. . 正在導出表 LIBRARY_ORDER導出了 9 行
. . 正在導出表 OPERATER導出了 20 行
. . 正在導出表 READER導出了 18 行
. 正在導出引用完整性約束條件
. 正在導出觸發器
成功終止導出, 沒有出現警告。

IMP:
imp使用程序將備份的整個數據庫導入到當前的數據庫中。在導入過程中,包括一系列創建數據庫對象的過程,如創建表空間,表,表的索引,序列號以及授權用戶等。如果要創建的數據庫對象已存在,則此時可以用ignore參數,否則會失敗,整個參數會使IMP程序忽略這些錯誤:
[oracle@localhost bin]$ imp help=yes


Import: Release 11.2.0.1.0 - Production on 星期六 6月 13 21:00:14 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates. 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)
DATA_ONLY 僅導入數據 (N)
VOLSIZE 磁帶的每個文件卷上的文件的字節數
下列關鍵字僅用於可傳輸的表空間
TRANSPORT_TABLESPACE 導入可傳輸的表空間元數據 (N)
TABLESPACES 將要傳輸到數據庫的表空間
DATAFILES 將要傳輸到數據庫的數據文件
TTS_OWNERS 擁有可傳輸表空間集中數據的用戶
成功終止導入, 沒有出現警告。


導入存在的表對象:
[oracle@localhost ~]$ imp hr/hr tables=t file=/home/oracle/hrt.dbf ignore=yes
Import: Release 11.2.0.1.0 - Production on 星期六 6月 13 21:07:06 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
經由常規路徑由 EXPORT:V11.02.00 創建的導出文件
已經完成 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集中的導入
. 正在將 HR 的對象導入到 HR
. 正在將 HR 的對象導入到 HR
. . 正在導入表 "T"導入了 3 行
成功終止導入, 沒有出現警告。



[oracle@localhost ~]$ imp hr/hr tables=t file=hrt.dbf ignore=yes


Import: Release 11.2.0.1.0 - Production on 星期六 6月 13 21:07:51 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.




連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


經由常規路徑由 EXPORT:V11.02.00 創建的導出文件
已經完成 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集中的導入
. 正在將 HR 的對象導入到 HR
. 正在將 HR 的對象導入到 HR
. . 正在導入表 "T"導入了 3 行
成功終止導入, 沒有出現警告。


導入存在的用戶:

[oracle@localhost ~]$ imp system/manager full=y file=hr.dmp ignore=yes
Import: Release 11.2.0.1.0 - Production on 星期六 6月 13 21:09:55 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
經由常規路徑由 EXPORT:V11.02.00 創建的導出文件
已經完成 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集中的導入
. 正在將 SYSTEM 的對象導入到 SYSTEM
. 正在將 HR 的對象導入到 HR
. . 正在導入表 "COUNTRIES"導入了 0 行
. . 正在導入表 "T"導入了 3 行
. . 正在導入表 "TT"導入了 1 行
即將啟用約束條件...
成功終止導入, 沒有出現警告。

將特定的表導入指定用戶:
[oracle@localhost ~]$ imp system/manager tables = t fromuser=hr touser=system file=hrt.dmp


Import: Release 11.2.0.1.0 - Production on 星期六 6月 13 21:18:54 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.




連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


經由常規路徑由 EXPORT:V11.02.00 創建的導出文件


警告: 這些對象由 HR 導出, 而不是當前用戶


已經完成 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集中的導入
. 正在將 HR 的對象導入到 SYSTEM
. . 正在導入表 "T"導入了 3 行
成功終止導入, 沒有出現警告。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved