天天看點

資料泵

http://www.cnblogs.com/zlja/archive/2010/10/08/2449379.html

建立導出路徑        1.create directory dump_ehreos as '/u01/app/oracle/dump/ehreos';

檢視導出路徑        2.select * from dba_directories;

配置設定路徑操作權限 3.grant read,write on directory dump_ehreos to ehreos;

建立真正的目錄4.mkdir /u01/app/oracle/dump

建立真正的目錄5.mkdir /u01/app/oracle/dump/ehreos

導出表格模式()6.expdp  dprm/thisisCRM directory=dump_ehreos dumpfile=dumpehreos.dmp logfile=ehreos.log tables=ehreos.t_auth_function,dbwlhr.t_hr_webserviceinfo,ehreos.ac_menu; #導出ehreos.t_auth_function,dbwlhr.t_hr_webserviceinfo,ehreos.ac_menu表

7.impdp  directory=DUMP_EHREOS0317  dumpfile=dumpehreosmenu.dmp logfile=imp150218.log  schemas=ehreos tables=ac_menu  #如果是内容想替換掉,加上這句:TABLE_EXISTS_ACTION=REPLACE。scp  [email protected]:/opt/u01/app/oracle/dumpdir/20150318.dmp   将檔案複制到本地目前位置。

scp  [email protected]:/opt/u01/app/oracle/dumpdir/20150318.dmp  /opt/u01/app/oracle 将檔案複制到本地對應的目錄

scp  -r /opt/u01/app/oracle  [email protected]:/opt/u01/app/oracle/dumpdir/20150318.dmp   将對應的目錄複制到目标伺服器去

操作前提--不授權會報錯

grant read,write on directory DATA_PUMP_DIR to wics;

GRANT EXP_FULL_DATABASE TO wics;

報錯示例:

[oracle@localhost dpdump]$ expdp wics/wics123 directory=DATA_PUMP_DIR  dumpfile=cims0527.dmp 

logfile=cims0527.log  parallel=4 full=y

Export: Release 11.2.0.3.0 - Production on Fri May 27 09:49:25 2016

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

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORA-31631: privileges are required

ORA-39161: Full database jobs require privileges

解決方法

<a href="http://s4.51cto.com/wyfs02/M01/82/03/wKioL1dHxGCTPMMeAADyAGazTUE294.png-wh_500x0-wm_3-wmp_4-s_1713310584.png" target="_blank"></a>

導出案例1,按表導出

expdp scott/tiger directory=dump_scott  dumpfile=tab.dmp  logfile=scott.log  tables=dept,emp

導出案例2,按使用者導出

expdp scott/tiger directory=dump_scott  dumpfile=dumpscott.dmp  logfile=scott.log  schemas=scott

導出案例3,全庫導出,且并行導出

expdp scott/tiger directory=dump_scott  dumpfile=full.dmp logfile=scott.log  parallel=4 

full=y

oracle按照sysdba導入導出、導入資料不需要密碼

1、按照表名從一個庫導出後,導入另外一個庫

expdp \'/ as sysdba\'  dumpfile=part.dmp directory=DATA_PUMP_DIR  tables=表名,表名  logfile=part.log

impdp \'/ as sysdba\'  dumpfile=part.dmp  directory=DATA_PUMP_DIR   logfile=part.log   TABLE_EXISTS_ACTION=replace

2、按照資料庫使用者名從一個庫導出後,導入另外一個庫

expdp \'/ as sysdba\'  SCHEMAS=EID,EVS,JAM,FBP,APPS(使用者名)   directory=DATA_PUMP_DIR  dumpfile=ljw.dmp logfile=ljw.log 

impdp \'/ as sysdba\'  full=y  directory=DATA_PUMP_DIR  dumpfile=ljw2.dmp logfile=ljw2.log TABLE_EXISTS_ACTION=replace

3、按照從一個庫全庫導出後,導入另外一個庫

expdp \'/ as sysdba\' full=y directory=DATA_PUMP_DIR  dumpfile=ljw2.dmp logfile=ljw2.log

impdp \'/ as sysdba\' full=y directory=DATA_PUMP_DIR  dumpfile=ljw2.dmp logfile=ljw2.log TABLE_EXISTS_ACTION=replace

impdp \'/ as sysdba\'  directory=DATA_PUMP_DIR dumpfile=part.dmp  logfile=part.log  TABLE_EXISTS_ACTION=replace REMAP_SCHEMA=bse:pdahd 

REMAP_TABLESPACE=BSE_DATA:PDA_DATA,BSE_INDEX:PDA_INDEX

REMAP_SCHEMA=bse:pdahd  導出的資料是屬于bse使用者的,導入的時候讓他屬于pdahd使用者

REMAP_TABLESPACE=BSE_DATA:PDA_DATA,BSE_INDEX:PDA_INDEX 導出的資料是在BSE_DATA,BSE_INDEX表空間,導入的時候由于目标資料庫沒有那個表空間,是以導入的目标資料庫放在PDA_DATA,PDA_INDEX這兩個表空間中。

樣例操作

一、源資料庫操作

1、切換使用者

[root@crmtest ~]# su – oracle

2、連接配接資料庫

[oracle@crmtest ~]$ sqlplus / as sysdba

SQL&gt;  conn / as sysdba

3、建立導出路徑

SQL&gt; create directory DATA_PUMP_DIR as ' /u01/app/oracle/admin/crmdb/dpdump/';  //标黃的部分自己命名

<a href="http://s3.51cto.com/wyfs02/M01/7C/9C/wKioL1bTvD2itpreAAB9rYiGMK4421.png" target="_blank"></a>

5、導出資料(整個庫)

(1)按照使用者導出資料

[oracle@crmtest ~]$  expdp  dpcrm/thisisCRM directory=DATA_PUMP_DIR  dumpfile=dyg.dmp  logfile=dyg.log  schemas=dpcrm

(說明:dpcrm/thisisCRM 按照使用者導出,使用者的賬号密碼;

directory=DATA_PUMP_DIR   ***的是上面查詢出來路徑的名字,不是路徑的目錄内容

dumpfile=dyg.dmp  導出後的檔案名字,自己命名,但是檔案名字尾必須是 .dmp

logfile=dyg.log   導出的日志的檔案名字,自己命名,但是檔案名字尾必須是 .log

schemas=dpcrm  導出的模式,這裡是按照使用者導出的,所有是 使用者名)

備注:此指令導出資料花費時間比較長,需要等待。

6、将源庫中導出的資料導入到目标資料庫,一定要更改檔案的所屬主為oracle,所屬組為:oinstall

7、導入資料庫(整個庫)

首先使用sql查詢,查詢目前資料庫裡面有哪些已經存在的目錄

<a href="http://s5.51cto.com/wyfs02/M00/7C/9C/wKioL1bTvJLwkkHVAABf2vkjvnw182.png" target="_blank"></a>

通過查詢得知,一共有4個,選擇其中一個,例如選擇第三個“DATA_PUMP_DIR”,需要通過ftp檔案傳輸,把源資料通過expdb指令生成的dmp包和log日志檔案導入目标資料的 /u01/app/oracle/admin/crmdb/dpdump/ 路徑下面

[oracle@crmtest ~]$ impdp  dpcrm/ thisisCRM  directory= DATA_PUMP_DIR  dumpfile=dyg.dmp schemas=dpcrm logfile=dyg.log TABLE_EXISTS_ACTION=replace

(說明:

Directory為資料檔案存放位址

Dumpfile導出的檔案名稱設定

Logfile 導出的檔案日志記錄

Schemas 執行個體名稱,導出的時候寫的啥,導入的時候就寫啥

TABLE_EXISTS_ACTION 表存在後的操作,replace直接替換

2.  資料泵導出

資料泵導出的方法有多種,這裡我們隻介紹兩種:

 單個使用者方案導出

Expdp [使用者名]/[密碼]@[主機字元竄] schemas=[使用者名] directory=TEST dumpfile=X.dmp logfile=X.log

 資料庫全庫導出

Expdp [使用者名]/[密碼]@[主機字元竄] full=y directory=TEST dumpfile=X.dmp logfile=X.log

執行個體: expdp dpcrmdb/dpcrmdb  full=y  directory=DUMP_DIR  dumpfile=dyg.dmp  logfile=dyg.log  ignore=y

3. 資料泵導入

按以上導出方式:

 單個使用者方案導入

impdp [使用者名]/[密碼]@[主機字元竄] schemas=[使用者名] directory=TEST  dumpfile=X.dmp  logfile=X.log  ignore=y

 資料庫全庫導入

impdp [使用者名]/[密碼]@[主機字元竄] full=y  directory=TEST  dumpfile=X.dmp  logfile=X.log  ignore=y

 執行個體: impdp  dpcrmdb/dpcrmdb  full=y  directory=DUMP_DIR  dumpfile=dyg.dmp  logfile=dyg.log  ignore=y TABLE_EXISTS_ACTION=replace

注意:directory的位置

drop directory test 删除目錄

本文轉自aaa超超aaa 51CTO部落格,原文連結:http://blog.51cto.com/10983441/1745940