通过EXPDP/IMPDP导出导入远端数据倒本地

有的时候我们不想导出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

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
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就可以简单的加上
@来导出远端的数据倒本地。

时间: 2024-07-29 10:49:11

通过EXPDP/IMPDP导出导入远端数据倒本地的相关文章

表空间不存在-oracle11G使用expdp、impdp导出导入数据库问题

问题描述 oracle11G使用expdp.impdp导出导入数据库问题 问题描述:我使用oracle11G开发,表空间名称叫TBS_A得知客户服务器表空间创建成了TBS_B,为了更方便导出数据库到客户服务器,就在自己的数据库也创建了个同名表空间TBS_B.然后将我自己的数据使用imp(不是dp)从TBS_A导入到了TBS_B,然后将自己TBS_B的表空间使用expdp导出成10G版本.但是拿到客户那,使用impdp导入时却提示我TBS_A表空间不存在 我想问,我导出的是自己数据库的TBS_B为

oracle数据库中expdp和impdp导出导入

expdp和impdp是oracle从10g开始新增加的导出.导入功能.名称叫数据泵. expdp:Data Pump Export impdp:Data Pump Import 一.expdp.impdp和exp.imp的区别 expdp.impdp: 1.可以导入导出单个或多个数据库.用户(schema).表空间.表. 2.强大的数据过滤功能. 3.速度快. 4.不支持XMLType数据. exp.imp: 1.支持XMLType数据. 2.不支持FLOAT和DOUBLE数据类型. 3.功能

导入导出 Oracle 分区表数据

--**************************** -- 导入导出 Oracle 分区表数据 --****************************         导入导入Oracle 分区表数据是Oracle DBA 经常完成的任务之一.分区表的导入导出同样普通表的导入导出方式,只不过导入导出需要考 虑到分区的特殊性,如分区索引,将分区迁移到普通表,或使用原始分区表导入到新的分区表.下面将描述使用imp/exp,impdp/expdp导入导出 分区表数据.       有关分

LNMP下使用命令行导出导入MySQL数据库的方法_Mysql

作为站点或服务器运维人员,网站的备份与还原操作是必须熟练的.MySQL 数据库的导出和导入操作是必不可少的,对于一般的用户,可能使用的比较多的是 phpMyAdmin 这样的可视化操作界面,但是这种界面操作在数据库比较大的情况下,经常出错. 如果你对Linux下的命令比较熟悉,并且自己使用的是 vps 或云服务器的话,可以使用 MySQL 相关命令来导出和导入数据库,非常方便高效! 导出数据库 导出数据库为 db_wp.sql.gz 文件: mysqldump -u数据库用户名 -p数据库密码

mysql怎么导出csv格式数据文件

1.MySQL导出本地数据库数据到本地文件 Sql代码  代码如下 复制代码 load data infile '/tmp/test.csv'   into table test_info    fields terminated by ','  optionally enclosed by '"' escaped by '"'   lines terminated by 'rn';  load data infile '/tmp/test.csv' into table test_i

Oracle 10g 到11g的数据迁移 导入导出 顺序步骤 expdp/impdp

原库版本:Oracle 10.2.0.4.0 目标库版本:Oracle 11.2.0.1.0 使用expdp导出原库数据: expdp system/xxxxxx schemas=test1201 directory=easbak dumpfile=test1201.dmp logfile=zytest1201.log; impdp前准备: 1:确保目标数据库和原库字符集一致 2:创建好所需表空间,可以在原库里查询test1201这个用户使用了哪些表空间查询语句如下: select distin

Oracle datapump expdp/impdp 导入导出数据库时hang住

   最近在导出schema级别的数据时被hang住,不得不停止当前的导出作业,如果你有类似的问题,请继续往下看.  1.问题描述    导出整个schema时数据库被hang住,如下所示    符号">"是由SecureCRT设定的每300秒发送一次    oracle@Dev-DB-04:~> expdp goex_admin/xxx directory=db_dump_dir dumpfile=gobo2.dmp logfile=gobo2.log schemas=g

Oracle数据泵导出导入与传统导出导入的区别

 估计有不少的朋友不清楚Oracle数据泵导出导入与传统导出导入的区别吧,下面小编为各位介绍一下,有兴趣的朋友不防进入一起参考.   先来看一下Oracle数据泵导出导入例子 1.首先建立目录: create directory 目录名称 as '数据库服务器上的一个目录',如:  create directory 别名 as 'd:\服务器目录名';  将导入或导出的文件放在这个目录下 2.导出及导入 以SID=orcl,导出dmp的账号为test,导入dmp的账号为test为例. 若将数据从

数据泵expdp/impdp工具的使用:

数据泵expdp/impdp工具的使用: 建立数据泵目录 使用数据泵需要先建directory create directory dump_scott as'/home/oracle/dump/scott' 查看建立的目录 Select * from dba_directories 赋权 Grant read,write on directory dump_scott toscott   导出案例1,按表导出 expdp scott/tiger directory=dump_scottdumpf