有的時候我們不想匯出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...