exp、imp是ORACLE幸存的最古老的兩個操作系統命令行工具,導入(IMP)/導出(EXP),昨天在Oracle用exp、imp導入導出報EXP-0006:出現內部不一致的錯誤。
以前用exp、imp導庫命令成功的實現了Oracle數據庫的導出、導入,對此,昨天再對服務器新安裝的Oracle數據庫用exp、imp導庫,一直報“EXP-0006:出現內部不一致的錯誤”,于是在網上百度,嘗試其他導庫方式,發現采用expdp、impdp數據泵同樣可以完成數據庫的導出、導入,而且數據泵與傳統導出導入有如下區別:
1.EXP和IMP是客戶段工具程序, EXPDP和IMPDP是服務端的工具程序;
2.EXP和IMP效率比較低. EXPDP和IMPDP效率高;
3.數據泵功能強大并行、過濾、轉換、壓縮、加密、交互等等;
4.數據泵不支持9i以前版本, EXP/IMP短期內還是比較適用;
5.同exp/imp數據泵導出包括導出表,導出方案,導出表空間,導出數據庫4種方式。
有了理論支持,下面開始實戰。
expdp導出Oracle數據庫
1.在sqlplus下創建Directory, 優點在于讓我們可以在Oracle數據庫中靈活的對文件進行讀寫操作,極大的提高了Oracle的易用性和可擴展性。
命令:createdirectory oracleDB as 'D:OracleDB';
2.把讀寫權限授予特定用戶
命令:Grantread,write on directory oracleDB to radpcs;
3.在dos窗口執行expdp導出命令
命令:expdp [email protected] directory=oracleDB dumpfile =20150226.dmp logfile=20150226.logFULL=y;
到此導出工作完成,下面講解如何用impdp導入Oracle數據庫。
impdp導入Oracle數據庫
1.以sysdba級別登錄Oracle數據庫
命令:--sqlplus /nolog
--conn [email protected] as sysdba
2.創建數據表空間
命令:
--創建數據表空間
CREATE TABLESPACE RADPCS_DATA
LOGGING
DATAFILE 'D:OracleDBradpcs_DATA.DBF' SIZE 200M REUSE AUTOEXTEND
ON NEXT 10M MAXSIZE 16383M EXTENT MANAGEMENT LOCAL UNIFORM
SIZE 1024K;
--創建索引表空間
CREATE TABLESPACE RADPCS_INDX
LOGGING
DATAFILE 'D:OracleDBradpcs_INDX.DBF' SIZE 200M REUSE AUTOEXTEND
ON NEXT 10M MAXSIZE 16383M EXTENT MANAGEMENT LOCAL UNIFORM
SIZE 1024K;
這步很關鍵,創建的表空間需要和原Oracle表空間名稱、個數相同,否則會導入失敗。如果不知道原表空間名稱、個數,就先創建一個臨時的表空間進行導入,導入過程中根據錯誤提示,比如“RADPCS1_DATA表空間不存在”提示,缺哪個創建哪個。
3.創建用戶、對用戶授權
--創建用戶
create user radpcs identified by ictradpcs
default tablespace radpcs_data
quota unlimited on radpcs_data
quota unlimited on radpcs_indx;
--授權
grant aq_administrator_role to radpcs;
grant aq_user_role to radpcs;
grant authenticateduser to radpcs;
grant connect to radpcs;
grant ctxapp to radpcs;
grant dba to radpcs;
grant delete_catalog_role to radpcs;
grant ejbclient to radpcs;
grant execute_catalog_role to radpcs;
新聞熱點
疑難解答
圖片精選