expdp与impdp

(一)        导出scott用户下的emp表到xx用户下

1.1      创建DIRECTORY,用sys用户创建

create directory DATA_PUMP_DIR as ‘D:\dir_dp‘;

1.2      在该目录上对scott用户授读写权限
Grant read,write on directory DATA_PUMP_DIR to scott;

--查看目录及权限
 select * from dba_directories;
 select * from user_tab_privs where table_name = ‘DATA_PUMP_DIR‘;

1.3      执行导出

expdp scott/[email protected] tables = emp
directory=DATA_PUMP_DIR dumpfile=expdp_emp.dmp
logfile=expdp_emp.log

--这里将scott用户下的emp表导出到DATA_PUMP_DIR目录中,保存文件为:expdp_emp.dmp,生成日志文件:expdp_emp.log。若要以其它模式导出,修改参数即可。

1.4      导入之前准备

如果导入的数据库与导出的数据库不是同一个库,导入之前要重复1、2两步操作,并将导出文件上传到要导入的服务器

1.5      执行导入

impdp xx/[email protected] tables = scott.emp
directory= DATA_PUMP_DIR dumpfile=expdp_emp.dmp
logfile=expdp_imp.log TABLE_EXISTS_ACTION = REPLACE REMAP_SCHEMA=scott:xx

(二)       
附录

2.1     
更换表空间

采用remap_tablespace参数
  --导出gwm用户下的所有数据
expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm
注:如果是用sys用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这些内容
--以下是将gwm用户下的数据全部导入到表空间gcomm(原来为gmapdata表空间下)下
impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp
remap_tablespace=gmapdata:gcomm

2.2      更换用户名

REMAP_SCHEMA
该选项用于将源方案的所有对象装载到目标方案中.
REMAP_SCHEMA=source_schema:target_schema

impdp xx/[email protected] tables = scott.emp
directory= DATA_PUM

P_DIR dumpfile=expdp_emp.dmp
logfile=expdp_imp.log TABLE_EXISTS_ACTION = REPLACE  remap_schema=scott:xx
remap_tablespace=users:example

2.3      expdp导出模式

a、按表导出:
expdp scott/[email protected]  tables=scott.emp dumpfile =expdp_test2.dmp
logfile=expdp_test2.log directory=dir_dp job_name=my_job

b、按查询条件导出:
expdp scott/[email protected]  tables=lttfm.b$i_exch_info dumpfile
=expdp_test3.dmp logfile=expdp_test3.log directory=dir_dp job_name=my_job
query=‘"where rownum<11"‘

c、按表空间导出:
Expdp scott/[email protected] dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF
logfile=expdp_tablespace.log directory=dir_dp job_name=my_job

d、导出方案
Expdp scott/[email protected]  DIRECTORY=dir_dp
DUMPFILE=schema.dmp SCHEMAS=lttfm,gwm

e、导出整个数据库:
expdp scott/[email protected] dumpfile =full.dmp full=y logfile=full.log
directory=dir_dp job_name=my_job

f、按用户导出

expdp scott/[email protected] schemas=scott
dumpfile=expdp.dmp DIRECTORY=dpdata1;

2.4     
impdp导入模式:

a、按表导入

p_street_area.dmp文件中的表,此文件是以gwm用户按schemas=scott导出的:
impdp xx/[email protected]  dumpfile =scott.dmp logfile=imp_scott.log directory= data_pump_dir tables=emp job_name=my_job

b、按用户导入(可以将用户信息直接导入,即如果用户信息不存在的情况下也可以直接导入)
impdp xx/[email protected] schemas=scott dumpfile =expdp_test.dmp logfile=expdp_test.log
directory= data_pump_dir job_name=my_job

c、不通过expdp的步骤生成dmp文件而直接导入的方法:
--从源数据库中向目标数据库导入表p_street_area
impdp xx/[email protected] directory= DATA_PUMP_DIR
NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_area.log 
job_name=my_job
igisdb是目的数据库与源数据的链接名,dir_dp是目的数据库上的目录

2.5      CONTENT

EXP和IMP的ROWS参数经常会被用到,而在数据泵中,这个功能被CONTENT参数所取代。同样,CONTENT参数在EXPDP/IMPDP两个命令中都可以指定。其中CONTENT参数的ALL选项对应EXP/IMP的ROWS=Y,而CONTENT参数的METADATA_ONLY对应EXP/IMP的ROWS=N。

数据泵还能实现EXP/IMP所不能实现的功能,就是只导出数据,而不导出表结果即DATA_ONLY参数。

expdp scott/tiger
directory=d_output dumpfile=yangtk_data.dp content=data_only

当然传统的EXP/IMP虽然不能实现不导出表结构,但是在IMP的时候使用IGNORE=Y参数,可以忽略表已经存在而导致的建表操作,从这个意义上讲,变相实现了只导入数据的功能。

2.6      并行操作(PARALLEL)

您可以通过 PARALLEL
参数为导出使用一个以上的线程来显著地加速作业。每个线程创建一个单独的转储文件,因此参数 dumpfile 应当拥有和并行度一样多的项目。您可以指定通配符作为文件名,而不是显式地输入各个文件名,例如:

expdp scott/[email protected] schemas=scott directory=DATA_PUMP_DIR

dumpfile=expdp_emp_%U.dmp
logfile=expdp_emp.log parallel=4

impdp xx/[email protected]  directory= DATA_PUMP_DIR
dumpfile=expdp_emp_%U.dmp logfile=expdp_imp.log TABLE_EXISTS_ACTION = REPLACE
remap_schema=scott:xx remap_tablespace=users:example parallel=4

注意:dumpfile 参数拥有一个通配符 %U,它指示文件将按需要创建,格式将为expCASES_nn.dmp,其中nn 从 01 开始,然后按需要向上增加。

在并行模式下,状态屏幕将显示四个工作进程。(在默认模式下,只有一个进程是可见的)所有的工作进程同步取出数据,并在状态屏幕上显示它们的进度。

分离访问数据文件和转储目录文件系统的输入/输出通道是很重要的。否则,与维护 Data Pump 作业相关的开销可能超过并行线程的效益,并因此而降低性能。并行方式只有在表的数量多于并行值并且表很大时才是有效的。

1) 对于导出的parallel
     对于导出来说,由于dump文件只能由一个线程进行操作(包括I/O处理),因此如果输出的DUMP文件只有一个,即使你指定再多的并行,实际工作仍然是一个,而且还会触发ORA-39095错误。因此,建议设置该参数小于或等于生成的DUMP文件数量。那么,如何控制生成的DUMP文件数量呢?
     EXPDP命令提供了一个FILESIZE参数,用来指定单个DUMP文件的最大容量,要有效的利用parallel参数,filesize参数必不可少。
     举例:某用户对象占用了4G左右的空间,实际导出后的DUMP文件约为3G,我们尝试在导出该用户时指定并行度为4,设置单个文件不超过500M,则语法如下:
    $ expdp user/pwd directory=dump_file
dumpfile=expdp_20100820_%U.dmp logfile=expdp_20100820.log filesize=500M
parallel=4

2) 对于导入的parallel
     对于导入来说,使用parallel参数则要简单的多,我认为导入更能体现parallel参数的优势。参数设置为几,则认为同时将几张表的内容导入到库中。
    举例:某dmp文件中包含了200张表,我们尝试在导入该DMP文件时指定并行度为10,则语法如下:
   $ impdp user/pwd directory=dump_file dumpfile=expdp_20100820.dmp
logfile=impdp_20100820.log parallel=10

时间: 2024-08-13 09:54:10

expdp与impdp的相关文章

expdp和impdp常用参数

归纳了日常使用expdp与impdp的参数,如下 1.ATTACH-----attach 该选项用于在客户会话与已存在导出作用之间建立关联.语法如下 ATTACH=[schema_name.]job_name Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下: Expdp scott/tiger ATTACH=scott.export_job 2. CONTENT-

EXPDP和IMPDP简单测试

一.EXPDP和IMPDP使用说明  Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2)在数据库用户之间移动对象. 3)在数据库之间移动对象 4)实现表空间搬移. 二.数据泵导出导入与传统导出导入的区别  在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和

2016.8.17服务器端数据库用户导入导出方法 expdp和impdp

EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用. IMP只适用于EXP导出的文件,不适用于EXPDP导出文件:IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件. EXPDP导出命令: C:\Users\Administrator>expdp ndp_admin/[email protected] schemas=ndp2016_04 dumpfile=snn

expdp和impdp 使用注意事项

使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用. IMP只适用于EXP导出的文件,不适用于EXPDP导出文件:IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件. expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如: expdp schemas=scott dumpfi

【Oracle】EXPDP和IMPDP数据泵进行导出导入的方法

一.expdp/impdp和exp/imp的区别 1.exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. 2.expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用. 3.imp只适用于exp导出的文件,不适用于expdp导出文件:impdp只适用于expdp导出的文件,而不适用于exp导出文件. 4.对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出. 二.expdp导出步骤 (1)创建逻辑

数据库导出导入操作(expdp,impdp)

EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用. 命令行: sqlplus/nolog connect username/password as sysdba 1.创建逻辑目录create directory dpdata1 as 'd:\xiaobog\dump'2.查看管理员目录select * from dba_directories;3.给用户赋予在指定目录的操作权限,最好以system等管理员赋予 grant read,write on d

ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法

Oracle使用EXPDP和IMPDP数据泵进行导出导入的方法 使用expdp和impdp时应该注重的事项: 1.exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. 2.expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用. 3.imp只适用于exp导出的文件,不适用于expdp导出文件:impdp只适用于expdp导出的文件,而不适用于exp导出文件. 4.对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须

Oracle数据库导入导出exp(expdp) imp(impdp)

Oracle数据库的导入导出 首先,又尴尬了一次. 其实oracle导入和导出命令是有两种的 即: exp(expdp) imp(impdp) 先给自己普及一下常识: 在平常备库和数据库迁移的时候,当遇到大的数据库的时候在用exp的时候往往是需要好几个小时,耗费大量时间.oracle10g以后可以用expdp来导出数据库花费的时间要远小于exp花费的时间,而且文件也要小很多. 1.使用expdp要先在数据库中创建directory,并给相应的用户read,write权限. SQL>create

数据库导入导出expdp,impdp

数据库操作 (1)数据库导入导出expdp,impdp 在导入导出数据库的时候,经常会用到exp和imp,在数据量小的情况下可以随意使用,但是当数据量大,表中数据有百万,千万条的时候,就要等好久好久好久.. oracle官方肯定也考虑到了这样的问题,于是出现了expdp和impdp,这是oracle 10g版本出的一个新功能,使用数据泵导入导出数据,据官方推荐说使用数据泵导入导出会比普通的导入导出快十倍,可以说是非常强大了. 首先连接到数据库,使用cmd执行以下命令 sqlplus /nolog

expdp 和impdp使用之一(不同用户和不用表空间)

1.创建DIRECTORY SQL> create or replace directory dir_dp as '/fol/dir_dp'; Directory created. 2.授权 SQL> grant read,write on directory dir_dp to scott; Grant succeeded. 3.查看目录及权限 SQL> set lines 200 pagesize 1000 SQL> SELECT privilege, directory_na