expdp\impdp 資料庫資料轉送____資料庫

來源:互聯網
上載者:User

藉助 oracle提供的 expdp\impdp及exp\imp命令來實現匯出\匯入。由於exp\imp命令會自動忽略row_num=0的表,導致最後匯出的表不完整。所以我們選擇使用expdp\impdp命令。

我們要完成的任務:

1,從airtest使用者匯出.dmp的檔案格式(也可以選擇格式為.sql,但是sql表中不能有大欄位(blob,clob,long),如果有,執行sql檔案會報錯。)

2,將匯出的a.dmp檔案再倒入airtest使用者中,相當於備份。

3,將匯出的a.dmp檔案轉存到dev使用者中,相當於資料轉送




sqlplus    /nolog

connect    / as sysdba


在plsql或者sqlplus中執行命令:

create directory dump_test as 'F:\dump'

(提前在硬碟上建立'F:\dump'對應的檔案件)

--查看一下是否存在該目錄

select * from dba_directories;

 

--授權給操作使用者這個dump目錄的許可權         

grant read, write on directory dump_test to airtest;

grant read, write on directory dump_test to dev;

退出sql,到cmd下執行下列命令

任務1:使用本機使用者airtest進行匯出資料,匯出到dump_test指定的目錄中.即'F:\dump'

格式:Expdp 本機使用者/使用者的密碼@oracle的sid  , directory參數指定匯出到本地目錄  dumpfile指定匯出檔案的檔案名稱

expdp  airtest/airtest@orcl  directory=dump_test  dumpfile=a.dmp logfile=a.log


任務2:將資料匯入到airtest 中

impdp airtest/airtest@orcl   directory=dump_test   dumpfile =a.dmp   logfile=b.log ;

任務3:將資料匯入到dev

impdp dev/dev@orcl    directory=dump_test    dumpfile=a.dmp   logfile=b.log         remap_schema=airtest:dev  (結尾沒有分號。。。)



參考資料:

http://blog.163.com/shexinyang@126/blog/static/1367393122013612105445369/

http://www.cnblogs.com/lanzi/archive/2011/01/06/1927731.html


在實際操作中當impdp 和expdp時有如下報錯:

ORA-39002: invalid operation

  ORA-39070: Unable to open the log file.

  ORA-29283: invalid file operation

  ORA-06512: at "SYS.UTL_FILE", line 536

  ORA-29283: invalid file operation

  產生這個錯誤的原因通常有兩個:

  1.對存放dmp檔案或log檔案的路徑沒有許可權。

  2.對dmp檔案沒有許可權。

反覆排查還是沒有找出原因。另闢蹊徑:使用oracle內建的directory

select * from dba_directories;

選中一個directory,這裡選的是DATA_PUMP_DIR,path:/opt/oracle/admin/orcl/dpdump/

並將shadow檔案從root/Downloads中移動到這個directory;

mv SHADOW.DMP    /opt/oracle/admin/orcl/dpdump/

在bash下執行:

impdp  shadow/shadow@orcl directory=DATA_PUMP_DIR dumfile=SHADWO.DMP logfile=2.log  TABALE_EXISTS_ACTION=REPLACE;

TABALE_EXISTS_ACTION:當有表重複時,操作是替換。預設是skip。這裡僅僅對重複的table執行替換操作,但是,sequence重複時還會報錯:


可以刪掉sequence然後在impdp。 

drop sequence hibernate_sequence;









補充,如果建立一個資料庫,從無到有的匯入資料,如建立一個airback,然後執行impd時會出現如下錯誤:

串連到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

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

ORA-39006: 內部錯誤

ORA-39068: 在 PROCESS_ORDER=-4 的行中主表資料無效

ORA-01950: 對錶空間 'USERS' 無許可權

ORA-39097: 資料泵作業出現意外的錯誤 -1950

解決辦法:

grant unlimited tablespace to  airback;

原因:

39068錯誤是由於資料表空間份額不足造成的連鎖反應


remap_model 許可權不足:

為資料庫授予匯入匯出的許可權 grant exp_full_database 

(grant imp_full_database to user /grant exp_full_database to user)



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.