1. 程式人生 > >ORACLE-數據導入導出-常規exp/imp以及數據泵方式

ORACLE-數據導入導出-常規exp/imp以及數據泵方式

oracle

博文說明【前言】:

本文將通過個人口吻介紹有關Oracle數據庫導入導出相關知識,在目前時間點【2017年5月16號】下,所掌握的技術水平有限,可能會存在不少知識理解不夠深入或全面,望大家指出問題共同交流,在後續工作及學習中如發現本文內容與實際情況有所偏差,將會完善該博文內容。


本文所寫的導入導出是指在不使用工具的情況下,在命令行下進行的oracle數據庫的導入和導出



正文:


一:常規exp/imp,導入導出方法


1、導出:

命令格式:exp [email protected]/SID file=path/sth.dmp full=y ignore=y;

實際案例:

exp [email protected]
/* *//cklp file=/home/oracle/cklptest.DMP full=y ignore=y;


2、導入

命令格式:imp [email protected]/SID fileName=fielPath full=y(full 不能少) ignore=y;

實際案例:

imp [email protected]/cklp file=/home/oracle/cklptest.DMP full=y ignore=y;



二:數據泵導入導出方法


一、導出:


1. 創建默認導出目錄

註意:操作系統級別需要該目錄存在,本例中目錄為dmp_dir,對應操作系統級別的/orasoft目錄

SQL>create directory dmp_dir as‘/orasoft‘;


2. 賦予指定用戶在此目錄的讀寫權限

SQL>GRANT READ,WRITE ON DIRECTORY dmp_dir to system;


3. 使用expdp導出數據庫

expdp [dba_user/passwd]@SID full=y parallel=2 directory=dmp_dir 
dumpfile=<ORACLE_SID>_%U.dmp logfile=log_name.log


二、導入:


1.創建默認導出目錄

SQL>create directory dmp_dir as‘/app/oracle‘;


2. 賦予指定用戶在此目錄的讀寫權限

SQL>GRANT READ,WRITE ON DIRECTORY dmp_dir to system;


3. 使用impdp工具進行全庫導入

impdp [dba_user/passwd]@SID full=y parallel=2 directory=dmp_dir 
dumpfile=<ORACLE_SID>_%U.dmp logfile=log_name.log



三:實際案例分析-數據泵導出



1. 創建默認導出目錄

SQL>create directory dump_dir as ‘/orasoft/dumpfile‘;


2. 賦予指定用戶在此目錄的讀寫權限

SQL>GRANT READ,WRITE ON DIRECTORY dump_dir to system;


3. 導出整個數據庫【操作系統層面執行該命令】:

# cd /orasoft
# expdp system/manager full=y cluster=no parallel=2 directory=dump_dir dumpfile=fccklpfull_%U.dmp logfile=log_name.log


註意:第三步操作需要在路徑/orasoft 目錄下執行,這裏的server_name是fccklp,dmp名稱為fccklpfull是表示整庫數據,而且這裏必須要寫成fccklpfull_%U.dmp 的形式,因為開啟了2路並行 就指定了一個文件是不行的,因此需要%U參數。


強烈註意:[email protected],也即只需要輸入[dba_user/passwd],[email protected]



如果導出單個用戶,需要額外的再添加一個參數:

expdp [dba_user/passwd]@SID schemas=[用戶名] full=y parallel=2 
directory=dmp_dir dumpfile=<ORACLE_SID>_%U.dmp logfile=log_name.log


四:RAC集群數據泵導出問題記錄:


曾經在RAC集群下執行數據泵導出的時候,出現過問題,後經DBA折騰2小時才弄好,順便記錄下解決過程


1、查詢導出任務找到job_name

select * from dba_datapump_jobs


2、進入sqlplus界面,將該工作殺死

stop_job ---->yes


3、其他相關sql

刪除數據泵默認目錄:

delete * from dba_directories where DIRECTORY_NAME="DMP_DIR";


查詢數據泵默認目錄:

select * from dba_directories;






結尾:



感謝閱讀,祝有收獲的一天!





本文出自 “清風攬月的博客” 博客,請務必保留此出處http://watchmen.blog.51cto.com/6091957/1926565

ORACLE-數據導入導出-常規exp/imp以及數據泵方式