数据泵使用EXPDP和IMPDP时应该注意的事项
Exp-Imp-Expdp-Impdp的使用
Exp/Imp/Expdp/Impdp的使用寶成國際集團-中山電腦部2011-10-15內容簡介一.Exp/Imp的用法二.Expdp/Impdp的用法三.Exp/Imp 與Expdp/Impdp的比較一、Exp/Imp命令介紹1.Oracle資料導出導入Exp/Imp就相當於Oracle數據備份與還原。
exp命令可以把資料從遠端資料庫伺服器導出到本地的dmp檔,imp命令可以把dmp檔從本地導入到遠處的資料庫伺服器中。
2.迄今為止:導出/導入(exp/imp)工具集仍是跨多個平臺轉移資料所需勞動強度最小的首選實用工具,儘管人們常常抱怨它速度太慢.導入只是將每條記錄從dmp中讀出來,然後使用常見的Insert Into 命令將其插入到目標表中,因此導入可能會是個很慢的過程。
3.Exp: 高版本的DB不能導出低版本的DB資料.會報以下錯誤: (oracle10gdb exp oracle9idb Error)EXP-00056: ORACLE error 6550 encounteredORA-06550: line 1, column 41:PLS-00302: component 'SET_NO_OUTLINES' must be declaredORA-06550: line 1, column 15:4.Imp: 跨多個版本的dmp之間不能直接導入,需利用中間版本的DB導入.如Oracle8i導出的dmp file不能在Oracle10中直接導入,但可以在Oracle9i中利用網絡導入Oracle10g DB中.二、Exp/Imp使用實例1.數據導出(exp help=y)(1) 將資料庫TEST完全導出[EXP_FULL_DATABASE]exp system/manager@TEST file=d:\sys.dmp log=d:\sys.log full=y(2) 將資料庫中usera用戶與userb用戶的表導出exp system/manager@TEST file=d:\sys.dmp log=d:\sys.logowner=(usera,userb)(3) 將資料庫中的表table1、table2導出exp user/password@TEST file= d:\user.dmp log=d:\user.logtables=(table1, table2)(4)將資料庫中的表table1中的欄位filed1以‚00‛打頭的數據導出exp user/password@TEST file=d:\user.dmp log=d:\user.log tables=(table1) query=‚ where filed1 like ‘00%’‛(5)導出userA的架構不含Dataexp user/password@TEST file=d:\user.dmp log=d:\user.log rows=n(6)導出userA的架構,設定filesize為5Mexp user/password@TEST file=(d:\user-1.dmp,d:\user-2.dmp) log=d:\user.log filesize=5M2.數據導入(imp help=y)(1) 將資料庫中各owner導入[IMP_FULL_DATABASE]imp system/manager@TEST file=d:\sys.dmp log=d:\sys.log fromuser=ownera touser=ownera(2) 將資料庫中用戶A中的所有資料導入用戶B中imp userB/password@TEST file=d:\userA.dmp log=d:\in-userB.log fromuser=userA touser=userB(3) 導入時只導入架構和和data,不導入indeximp user/password@TEST file= d:\user.dmp log=d:\user.log indexes=n--產生index file的sql以便create indeximp user/password@TEST file= d:\user.dmp log=d:\index.log indexfile=user-index.sql(4) 往資料庫中的表table1中追加Dataimp user/password@TEST file=d:\user.dmp log=d:\inuser.log ignore=y(5) 使用commit=y及設定bufferimp gass/gasstest file=GASS2009.dmp log=in-GASS2009.log commit=y buffer=51200000(6) 使用使用INDEXES=Nimp user/password@TEST file=d:\user.dmp log=d:\inuser.log indexes=n rows=yimp user/password@TEST file=d:\user.dmp log=d:\inuser2.log indexes=y rows=n一、Expdp/Impdp命令介紹1.Oracle10g中的导出/导入(expdp/impdp)工具包為Oracle資料提供高速並行及大資料的遷移。
expdpimpdp用法详解
expdpimpdp⽤法详解⼀关于expdp和impdp 使⽤EXPDP和IMPDP时应该注意的事项:EXP和IMP是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。
EXPDP和IMPDP是服务端的⼯具程序,他们只能在ORACLE服务端使⽤,不能在客户端使⽤。
IMP只适⽤于EXP导出的⽂件,不适⽤于EXPDP导出⽂件;IMPDP只适⽤于EXPDP导出的⽂件,⽽不适⽤于EXP导出⽂件。
expdp或impdp命令时,可暂不指出⽤户名/密码@实例名 as ⾝份,然后根据提⽰再输⼊,如:expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;⼀、创建逻辑⽬录,该命令不会在操作系统创建真正的⽬录,最好以system等管理员创建。
create directory dpdata1 as 'd:\test\dump';⼆、查看管理理员⽬录(同时查看操作系统是否存在,因为Oracle并不关⼼该⽬录是否存在,如果不存在,则出错)select * from dba_directories;三、给scott⽤户赋予在指定⽬录的操作权限,最好以system等管理员赋予。
grant read,write on directory dpdata1 to scott;四、导出数据1)按⽤户导expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;2)并⾏进程parallelexpdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott33)按表名导expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;4)按查询条件导expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';5)按表空间导expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;6)导整个数据库expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;五、还原数据1)导到指定⽤户下impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;2)改变表的ownerimpdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;3)导⼊表空间impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;4)导⼊数据库impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;5)追加数据impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION⼆附加说明并⾏操作(PARALLEL)您可以通过 PARALLEL 参数为导出使⽤⼀个以上的线程来显著地加速作业。
使用EXPDP|IMPDP替代EXP|IMP备份数据
一、数据泵(Data Pump)主要解决的问题
1. 据说比 IMP/EXP 更加灵活, 支持多种元数据过滤策略, 多种导入/导出模式, 如将 A 库 B 用户导到 C 库中 D 用户, 则只需要 REMAP_SCHEMA 即可 2. 占用 USER 表空间问题。一直纠结的占用其他表空间问题可以用 REMAP_TABLESPACE 参数解决 3. 高版本数据导入到低版本问题。可以在 Oracle11g 中用 version 参数指定版本,在 Oracle10g 中导入。 4. 空表问题,Oracle11g 新的表并且表中无数据也未使用过则表的 SEGMENT 空间是不会分配的,这样在 EXP 时表 是导不出来的,这个问题的解决就是给表分配 SEGMENT 或使用 EXPDP 了 i. Select 'ALTER TABLE ' || TABLE_NAME || ' ALLOCATE EXTENT;' From user_tables WHERE NUM_ROWS=0, 将查询结果导出成 sql 脚本执行即可 ALTER SYSTEM SET DEFERRED_SEGMENT_CREATION=FALSE SCOPE=BOTH
指定。 有了这个目录指定之后,就可以使用 EXPDP 了。 2. 删除目录指定
Drop Directory AAA
几个参数
REMAP_SCHEMA 将一个方案中的对象加载到另一个方案。 REMAP_TABLE 将表名重新映射到另一个表。 例如, REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。 REMAP_TABLESPACE 将表空间对象重新映射到另一个表空间。
SELECT * FROM dba_directories;
oracle数据泵应用及常见问题
Oracle数据泵应用及常见问题1、Oracle数据泵简介Oracle数据泵(Data Pump)是Oracle10G引进的新技术,在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP。
经相关测试,Oracle数据泵方式进行数据导入导出要比以前的IMP/EXP快10倍左右,给大数据量的数据库导入导出提供了方便。
数据泵方式与IMP/EXP的主要区别在于EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用。
而EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用;IMP只适用于EXP导出文件,不适用于EXPDP 导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。
2、Oracle数据泵命令及主要参数a)EXPDP/IMPDP使用前准备运行命令前必须建立工作目录并赋权限,然后执行命令,具体步骤如下:a1在数据库所在机器上建立工作目录,如:d:\dp。
a2用数据库DBA用户SYS登录数据库,执行语句如下语句:create directory dump_dir as ' d:\dp ';grant read, write on directory dump_dir to db_user;(此处dump_dir 是第上面语句中工作目录名称,非实际目录名称,db_user是数据库用户名)。
a3运行EXPDP命令。
b)EXPDP主要参数a1DIRECTORY:导出数据的目录(目录是上面的设定的目录dump_dir)a2DUMPFILE:导出的文件名。
a3VERSION:以哪个版本导出数据,如果在不同的版本间导出导入数据,这个参数非常有用,例如将Oracle11G数据导入到Oracle10G(10.2.0.1.0)的数据库中,参数应写为VERSION=10.2.0.1.0,否则无法导入到低版本的数据库中。
EXPDP和IMPDP详细使用说明
enables Very High-Speed movement of data and metadata from one database to another.其中Very High-Speed是亮点。
先说数据泵提供的主要特性(包括,但不限于):1. 支持并行处理导入、导出任务2. 支持暂停和重启动导入、导出任务3. 支持通过Database Link的方式导出或导入远端数据库中的对象4. 支持在导入时通过Remap_schema、Remap_datafile、Remap_tablespace几个参数实现导入过程中自动修改对象属主、数据文件或数据所在表空间。
5. 导入/导出时提供了非常细粒度的对象控制。
通过Include、Exclude两个参数,甚至可以详细制定是否包含或不包含某个对象。
Warning:1. 什么是Directory对象Directory对象是Oracle10g版本提供的一个新功能。
他是一个指向,指向了操作系统中的一个路径。
每个Directory都包含Read,Write两个权限,可以通过Grant命令授权给指定的用户或角色。
拥有读写权限的用户就可以读写该Directory对象指定的操作系统路径下的文件。
2. 无论在什么地方使用expdp,生成的文件最终页是在服务器上(Directory指定的位置)如何调用1. 命令行方式最简单的调用,但是写的参数有限,建议使用参数文件的方式。
2. 参数文件方式最常用的方式。
通常需要先编写一个参数文件。
指定导出时需要的各种参数。
然后以如下方式调用。
expdp user/pwd parfile=xxx.par这个xxx.par即是我们编辑的参数文件。
注意,在这个命令行后面,同样可以再跟别的参数,甚至是在par参数文件中指定过的参数。
如果执行命令中附加的参数与参数文件中的参数有重复,最终采用哪个参数,会以参数最后出现的位置而定。
如:expdp user/pwd parfile=xxx.par logfile=a.log,如果在参数文件中也指定了logfile,这里会以命令行中的logfile为准;如:expdp user/pwd logfile=a.log parfile=xxx.par,而这个,则会以参数文件中的为准,因为parfile=xxx.par写在命令行的后面。
EXPDB_IMPDB导出数据库和导入数据库操作手册
EXPDB_IMPDB导出数据库和导入数据库操作手册EXPDP/IMPDP导出导入操作手册1.介绍EXPDP/IMPDP 是 Oracle 数据库中提供的一种工具,用于导出和导入数据库中的数据和对象。
通过使用 EXPDP 可以将数据库中的指定数据表、视图、程序、触发器等对象导出到一个二进制文件中,而使用 IMPDP 可以将这个导出的文件再导入到一个新的数据库中。
2.环境设置在使用 EXPDP/IMPDP 前,需要进行一些环境设置。
首先,确保数据库已经以归档模式运行,并且存在一个有效的备份策略。
其次,确认当前用户具备使用 EXPDP/IMPDP 的权限,可以通过以下语句进行授权:```GRANT EXP_FULL_DATABASE, IMP_FULL_DATABASE TO username;```其中,`username` 是需要授权的用户名。
3.导出数据库要导出数据库,可以使用以下命令:```expdp username/passwordconnect_stringDIRECTORY=directory_name DUMP LOG```其中,`username` 是要导出数据的用户名,`password` 是该用户的密码,`connect_string` 是连接数据库的字符串,`directory_name` 是导出文件所在的目录,`dump` 是导出文件的名称,`log` 是导出日志文件的名称。
4.导入数据库要导入数据库,可以使用以下命令:```impdp username/passwordconnect_stringDIRECTORY=directory_name DUMP LOG```其中,`username` 是要导入数据的用户名,`password` 是该用户的密码,`connect_string` 是连接数据库的字符串,`directory_name` 是导入文件所在的目录,`dump` 是导入文件的名称,`log` 是导入日志文件的名称。
EXPDB和IMPDP使用
EXPDB和IMPDP使用EXPDP和IMPDP是Oracle数据库中用于导出和导入数据的工具。
EXPDP用于将数据库中的数据、对象和元数据导出为一个二进制文件,而IMPDP则用于将这个二进制文件导入到另一个数据库中。
本文将详细介绍EXPDP和IMPDP的使用方法。
EXPDP命令用于在Oracle数据库中导出数据。
它可以导出整个数据库、指定的表空间、指定的表或指定的数据集。
EXPDP提供了很多选项,可以控制导出的方式,比如导出数据的压缩级别、并发作业数、导出的内容等。
以下是一个基本的EXPDP命令示例:``````上述命令将从数据库中导出所有的数据,然后将数据保存到data.dmp文件中,日志信息保存在expdp.log文件中。
接下来是IMPDP命令的使用。
IMPDP可以用于将导出的数据文件导入到一个新的数据库中。
它也可以使用很多选项来控制导入过程,比如指定导入的表空间、指定导入的对象、并发作业数等。
以下是一个基本的IMPDP命令示例:``````上述命令将从data.dmp文件中导入数据到数据库中,日志信息保存在impdp.log文件中。
在实际使用EXPDP和IMPDP时,有一些常用的选项可以帮助我们更好地管理数据的导入和导出过程。
下面是一些常用的选项及其说明:-`SCHEMAS`:指定要导出或导入的模式或用户。
可以同时指定多个模式。
-`TABLES`:指定要导出或导入的表。
可以同时指定多个表。
-`INCLUDE`:指定要导出或导入的对象类型。
可以是表、索引、约束等。
-`EXCLUDE`:指定要排除的对象类型。
-`JOB_NAME`:用于标识导出或导入作业的名称。
-`FULL`:指定是否导出或导入整个数据库。
-`NETWORK_LINK`:用于从一个远程数据库导入数据。
-`REMAP_SCHEMA`:用于在导入时重新映射模式或用户。
除了上述常用选项外,EXPDP和IMPDP还提供了很多其他选项,用于更灵活地控制导入和导出过程。
【Oracle】EXPDP和IMPDP数据泵进行导出导入的方法
【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)创建导出逻辑⽬录⽤sys管理员登录sqlplus[oracle@shdb02 ~]$ export ORACLE_SID=fp2[oracle@shdb02 ~]$ echo $ORACLE_SIDfp2[oracle@shdb02 ~]$ sqlplusSQL*Plus: Release 11.2.0.4.0 Production on Sat Mar 19 21:53:42 2022Copyright (c) 1982, 2013, Oracle. All rights reserved.Enter user-name: sys as sysdbaEnter password:**********Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Testing optionsSQL>如果提⽰:Connected to an idle instance. //这个就是错误的信息。
impdp 用法 -回复
impdp 用法-回复impdp(Import Data Pump)是Oracle数据库中的一个工具,用于将导出的数据(由expdp命令生成的数据泵文件)重新导入到数据库中。
它是一个非常强大和灵活的工具,可以按照用户的需求来选择性地导入数据,包括数据库对象、表数据、表空间等。
在本文中,我们将详细介绍impdp的使用方法,并提供一步一步的操作说明。
本文将覆盖以下内容:1. 安装和配置impdp命令2. impdp命令的语法和选项3. 导入数据的不同策略和选项4. 实际示例和使用技巧5. 常见问题和解决方法1. 安装和配置impdp命令要使用impdp命令,首先需要安装并配置Oracle数据库。
确保已经正确安装了Oracle数据库,并设置了正确的环境变量。
此外,还需要具备管理员权限才能运行impdp命令。
2. impdp命令的语法和选项impdp命令的基本语法如下:impdp username/password@connect_stringDIRECTORY=dpump_dir DUMPFILE=filename.dmpLOGFILE=filename.log其中,`username`是要导入数据的数据库用户,`PASSWORD`是该用户的密码。
`connect_string`是数据库连接字符串,用于连接到目标数据库。
`DIRECTORY`指定数据泵文件所在的目录,`DUMPFILE`指定要导入的数据文件,`LOGFILE`指定日志文件的名称。
此外,impdp命令还支持许多其他选项,以满足不同的导入需求,例如`INCLUDE`和`EXCLUDE`用于选择性导入对象,`TRANSFORM`用于转换数据等。
3. 导入数据的不同策略和选项impdp命令提供了多种导入数据的策略和选项,以满足不同场景的需求。
以下是一些常用选项的说明:- `FULL`:完全导入,包括数据库对象和表数据。
- `SCHEMAS`:指定要导入的模式(用户)。
oracle使用expdp、impdp和exp、imp导入导出表及表结构
oracle使⽤expdp、impdp和exp、imp导⼊导出表及表结构使⽤expdp、impdp和exp、imp时应该注重的事项:1、exp和imp是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。
2、expdp和impdp是服务端的⼯具程序,他们只能在oracle服务端使⽤,不能在客户端使⽤。
3、imp只适⽤于exp导出的⽂件,不适⽤于expdp导出⽂件;impdp只适⽤于expdp导出的⽂件,⽽不适⽤于exp导出⽂件。
4、对于10g以上的服务器,使⽤exp通常不能导出0⾏数据的空表,⽽此时必须使⽤expdp导出。
exp、imp导⼊导出sqlplus 进⼊数据库中导出直接在命令⾏下写命令1.导出⾃⼰的表exp userid=scott/tiger@myoral tables=(emp,dept) file=/opt/e1.dmp2.导出其它⽅案的表如果⽤户要导出其它⽅案的表,则需要dba的权限或是exp_full_database的权限,⽐如system就可以导出scott的表exp userid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp3. 导出表的结构exp userid=scott/tiger@accp tables=(emp) file=/opt/e3.dmp rows=n4. 使⽤直接导出⽅式exp userid=scott/tiger@accp tables=(emp) file=/opt/e4.dmp direct=y这种⽅式⽐默认的常规⽅式速度要快,当数据量⼤时,可以考虑使⽤这样的⽅法。
这时需要数据库的字符集要与客户端字符集完全⼀致,否则会报错导出⽅案导出⽅案是指使⽤export⼯具导出⼀个⽅案或是多个⽅案中的所有对象(表,索引,约束...)和数据。
并存放到⽂件中1. 导出⾃⼰的⽅案exp userid=scott/tiger@myorcl owner=scott file=/opt/scott.dmp2. 导出其它⽅案如果⽤户要导出其它⽅案,则需要dba的权限或是exp_full_database的权限,⽐如system⽤户可以导出任何⽅案exp userid=system/manager@myorcl owner=(system,scott) file=/opt/system.dmp导出数据库导出数据库是指利⽤export导出所有数据库中的对象及数据,要求该⽤户具有dba的权限或者是exp_full_database权限增量备份(好处是第⼀次备份后,第⼆次备份就快很多了)exp userid=system/manager@myorcl full=y inctype=complete file=/opt/all.dmp导⼊1. 导⼊⾃⼰的表imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp2. 导⼊表到其它⽤户要求该⽤户具有dba的权限imp_full_database imp userid=system/tiger@myorcl tables=(emp) file=/opt/xx.dmp touser=scott3. 导⼊表的结构,只导⼊表的结构⽽不导⼊数据imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp rows=n4. 导⼊数据如果对象(如⽐表)已经存在可以只导⼊表的数据imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp ignore=y导⼊⽅案导⼊⽅案是指使⽤import⼯具将⽂件中的对象和数据导⼊到⼀个或是多个⽅案中。
数据泵expdp和impdp使用说明
Expdp和impdpOracle 11g数据库以后的导入导出功能,采用数据泵模式expdp和impdp命令备份和恢复Oracle数据库。
1.首先创建一个用于存放对象的文件,即导入\导出时的文件存放目录,以便能够直接找到导出的文件。
默认也有directory,一般在\admin\orcl\dpdump下。
(此路径必须在电脑中存在,否则oracle会提示创建成功,但实际应用导入\导出时会报错。
)举例:我创建一个在D盘根目录下的oracle文件夹下的目录。
第一步:创建一个目录(也就是文件路径)来装导出的dmp文件方法:操作系统—开始—运行输入“cmd”进入dos界面输入“sqlplus system/zl@orcl”(根据自己的数据库情况输入) 。
按回车如下图:接着,创建DIRECTORYcreate directory expdp_dir as 'D:\oracle\ ';这里要注意,路径D:\oracle\一定要是系统已经存在的了,如果该路径不存在,下边的导出将会提示正确创建了路径的显示如下:第二步:授权(授予要导入数据的用户对该目录(路径)进行读和写的权限),还是在连接数据库的状态下输入:Grant read,write on directory dir_dp to htdss;如下图:就完成了,关闭窗口,重新进入dos界面就可以进行备份了;第三步:执行导出expdp htdss/htdss@orcl directory=expdp_dir dumpfile =xxx.dmp schemas=htdss logfile=xxxx.log;连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1With the Partitioning, OLAP and Data Mining options启动"LTTFM"."SYS_EXPORT_SCHEMA_01": lttfm/********@fgisdb schory=expdp_dir dumpfile =expdp_test1.dmp logfile=expdp_test1.log; */备注:1、directory=expdp_dir必须放在前面,如果将其放置最后,会提示ORA-39002: 操作无效ORA-39070: 无法打开日志文件。
expdp 和impdp的笔记
expdp 和impdp的笔记Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中.数据泵导出导入(EXPDP和IMPDP)的作用1,实现逻辑备份和逻辑恢复.2,在数据库用户之间移动对象.3,在数据库之间移动对象4,实现表空间搬移.数据泵导出导入与传统导出导入的区别在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP 和IMPDP时应该注意的事项;EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件.数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.expdp选项1):ATTACH不能与其他选项一起使用2):CONTENT要导出的内容默认值ALLDATA_ONLYMETADATA_ONLY3):DIRECTORY 指定转储文件和日志文件的所在地DIRECTORY=directory_object数据库目录对象)expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp4):DUMPFILE指定转储文件的名称,默认为expdata.dmp5):ESTIMAT选项用于估算导出表所占的空间expdp scott/tiger TABLE=emp ESTIMAT=STATISTICS|BLOCKS6):ESTIMATE_ONLY改选项只是估算导出对象所占的空间,默认值为Y7):EXCLUDE执行导出操作时要排除的对象或相关对象,与INCLUDE选项不能一起使用expdp scott/tiger DIRECTORY=dump DUMPFILE=A.DMPEXCLUDE=view8):FILESIZE导出文件的最大尺寸,默认值为0(没有限制)9)FLASHBACK_SCN该选项导出特定时刻的表数据expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=38582310):FLASHBACK_TIME该选项用于导出特定时间点的表数据FLASHBACK_TIME="TO_TIMESTAMP(time-value)"expdp scott/tiger DIRECTIONARY=dump DUMPFILE=a.dmp FLASHBACK_TIME("TO_TIMESTMP('25-08-200814:35:00','DD-MM-YYYY HH24:MI:SS');11):FULL 导出整个数据库12)HELP13)INCLUDE 该选项指定导出的对象类型expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpINCLUDE=table14):JOB_NAME 该选项用于指定导出作业的名称expdp scott/tiger DIRECTORYL=dump DUMPFILE=a.dmpJOB_NAME=maxu15)LOGFILE 该选项导出日志文件的名称expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log 16)NETWORK_LINK该选项指定数据库链名,将远程数据库导出到本地的转储文件中NETWORK_LINK=source_database_link注:对象表不支持远程导出17):NOLOGFILE该选项指定禁止生成导出日志文件18):PARALLEL 该选项指定导出操作的并行进程个数,默认值为1expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp PARALLEL=3;19):PARFILE指定导出参数文件的名称TABLES=dept,empDIRECTORY=dumpDUMPFILE=tab.dmp 20):QUERY 该选项过滤出数据的WHERE条件expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp TABLES=emp query=' "WHERER= deptno=20" '21):SCHEMASexpdp system/oracle DIRECTORY=dump DUMPFILE=a.dmp SCHEMAS=scott,system22):STATUS导出作业的状态23):TABLES 表模式expdp system/oracle directory=dump dumpfile=a.dmptables=scott.dep,scott.emp24):TABLESPACES 导出表空间列表expdp system/oracle DIRECTORY=dumpDUMPFILE=a.dmp tablespace=user0125):TRANSPORT_FULL_CHECK该选项指定被搬移表空间和搬移表空间的依赖26):TRANSPORT_TABLESPACE表空间的导出模式27):VERSION 保持向下兼容expdp scott/tiger DIRECTORY=dump DUMPFILE=c.dmpVERSION=LASTEST根据初始参数COMPATIBLE的设置调用EXPDP SQL>conn system/oracle SQL>create DIRECTORY dump_dir AS 'd:dump'; SQL>GRANT read,write on DIRCTORY dump_dir to scott;导出表expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp导出schemasexpdp system/oracle DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=system.scott;导出表空间expdp system/oracle DIRECTORY=dump_dirDUMPFILE=tablespace.dmp TABLESPACES=user01,user02导出数据库expdp system/oracle DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=YIMPDPREMAP_DATAFILE该选项将源数据文件的名称转变为目标数据文件名,当在不用平台之间搬移表空间时可能需要使用该选项REMAP_SCHEMAimpdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp REMAP_SCHEMA=scott:systemREMAP_TABLESPACE将源表空间的所有对象导入目标表空间impdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp REMAP_RABLESPACE=user01:user02REUSE_DATAFILES是否覆盖已存在的数据文件SCHEMAS导入指定模式(schemas)impdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp SCHEMAS=scottSKIP_UNUSABLE_INDEXED是否跳过不可使用的索引SQLFILE指定导入操作需要执行DDL语句写入到一个脚本SQLFILE=[dirctory_object:]file_nameimpdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmpSQLFILE=a.sqlSTREAMS_CONFIGURATIONTABLE_EXISTS_ACTION当表已存在是执行的操作skip|append|truncate|replaceTABLESimpdp scott/tiger DIRECTOR=dump DUMPFILE=tab.dmp TABLES= empTABLESPACESimpdp scott/tiger directory=dumpdumpfile=tab.dmp tablespace=usr01TRANSPORT_DATAFILES该选项指定当搬移表空间时要被导入到目标数据库的数据文件名称impdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp TRANSPORT_DATAFILE='/user01/data/tbs.dbf'TRANSPORT_FULL_CHECK表空间依赖检查TRANSPORT_TABLESPACE表空间模式导入VERSION调用IMPDPimpdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,empimpdp system/oracle DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.empREMAP_SCHEMA=scott:systemschemas(模式)impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scottimpdp system/oracle DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott REMAP_SCHEMA=scott:system表空间impdp system/oracle DIRECTORY=dump_dirDUMPFILE=tablespace.dmp TABLESPACE=user01数据库impdp system/oracle DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y;搬移表空间nls_database_parameters条件约束字符集一样和国家字符集一样两个数据库不能同名不能搬移system和sys用户对象的表空间如果是其他平台,将初始参数compatible设置10.0自包含表空间是指具有有关联关系的表空间集合,假设表空间A包含了表EMP,而表空间B包含了表空间EMP的索引IND_EMP,如果要搬移表空间B,则必须同时搬移表空间A,则表空间A和B为自包含表空间集合违反自包含集合规则表空间包含sys对象表空间包含了索引所在的表空间,但没有包含索引基表所在的表空间表空间集合没有高喊分区表的所有分区表空间包含了表所在的表空间,但没有包含LOB列所在的表空间source database demodest database orcl使用DBMS_TTS包检查表空间是否为自包含的SQL>conn system/oracle SQL>executesys.dbms_tts.transport_set_check('user02',true) sql>select * from sys.transport_set_violations;sql>alter tablespace users read onlySQL>host expdp system/oracle DIRECTORY=dump_dirDUMPFILE=transport.dmp TRANSPORT_TABLESPACE=users把transport.dmp文件拷贝目标服务器上在目标数据库上比照两个数据库的块大小,如不一样destSQL>alter system set db_cache_size=20m; SQL>alter system setdb_4k_cache_size=4M;impdp system/oracle DIRECTORY=dump_dir DUMPFILE=transport.dmpTRANSPORT_DATAFILES=d:oracleoradataorclusers.dbf REMAP_SCHEMA=scott:hr。
数据库数据泵详解
ORACLE数据泵一、EXPDP和IMPDP使用说明Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用1)实现逻辑备份和逻辑恢复.2)在数据库用户之间移动对象.3)在数据库之间移动对象4)实现表空间搬移.二、数据泵导出导入与传统导出导入的区别在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP 和IMPDP.使用EXPDP和IMPDP时应该注意的事项:1)EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。
2)EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
3)IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。
数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.三、Expdp参数EXPDP命令行选项,可通过expdp help=y查看:E:\emp>expdp help=yExport: Release 10.2.0.1.0- Production on 星期日, 03 5月, 2009 17:54:49 Copyright (c) 2003, 2005, Oracle. All rights reserved.数据泵导出实用程序提供了一种用于在Oracle 数据库之间传输数据对象的机制。
该实用程序可以使用以下命令进行调用:示例: expdp scott/tigerDIRECTORY=dmpdir DUMPFILE=scott.dmp您可以控制导出的运行方式。
具体方法是: 在'expdp' 命令后输入各种参数。
要指定各参数, 请使用关键字:格式: expdp KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)示例: expdp scott/tigerDUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott或TABLES=(T1:P1,T1:P2), 如果T1 是分区表USERID 必须是命令行中的第一个参数。
oracle 数据泵使用技巧
oracle 数据泵使用技巧Oracle 数据泵是一个非常强大的工具,用于在Oracle数据库之间导入和导出数据。
它提供了一种快速和高效的方式,可以将数据从一个数据库迁移到另一个数据库,或者备份和还原数据。
在本文中,我将分享一些使用Oracle数据泵的技巧,希望对您有所帮助。
让我们来了解一下数据泵的基本概念和术语。
数据泵由两个主要组件组成:导出(expdp)和导入(impdp)。
导出是将数据从源数据库导出到文件系统的过程,而导入是将数据从文件系统导入到目标数据库的过程。
在导出和导入过程中,可以使用各种参数和选项来控制数据的导出和导入行为。
一、导出数据1. 导出整个数据库要导出整个数据库,可以使用以下命令:```expdp username/password@database_name directory=directory_name dumpfile=dumpfile_name.dmp full=y```其中,username是数据库用户的名称,password是用户的密码,database_name是数据库的服务名,directory_name是导出文件保存的目录,dumpfile_name.dmp是导出文件的名称。
通过设置full参数为y,可以导出整个数据库。
2. 导出指定的表如果只需要导出特定的表,可以使用tables参数来指定要导出的表的名称:```expdp username/password@database_name directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name```其中,table_name是要导出的表的名称。
可以通过逗号分隔多个表的名称。
3. 导出指定的数据有时候,可能只需要导出表中的部分数据。
可以使用query参数来指定要导出的数据的条件:```expdp username/password@database_name directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name query=condition```其中,condition是指定要导出的数据的条件。
Oracle 数据泵详解
Oracle 数据泵详解一、EXPDP和IMPDP使用说明Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用1)实现逻辑备份和逻辑恢复.2)在数据库用户之间移动对象.3)在数据库之间移动对象4)实现表空间搬移.二、数据泵导出导入与传统导出导入的区别在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项:1)EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。
2)EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
3)IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。
数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.三、Expdp参数EXPDP命令行选项,可通过expdp help=y查看:E:\emp>expdp help=yExport: Release 10.2.0.1.0- Production on 星期日, 03 5月, 2009 17:54:49Copyright (c) 2003, 2005, Oracle. All rights reserved.数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输数据对象的机制。
该实用程序可以使用以下命令进行调用:示例: expdp scott/tigerDIRECTORY=dmpdir DUMPFILE=scott.dmp您可以控制导出的运行方式。
具体方法是: 在 'expdp' 命令后输入各种参数。
要指定各参数, 请使用关键字:格式: expdp KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)示例: expdp scott/tigerDUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表USERID 必须是命令行中的第一个参数。
数据泵expdp impdp 和exp imp工具命令参数中文说明
一、数据泵EXPDP命令参数中文说明#通过在命令行输入expdp help=y 获取imp的语法信息Export: Release 11.2.0.1.0 - Production on 星期五10月10 12:25:21 2019Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.数据泵导出实用程序提供了一种用于在Oracle 数据库之间传输数据对象的机制。
该实用程序可以使用以下命令进行调用:示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp您可以控制导出的运行方式。
具体方法是: 在'expdp' 命令后输入各种参数。
要指定各参数, 请使用关键字:格式: expdp KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott 或TABLES=(T1:P1,T1:P2), 如果T1 是分区表USERID 必须是命令行中的第一个参数。
------------------------------------------------------------------------------以下是可用关键字和它们的说明。
方括号中列出的是默认值。
ATTACH连接到现有作业。
例如, ATTACH=job_name。
COMPRESSION减少转储文件大小。
有效的关键字值为: ALL, DATA_ONLY, [METADATA_ONLY] 和NONE。
CONTENT指定要卸载的数据。
有效的关键字值为: [ALL], DATA_ONLY 和METADATA_ONLY。
impdp详解
3.导出表空间
Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp
TABLESPACES=user01,user02
4,导出数据库
Expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y
4.REUSE_DATAFILES
16. NETWORK_LINK
指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.
17. NOLOGFILE
该选项用于指定禁止生成导出日志文件,默认值为N.
18. PARALLEL
指定执行导出操作的并行进程个数,默认值为1
19. PARFILE
指定导出参数文件的名称
GRANT READ, WIRTE ON DIRECTORY dump_dir TO scott;
1,导出表
Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
2,导出方案
Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp
调用EXPDP
使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.
CREATE DIRECTORY dump dir AS ‘D:DUMP’;
数据泵使用总结
数据泵使用总结Oracle10g 数据泵导出命令expdp 使用总结(一)1.1.1 expdp使用使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.数据泵的使用必须在服务器端进行。
首先得建DIRECTORY:SQL> conn /as sysdbaSQL> CREATE OR REPLACE DIRECTORY dir_dump AS '/u01/backup/';SQL> GRANT read,write ON DIRECTORY dir_dump TO public;查询已有的目录:select * from dba_directories;删除路径:drop directory exp_dir;1) 导出scott整个schema--默认导出登陆账号的schema$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par Windows下面:$ expdp scott/tiger@db_esuite parfile=d:\orahome\expdp.parexpdp.par内容: 大小写不区分DIRECTORY=dir_dumpDUMPFILE=scott_full.dmpLOGFILE=scott_full.log--其他账号登陆, 在参数中指定schemas$ expdp system/oracle@db_esuiteparfile=/orahome/expdp.parexpdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott_full.dmpLOGFILE=scott_full.logSCHEMAS=SCOTT2) 导出scott下的dept,emp表$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logTABLES=DEPT,EMP如果写为:大小写不区别,指定schemas和tables不能同时使用directory=dir_dumpdumpfile=scott.dmplogfile=scott.logtables=dept,emp3) 导出scott下除emp之外的表$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logEXCLUDE=TABLE:"='EMP'"Eg:Impdp serviceworks_0916DIRECTORY=dmp_dir DUMPFILE= expbizservice0916.dmp remap_schema=bizservice_0916:serviceworks_0916 EXCLUDE=INDEXEXCLUDE=REF_CONSTRAINT exclude=table_statistics LOGFILE=imp1_tab.log4) 导出scott下的存储过程$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logINCLUDE=PROCEDURE5) 导出scott下以'E'开头的表$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logINCLUDE=TABLE:"LIKE 'E%'" //可以改成NOT LIKE,就导出不以E开头的表6) 带QUERY导出$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logTABLES=EMP,DEPTQUERY=EMP:"where empno>=8000"QUERY=DEPT:"where deptno>=10 and deptno<=40"注: 处理这样带查询的多表导出, 如果多表之间有外健关联, 可能需要注意查询条件所筛选的数据是否符合这样的外健约束, 比如EMP中有一栏位是deptno, 是关联dept中的主键, 如果"where empno>=8000"中得出的deptno=50的话, 那么, 你的dept的条件"where deptno>=10 and deptno<=40"就不包含deptno=50的数据, 那么在导入的时候就会出现错误.Oracle10g 数据泵导出命令expdp 使用总结(二)1.1.2 expdp选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下: ATTACH=[schema_name.]job_nameschema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:expdp scott/tiger ATTACH=scott.export_job默认的job名称为:2. CONTENT该选项用于指定要导出的内容.默认值为ALL.语法如下:CONTENT={ALL | DATA_ONLY | METADATA_ONLY}当设置CONTENT为ALL 时,将导出对象定义及其所有数据; 为DATA_ONLY时,只导出对象数据; 为METADATA_ONLY时,只导出对象定义,示例如下:expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump CONTENT=METADATA_ONLY3. DIRECTORY指定转储文件和日志文件所在的目录.语法如下:DIRECTORY=directory_objectdirectory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录,示例如下: expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump建立目录:CREATE DIRECTORY dump as 'd:\dump';查询创建了那些子目录:SQL:\SELECT * FROM dba_directories;4. DUMPFILE用于指定转储文件的名称,默认名称为expdat.dmp.语法如下:DUMPFILE=[directory_object:]file_name[,….]directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象,示例如下: expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp5. ESTIMATE指定估算被导出表所占用磁盘空间的方法.默认值是BLOCKS.语法如下:EXTIMATE={BLOCKS | STATISTICS}设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间,示例如下:expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dump DUMPFILE=a.dump 一般情况下, 当用默认值(blocks)时, 日志中估计的文件大小会比实际expdp出来的文件大, 用statistics时会跟实际大小差不多.6. EXTIMATE_ONLY指定是否只估算导出作业所占用的磁盘空间,默认值为N.语法如下: EXTIMATE_ONLY={Y | N}设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作,示例如下:expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y7. EXCLUDE该选项用于指定执行操作时要排除的对象类型或相关对象.语法如下:EXCLUDE=object_type[:name_clause][,….]object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用,示例如下: expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW在EXPDP的帮助文件中, 可以看到存在EXCLUDE和INCLUDE参数, 这两个参数文档中介绍的命令格式存在问题, 正确用法是: EXCLUDE=OBJECT_TYPE[:name_clause][,...]INCLUDE=OBJECT_TYPE[:name_clause][,...]示例:expdp schema=scott exclude=sequence,table:"in('EMP','DEPT') "impdp schema=scott include=function,package,procedure,table :"='EMP'"有了这些还不够, 由于命令中包含了多个特殊字符, 在不同的操作系统下需要通过转义字符才能使上面的命令顺利执行,如:EXCLUDE=TABLE:\"IN('BIGTALE')\"8. FILESIZE指定导出文件的最大尺寸,默认为0(表示文件尺寸没有限制).9. FLASHBACK_SCN指定导出特定SCN时刻的表数据.语法如下:FLASHBACK_SCN=scn_valuescn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用,示例如下: expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=35852310. FLASHBACK_TIME指定导出特定时间点的表数据.语法如下:FLASHBACK_TIME="TO_TIMESTAMP(time_value)"示例如下:expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpFLASHBACK_TIME="TO_TIMESTAMP('2 5-08-2004 14:35:00','DD-MM-YYYY HH24:MI:SS')"11. FULL指定数据库模式导出,默认为N.语法如下:FULL={Y | N}为Y时,标识执行数据库导出.12. HELP指定是否显示EXPDP命令行选项的帮助信息,默认为N. 当设置为Y时,会显示导出选项的帮助信息,示例如下:expdp help=y13. INCLUDE指定导出时要包含的对象类型及相关对象.语法如下:INCLUDE=object_type[:name_clause][,… ]示例如下:expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp INCLUDE=triggerOracle10g 数据泵导出命令expdp 使用总结(三)1.1.2 expdp选项14. JOB_NAME指定要导出作用的名称,默认为SYS_XXX.语法如下:JOB_NAME=jobname_string示例如下:expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp INCLUDE=trigger JOB_NAME=exp_tr igger后面想临时停止expdp任务时可以按Ctrl+C组合键,退出当前交互模式,退出之后导出操作不会停止,这不同于Oracle以前的EXP. 以前的EXP,如果退出交互式模式,就会出错终止导出任务. 在 Oracle10g中,由于EXPDP是数据库内部定义的任务,已经与客户端无关. 退出交互之后,会进入export的命令行模式,此时支持 status等查看命令:Export> status如果想停止改任务,可以发出stop_job命令:Export> stop_job如果有命令行提示: "是否确实要停止此作业([Y]/N):" 或 "Are you sure you wish to stop this job ([yes]/no):", 回答应是yes 或者no, 回答是YES以后会退出当前的export界面.接下来可以通过命令行再次连接到这个任务:expdp test/test@acf attach=expfull通过start_job命令重新启动导出:Export> start_jobExport> status15. LOGFILE指定导出日志文件文件的名称,默认名称为export.log.语法如下: LOGFILE=[directory_object:]file_namedirectory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值,示例如下:expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log16. NETWORK_LINK指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项. expdp中使用连接字符串和network_link的区别:expdp属于服务端工具,而exp属于客户端工具,expdp生成的文件默认是存放在服务端的,而exp生成的文件是存放在客户端.expdp username/password@connect_string //对于使用这种格式来说,directory使用源数据库创建的,生成的文件存放在服务端。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.命令行打开sqlplus
sqlplus /nolog
conn / as sysdba
2.创建逻辑目录,该命令不会在操作系统创建真正的目录(最好手工先建好),最好以administrator等管理员创建。
create directory dir as 'd:\dump'; //dir名称可以随便命名 需要手工创建d:\dump
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dir;
4)按查询条件导
expdp scott/tiger@orcl directory=dir dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
3)导整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
6.还原数据
1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
3)IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。
数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.
5)按表空间导
expdp system/manager DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dir DUMPFILE=full.dmp FULL=y;
二、数据泵导出导入与传统导出导入的区别
在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项:
1)EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。
数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输
数据对象的机制。该实用程序可以使用以下命令进行调用:
示例: expdp scott/tigerDIRECTORY=dmpdir DUMPFILE=scott.dmp
您可以控制导出的运行方式。具体方法是: 在 'expdp' 命令后输入
总结:执行impdp时无需创建b用户,在导入时会自动创建并改名用户a为b(拥有a的所有权限等),自动设置默认表空间为转换后的表空间b。如果有多个表空间需要转换,则使用多个remap_tablespace=源:目标字段。
此种方法只限于支持oracle10g以上版本。
数据泵导入中table_statistics长时间等待问题
3)导入表空间
impdp system/manager DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=dir DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION
****************************************************************************************
或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字 说明 (默认)
--------------------------------------------------------------------------=a:b 将数据的tablespace 从a 转换为b
注意:如果oracle是10g的,要加参数 EXCLUDE=TABLE_STATISTICS 选项将 table_statistics 对象过滤。 否则会出现数据泵导入中table_statistics长时间等待、用impdp 导入,检查 table_statistics 时等待了N长时间
各种参数。要指定各参数, 请使用关键字:
格式: expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
示例: expdp scott/tigerDUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dir;
环境
windows2003SP2
oracle11gR1
使用expdp和impdp
LINUX环境(RHEL5)
oracle10g和oracle11g
使用expdp和impdp
1.命令行打开sqlplus
sqlplus /nolog
connect system/oracle
2.创建逻辑目录,该命令不会在操作系统创建真正的目录(最后手工先建好),最好以system等管理员创建。
grant read,write on directory dpdata1 to scott;
5.导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
*************************************************************************************
expdp/impdp 不同用户,不同表空间的使用
假设a用户的默认表空间是a,导出用户a所有数据:
SQL> conn / as sysdba
三、Expdp参数
EXPDP命令行选项,可通过expdp help=y查看:
E:\emp>expdp help=y
Export: Release 10.2.0.1.0- Production on 星期日, 03 5月, 2009 17:54:49
Copyright (c) 2003, 2005, Oracle. All rights reserved.
一、EXPDP和IMPDP使用说明
Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用
1)实现逻辑备份和逻辑恢复.
2)在数据库用户之间移动对象.
3)在数据库之间移动对象
4)实现表空间搬移.
$impdp system/oracle directory=dir dumpfile=data.dmp remap_tablespace=a:b remap_schema=a:b logfile=data.log
解释:
remap_schema=a:b 将数据的schema从a 转换为b
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
create directory dpdata1 as '/home/oracle/dump';
3.查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
4.给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
5、导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dir logfile=expdp.log
2)并行进程parallel
expdp scott/tiger@orcl directory=dir dumpfile=scott3.dmp parallel=40 job_name=scott3
用impdp 导入,检查 table_statistics 时等待了N长时间。
网上说这是oracle 10G impdp 的一个bug,命令中若定义了 remap_schema 项,也就是原用户名和导入的用户名不一致,则会有这个问题。