oracle用par文件導出dmp文件及導入dmp文件

近日碰到這個問題,在此記錄下。本文使用的是windows server2012,oracle11g。

  • 準備:

爲了方便使用,在需要的服務器上裝上oracle客戶端,並在Net Manager中配置好本地的服務(直接裝oracle數據庫是默認配置好的,此步驟可忽略),這樣使用PLSQL會很方便;

實例對應的非sys用戶,本文使用yssl用戶(使用sys用戶也可以);

在指定目錄下新建文件夾,本文在C盤下建立了datapump文件夾,目錄爲: C:\datapump

  • 第一步:

爲了方便dmp文件的相關操作,使用sys用戶,以SYSDBA角色登錄數據庫,執行以下命令創建邏輯路徑並授權:

SQL> create or replace directory datapump as 'C:\datapump';
SQL> grant read,write on directory datapump to yssl;
SQL> grant resource,DBA to yssl;
  • 第二步:

準備好par文件,本文使用名爲testdmp的par文件,顯示爲:testdmp.par,文件內容如下:

userid = yssl/yssl@ysdb
directory = datapump
dumpfile = testdmp.dmp
tables =
'cs_class',
'cs_msg',
'cs_log'
logfile = testdmp.log

解釋下上述內容,可根據實際情況進行修改:

userid 對應的是:用戶名/用戶密碼@實例服務名;

directory 對應的是:系統設置的指定目錄,詳情見第一步相關操作;

dumpfile 對應的是:生成dmp的名字;

tables 對應的是:表名,表名用單引號包裹,多表用英文逗號隔開;

logfile 對應的是:日誌名稱。

  • 第三步:

使用cmd窗口在testdmp.par相同目錄下執行下列語句:

expdp parfile=testdmp.par

所有需要生成的文件,比如testdmp.dmp和testdmp.log文件,都會在上文設置好C:\datapump目錄下生成。

  • 第四步:

在需要導入的oracle上也按照第一步設置好目錄,並將dmp文件拖拽到對應的datapump目錄中,在cmd窗口執行下列語句:

impdp yssl/yssl@ysdb directory=datapump dumpfile=testdmp.dmp DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS TABLE_EXISTS_ACTION=REPLACE

上述內容中,DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS 的作用是忽略導入過程中違反約束的數據;

TABLE_EXISTS_ACTION=REPLACE 是刪除已存在表,重新建表並追加數據。

至此,記錄完成。

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