通過EXPDP IMPDP匯出匯入遠端資料倒本地

2021-09-22 19:16:37 字數 4688 閱讀 5593

有的時候我們不想匯出expdp檔案然後ftp到目標伺服器impdp 因為這樣會占用大量的空間,並且浪費時間,我們就可以通過如下的方式

直接將遠端的資料匯入到本地。

首先建立到目標端的dblink 使用匯出使用者的使用者名稱

create public database link link33

connect to testimp identified by gelc123123

using '(description =

(address = (protocol = tcp)(host = 192.168.45.33)(port = 1521))

(connect_data =

(server = dedicated)

(service_name = yjfcore) )

)';如果採用schemas方式匯出

這裡注意賦予遠端使用者testimp使用者exp_full_database

grant exp_full_database to testimp;

同時賦予目標端使用者testimp2使用者

imp_full_database

grant imp_full_database to testimp2;

否則匯入的時候可能報錯

ora-31631: privileges are required

ora-39149: cannot link privileged user to non-privileged user

然後可以進行遠端匯入,我這裡也同時完成了匯入到不同的使用者

impdp testimp2/gelc123  job_name=test123_my  schemas=testimp remap_schema=testimp:testimp2 network_link=link33  transform=segment_attributes:n logfile=bakdir:backlog.log

注意這裡並沒有

dumpfile=bakdir:test.dmp 很顯然這裡並沒有生成任何dmp檔案如此可以節約目標伺服器空間

給出日誌:

estimate in progress using blocks method...

processing object type schema_export/table/table_data

total estimation using blocks method: 15.12 mb

processing object type schema_export/user

ora-31684: object type user:"testimp2" already exists

processing object type schema_export/system_grant

processing object type schema_export/role_grant

processing object type schema_export/default_role

processing object type schema_export/pre_schema/procact_schema

processing object type schema_export/table/table

. . imported "testimp2"."test2"                          127151 rows

. . imported "testimp2"."test1"                             732 rows

當然這種情況下及有full許可權下也可以單錶匯入

starting "testimp2"."test123_my":  testimp2/******** job_name=test123_my tables=testimp.test1 remap_schema=testimp:testimp2 network_link=link33 transform=segment_attributes:n logfile=bakdir:backlog.log 

estimate in progress using blocks method...

processing object type table_export/table/table_data

total estimation using blocks method: 128 kb

processing object type table_export/table/table

. . imported "testimp2"."test1"                             732 rows

job "testimp2"."test123_my" successfully completed at 18:27:27

當然也可以不賦予full許可權,匯出乙個使用者下面的所有object即可而不都出user

使用,注意這裡沒有

schemas=testimp

[oradba@yjftestdb01 dmp]$ impdp testimp2/gelc123  job_name=test123_my   remap_schema=testimp:testimp2 network_link=link33  transform=segment_attributes:n logfile=bakdir:backlog.log

import: release 11.2.0.3.0 - production on thu sep 24 18:16:41 2015

connected to: oracle database 11g enterprise edition release 11.2.0.3.0 - 64bit production

starting "testimp2"."test123_my":  testimp2/******** job_name=test123_my remap_schema=testimp:testimp2 network_link=link33 transform=segment_attributes:n logfile=bakdir:backlog.log 

estimate in progress using blocks method...

processing object type schema_export/table/table_data

total estimation using blocks method: 15.12 mb

processing object type schema_export/pre_schema/procact_schema

processing object type schema_export/table/table

. . imported "testimp2"."test2"                          127151 rows

. . imported "testimp2"."test1"                             732 rows

job "testimp2"."test123_my" successfully completed at 18:17:12

這裡匯入就沒有使用者的資訊了

processing object type schema_export/user

ora-31684: object type user:"testimp2" already exists

processing object type schema_export/system_grant

processing object type schema_export/role_grant

processing object type schema_export/default_role

然後測試一下遠端匯入到本地的expdp

expdp testimp2/gelc123  job_name=test123_my  schemas=testimp  network_link=link33   logfile=bakdir:backlog.log  dumpfile=bakdir:test.dmp

給出日誌:

total estimation using blocks method: 15.12 mb

processing object type schema_export/user

processing object type schema_export/system_grant

processing object type schema_export/role_grant

processing object type schema_export/default_role

processing object type schema_export/pre_schema/procact_schema

processing object type schema_export/table/table

. . exported "testimp"."test2"                           12.46 mb  127151 rows

. . exported "testimp"."test1"                           88.54 kb     732 rows

這樣就可以匯出遠端的資料,一般來說expdp是不能匯出遠端的資料到本地的但是使用network_link的方式可以實現,但是exp就可以簡單的加上

@來匯出遠端的資料倒本地。

oracle用expdp impdp匯出匯入

使用expdp和impdp時應該注意的事項 exp和imp是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。expdp和impdp是服務端的工具程式,他們只能在oracle服務端使用,不能在客戶端使用。imp只適用於exp匯出的檔案,不適用於expdp匯出檔案 impdp只適用於expd...

expdp impdp匯出匯入資料

expdp匯出資料步驟 1 建立目錄 create directory dir expdp as syjkccs dir expdp 2 授權 grant read,write on directory dir expdp to tpl 3 檢視目錄及許可權 select from dba dire...

oracle匯出 匯入 expdp impdp

oracle使用expdp和impdp資料幫浦進行匯出匯入的方法 常用方法 使用expdp和impdp時應該注重的事項 1 exp和imp是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。2 expdp和impdp是服務端的工具程式,他們只能在oracle服務端使用,不能在客戶端使用。3...