实例:使用expdpimpdp导入导出数据库
- 格式:docx
- 大小:34.42 KB
- 文档页数:14
使⽤imp和exp命令对Oracle数据库进⾏导⼊导出操作详解这⾥导⼊导出路径都在D盘下,默认⽂件名为:example.dmpexp⽅式导出数据相关参数项如下:关键字说明默认USERID⽤户名/⼝令FULL导出整个⽂件(N)BUFFER数据缓冲区的⼤⼩OWNER导出指定的所有者⽤户名列表FILE输出⽂件(EXPDAT.DMP)TABLES导出指定的表名列表COMPRESS是否压缩导出的⽂件(Y)RECORDLENGTH IO 记录的长度GRANTS导出权限(Y)INCTYPE增量导出类型INDEXES导出索引(Y)RECORD跟踪增量导出(Y)ROWS导出数据⾏(Y)PARFILE参数⽂件名CONSTRAINTS导出限制(Y)CONSISTENT交叉表⼀致性LOG屏幕输出的⽇志⽂件STATISTICS分析对象(ESTIMATE)DIRECT直接路径(N)TRIGGERS导出触发器(Y)FEEDBACK显⽰每 x ⾏ (0) 的进度FILESIZE各转储⽂件的最⼤尺⼨QUERY选定导出表⼦集的⼦句TRANSPORT_TABLESPACE导出可传输的表空间元数据(N)TABLESPACES导出指定的表空间列表1.完全导出(选项都为默认配置)例⼦:导出mydb数据库system⽤户,密码为123456的所有数据到D:\example.dmp⽂件中expsystem/**************.12.32/mydbfile=D:\example.dmp2.只导出表结构例⼦:导出mydb数据库system⽤户,密码为123456的所有表结构到D:\example.dmp⽂件中expsystem/**************.12.32/mydbfile=D:\example.dmprows=n3.将指定⽤户下的表导出例⼦:导出mydb数据库system和sys⽤户的所有表数据到D:\example.dmp⽂件中expsystem/**************.12.32/mydbfile=D:\example.dmpowner=(system,sys)4.将指定的表导出例⼦:导出mydb数据库system⽤户下的table1和table2表数据到D:\example.dmp⽂件中expsystem/**************.12.32/mydbfile=D:\example.dmptables=(table1,table2)imp⽅式导⼊数据相关参数项如下:关键字说明默认USERID⽤户名/⼝令FULL导⼊整个⽂件(N)BUFFER数据缓冲区⼤⼩FROMUSER所有⼈⽤户名列表FILE输⼊⽂件(EXPDAT.DMP)TOUSER⽤户名列表SHOW只列出⽂件内容(N)TABLES表名列表IGNORE忽略创建错误(N)RECORDLENGTH IO记录的长度GRANTS导⼊权限(Y)INCTYPE增量导⼊类型INDEXES导⼊索引(Y)COMMIT提交数组插⼊(N)ROWS导⼊数据⾏(Y)PARFILE参数⽂件名LOG屏幕输出的⽇志⽂件CONSTRAINTS导⼊限制(Y)DESTROY覆盖表空间数据⽂件(N)INDEXFILE将表/索引信息写⼊指定的⽂件SKIP_UNUSABLE_INDEXES跳过不可⽤索引的维护(N)FEEDBACK每 x ⾏显⽰进度TOID_NOVALIDATE跳过指定类型 ID 的验证FILESIZE每个转储⽂件的最⼤⼤⼩STATISTICS始终导⼊预计算的统计信息RESUMABLE在遇到有关空间的错误时挂起RESUMABLE_NAME⽤来标识可恢复语句的⽂本字符串RESUMABLE_TIMEOUT RESUMABLE 的等待时间COMPILE编译过程, 程序包和函数(Y)STREAMS_CONFIGURATION导⼊ Streams 的⼀般元数据(Y)STREAMS_INSTANITATION导⼊ Streams 的实例化元数据(N)TRANSPORT_TABLESPACE导⼊可传输的表空间元数据TABLESPACES将要传输到数据库的表空间DATAFILES将要传输到数据库的数据⽂件TTS_OWNERS拥有可传输表空间集中数据的⽤户1.导⼊⼀个完整的库例⼦:将D:\example.dmp⽂件中的库导⼊到mydb下的system⽤户中impsystem/**************.12.32/mydbfile=D:\example.dmpfull=yignore=y到此这篇关于使⽤imp和exp命令对Oracle数据库进⾏导⼊导出操作详解的⽂章就介绍到这了,更多相关Oracle数据库exp和imp 导⼊导出内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
使用expdpimpdp远程导入导出oracle数据使用expdp/impdp远程导入导出oracle数据2012-02-16 00:03:46| 分类: ORACLE | 标签: |字号大中小订阅Sql代码--进入sqlplus,先建立一个目录用来dump数据库create directory dump_test as 'F: uyi\dump' ;--查看一下是否存在该目录select * from dba_directories;--授权给操作用户这个dump目录的权限grant read, write on directory dump_test to xuyi;--PS:下面是在命令行执行而不是在sqlplus,而且注意如果版本不一致请注明对方版本,如不注明schemas的话则默认导出登陆用户的数据--导出:不能带分号结尾(Linux中需要切换到Oracle用户才能执行:su - oracle)expdp xuyi/password@dbName schemas=db_user directory=dump_test dumpfile=data.dmp version=11.1.0.6.0 --导入:不能带分号结尾impdp xuyi/password@dbName directory=dump_test dumpfile=data.dmp--想远程导入请使用NETWORK_LINK参数指定DB LINK,关于如何设置请参照如下文档:--/view/b67bfa06e87101f69e31953a.html --xuyi是远程服务名create database link link5 connect to scott identified by tiger using 'xuyi';--查看是否生效select * from global_name@link5;--xuyi/password为本地账号密码,而link5中包含远程服务器账号密码expdp xuyi/password network_link=link5 schemas=scott directory=dump_test dumpfile=data.dmp--进入sqlplus,先建立一个目录用来dump数据库create directory dump_test as 'F: uyi\dump' ;--查看一下是否存在该目录 select * from dba_directories;--授权给操作用户这个dump目录的权限 grant read, write on directory dump_test to xuyi;--PS:下面是在命令行执行而不是在sqlplus,而且注意如果版本不一致请注明对方版本,如不注明schemas的话则默认导出登陆用户的数据--导出:不能带分号结尾(Linux中需要切换到Oracle用户才能执行:su - oracle) expdp xuyi/password@dbName schemas=db_user directory=dump_test dumpfile=data.dmp version=11.1.0.6.0--导入:不能带分号结尾impdp xuyi/password@dbName directory=dump_test dumpfile=data.dmp--想远程导入请使用NETWORK_LINK参数指定DB LINK,关于如何设置请参照如下文档:--/view/b67bfa06e87101f69e31953a.html --xuyi是远程服务名create database link link5 connect to scott identified by tiger using 'xuyi';--查看是否生效 select * from global_name@link5;--xuyi/password为本地账号密码,而link5中包含远程服务器账号密码expdp xuyi/password network_link=link5 schemas=scott directory=dump_test dumpfile=data.dmpPS:如果expdp需要从高版本导出到低版本必须在高版本上加上version=低版本号这样低版本才能识别高版本的dmp文件也有可能权限会有问题,如下:Sql代码在利用NETWORK_LINK方式导出的时候,出现了这个错误。
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` 是导入日志文件的名称。
Oracle数据库文件中的导入\导出(imp/exp命令)Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录ora81BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
下面介绍的是导入导出的实例。
数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中exp system/manager@TEST file=d:daochu.dmp full=y2 将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)3 将数据库中的表inner_notify、notify_staff_relat导出exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmptables=(inner_notify,notify_staff_relat)4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面加上compress=y 来实现。
数据的导入1 将D:daochu.dmp 中的数据导入TEST数据库中。
expdp与impdp全库导出导⼊导⼊导出版本都是11.2.0.4由于ORACLE_HOME不同,需要⼿⼯建⽴表空间,如果知道源数据库⽤户及密码,建议⽤户也⼿⼯创建。
1、在源端查询创建的所有表空间及DDL语句SQL> set line 1000SQL> set pagesize 100SQL> set long 100000SQL> SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name) FROM DBA_TABLESPACES TS;DBMS_METADATA.GET_DDL('TABLESPACE',TS.TABLESPACE_NAME)--------------------------------------------------------------------------------CREATE TABLESPACE "SYSTEM" DATAFILE'/oradata1/ngbill/system01.dbf' SIZE 734003200AUTOEXTEND ON NEXT 10485760 MAXSIZE 32767MLOGGING ONLINE PERMANENT BLOCKSIZE 8192EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULTNOCOMPRESS SEGMENT SPACE MANAGEMENT MANUAL2、在⽬标端创建所有表空间3、在⽬标端创建所有⽤户4、在源端导出数据创建⽬录-->授予读写权限-->导出数据expdp system/oracle directory=yi dumpfile=20140101.dump full=y parallel=10 exclude=statistics logfile=20140101.log5、在⽬标端导⼊数据创建⽬录-->授予读写权限-->导⼊数据impdp system/oracle directory=yi dumpfile=20140101.dump full=y parallel=10 table_exists_action=truncate logfile=20140101.log6、最后根据报错信息,⼿动修正7、⽐对数据,进⾏修正后记:在11gRAC环境中导出数据时报错ORA-31617:unable to open dump file "/backup/20140101.dmp" for write.需要在expdp,impdp后⾯加上cluster=N后台运⾏ nohup expdp system/oracle@ng directory=dir dumpfile=bi.dump full=y exclude=statistics logfile=bi.log &转载⾃:/25462274/viewspace-2122616/。
Oracle使⽤expdb、impdb解决导出、导⼊时的⽤户修改、表空间修改变更问题对于Oracle的数据导出和导⼊,我们之前⼀直使⽤exp、imp来处理,但⽤imp在导⼊时经常会要求表空间⼀致,⽽博主今天恰恰就遇到了需要变更表空间和⽤户的情况,这在我们平常的业务场景中也会遇到,那么该如何处理呢?我们采⽤Oralce的 “数据泵” Data Dump来处理。
测试环境:Windows Server 2008 R2、Oracle11g⽬录1、数据泵(Data Dump)主要解决问题2、数据泵使⽤限制3、创建测试数据库4、导出源数据库5、导⼊⽬标数据库6、验证导⼊后表空间1、数据泵(Data Dump)主要解决问题①. ⽐imp/exp更加灵活,⽀持多种元数据过滤策略,多种导⼊、导出模式,如将A表空间B⽤户数据导⼊C表空间D⽤户下,则只需REMAP_SCHEMA即可②. 表空间占⽤和表空间变更问题,可使⽤REMAP_TABLESPACE来解决③. 空表问题,Oracle11g新的表并且表中⽆数据也为使⽤过则表的segment空间是不会分配的,这样在使⽤exp导出时空表便不会被导出,解决这个问题要么给空分配segment或直接使⽤expdp。
④. 效率问题。
普通情况下expdp/impdp⽐exp/imp效率要⾼,⾼多少博主没有测试,有兴趣的不妨验证下,@博主。
2、数据泵使⽤限制使⽤expdp、impdp有条件限制⼀是远程使⽤时必须配置好Database Link,因为expdp、impdp只能在服务端使⽤,不能再客户端使⽤;⼆是试⽤前要解决路径配置问题。
3、创建测试数据库创建源⽤户和表空间,为了便于操作我们给新创建⽤户授权的了dba权限,⼤家在本地使⽤时注意1. /*第1步:创建临时表空间 */2. create temporary tablespace test_source_temp3. tempfile 'D:\Oracle11g\oradata\test_source_temp.dbf'4. size 10m5. autoextend on6. next 1m maxsize unlimited7. extent management local;8.9. /*第2步:创建数据表空间 */10. create tablespace test_source11. logging12. datafile 'D:\Oracle11g\oradata\test_source.dbf'13. size 10m14. autoextend on15. next 1m maxsize unlimited16. extent management local;17.18. /*第3步:创建⽤户并指定表空间 */19. create user test_source identified by a12345620. default tablespace test_source21. temporary tablespace test_source_temp;22.23. /*第4步:给⽤户授予权限 */24. grant connect,resource,dba to test_source;创建两张测试表,⼀张基础数据类型,⼀张含clob、blob、date等复杂数据类型1. --表12. create table tab_13. (4. tab1_field1 number,5. tab1_field2 varchar2(20),6. tab1_field3 varchar2(10)9. insert into TAB_1 (tab1_field1, tab1_field2, tab1_field3) values (1, 'a12', 'a13');10. insert into TAB_1 (tab1_field1, tab1_field2, tab1_field3) values (2, '张22', '李23');11.12. --表213. create table TAB_214. (15. tab2_field1 NUMBER,16. tab2_field2 VARCHAR2(20),17. tab2_field3 DATE,18. tab2_field4 CLOB,19. tab2_field5 BLOB20. )21. --插⼊测试数据22. insert into TAB_2 (tab2_field1,tab2_field2,tab2_field3,tab2_field4,tab2_field5) values ('1','A12',SYSDATE,'测试1','C1');23. insert into TAB_2 (tab2_field1,tab2_field2,tab2_field3,tab2_field4,tab2_field5) values ('1','测试22',SYSDATE,'测试2','C2');24. insert into TAB_2 (tab2_field1,tab2_field2,tab2_field3,tab2_field4,tab2_field5) values ('1','嘿嘿32',SYSDATE,'测试3','C3');创建⽬标⽤户和表空间1. /*第1步:创建临时表空间 */2. create temporary tablespace test_target_temp3. tempfile 'D:\Oracle11g\oradata\test_target_temp.dbf'4. size 10m5. autoextend on6. next 1m maxsize unlimited7. extent management local;8.9. /*第2步:创建数据表空间 */10. create tablespace test_target11. logging12. datafile 'D:\Oracle11g\oradata\test_target.dbf'13. size 10m14. autoextend on15. next 1m maxsize unlimited16. extent management local;17.18. /*第3步:创建⽤户并指定表空间 */19. create user test_target identified by a12345620. default tablespace test_target21. temporary tablespace test_target_temp;22.23. /*第4步:给⽤户授予权限 */24. grant connect,resource,dba to test_target;4、导出源数据库这⾥需要注意:EXP和IMP是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。
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数据泵进⾏导出导⼊的⽅法⼀、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. //这个就是错误的信息。
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导入导出数据库1.创建数据导出权限的目录(注意oracle用户一定要有此目录的读写权限):SQL> create directory MY_DIR as '/home/dump';公司数据库都已经创建了对应的DIR目录,不建议继续创建新的,如有疑问可以联系我:可以使用以下命令查看数据库中是否存在DIR目录SQL> col DIRECTORY_PATH for a50;SQL> set linesize 150;SQL> select * from dba_directories;查看目录及权限--查看目录及权限SQL> SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;2.给该数据导出用户授予该目录的读写权限SQL> grant read,write on DIRECTORY MY_DIR to user_name;(其中user_name为用户名称,本示例中user_name为zdyw2)即:SQL> grant read,write on DIRECTORY MY_DIR to zdyw2;3.使用expdp导出源数据库expdp zdyw2/zdyw185test2 schemas=zdyw2 DIRECTORY=dir CONTENT=allDUMPFILE=zdywyf20121109_2.dmp logfile=zdywyf_exp20121109_2.log其中:1、zdyw2为导出数据库的用户,zdyw185test2为导出数据库的密码;2、schemas为导出的用户的schemas,普通请款下为该用户名称;3、Direcotry,DIR为导出文件的存放目录,此目录需要zdyw2有对应的操作权限,4、zdywyf20121109_2.dmp为导出的文件名称,5、zdywyf_exp20121109_2.log为导出的日志名称。
备注:1、directory=dir_dp必须放在前面,如果将其放置最后,会提示ORA-39002: 操作无效ORA-39070: 无法打开日志文件。
ORA-39087: 目录名DATA_PUMP_DIR; 无效2、在导出过程中,DATA DUMP 创建并使用了一个名为SYS_EXPORT_SCHEMA_01的对象,此对象就是DATA DUMP导出过程中所用的JOB名字,如果在执行这个命令时如果没有指定导出的JOB名字那么就会产生一个默认的JOB名字,如果在导出过程中指定JOB名字就为以指定名字出现如下改成:expdp lttfm/lttfm@fgisdb schemas=lttfm directory=dir_dp dumpfile =expdp_test1.dmplogfile=expdp_test1.log,job_name=my_job1;3、导出语句后面不要有分号,否则如上的导出语句中的job表名为‘my_job1;’,而不是my_job1。
因此导致expdp lttfm/lttfm attach=lttfm.my_job1执行该命令时一直提示找不到job表4、创建的目录一定要在数据库所在的机器上。
否则也是提示:ORA-39002: 操作无效ORA-39070: 无法打开日志文件。
ORA-39087: 目录名DATA_PUMP_DIR; 无效导出的相关命令使用:1)Ctrl+C组合键:在执行过程中,可以按Ctrl+C组合键退出当前交互模式,退出之后,导出操作不会停止2)Export> status --查看当前JOB的状态及相关信息3)Export> stop_job --暂停JOB(暂停job后会退出expor模式)4)重新进入export模式下:C:\Documents and Settings\Administrator>expdp lttfm/lttfmattach=lttfm.my_job1 --语句后面不带分号5)Export> start_job --打开暂停的JOB(并未开始重新执行)6)Export> continue_client --通过此命令重新启动"LTTFM"."MY_JOB":7)Export> kill_job --取消当前的JOB并释放相关客户会话(将job删除同时删除dmp文件)8)Export> exit_client --通过此命令退出export模式(通过4)可再进入export模式下)注:导出完成后job自动卸载数据泵导出的各种模式:4.将导出的数据文件拷贝到想导入的数据库中方法略:5.在目标数据库上创建据导出权限的目录(注意oracle用户一定要有此目录的读写权限):SQL> create directory MY_DIR as '/home/dump';普通情况下公司数据库都已经创建了对应的DIR目录,不建议继续创建新的:可以使用以下命令查看数据库中是否存在DIR目录SQL> col DIRECTORY_PATH for a50;SQL> set linesize 150;SQL> select * from dba_directories;6.在目标数据库中创建对应的用户在目标数据库上创建一个zdyw3用户,密码为zdyw3 默认表空间为ZYXTDBLN ,并且给用户授权。
create ZYXTDBLN odstest datafile '/data/oradata/ORCL/ZYXTDBLN.dbf' size 4G autoextend on maxsize 10G uniform size 2m segment space management auto;create user zdyw3 identified by zdyw3 account unlock default tablespace ZYXTDBLN quota unlimited on ZYXTDBLN ;grant connect,resource to zdyw3 ;grant read,write on DIRECTORY MY_DIR to zdyw2;7.使用impdp导入用户数据将数据导入到目标数据库的新帐号zdyw3中,后面会提示输入用户名和密码。
impdp zdyw3/ zdyw3 DUMPFILE=zdywyf20121109_2.dmp SCHEMAS=zdyw3 logfile=zdyw3_imp.log DIRECTORY=MY_DIR exclude=statistics TABLE_EXISTS_ACTION=REPLACEremap_schema=zdyw2:zdyw3 remap_tablespace=ZDYW2:ZYXTDBLN transform=OID:N &其中:1、zdywyf20121109_2.dmp为导入的文件名称,2、schemas为元数据文件的用户名,3、zdyw3imp.log为日志文件,4、MY_DIR为导入的目录5、remap_schema=zdyw2:zdyw36、将源数据库中zdyw2的下的数据导入到目标数据库zdyw3用户下7、remap_tablespace=ZDYW2:ZYXTDBLN,源数据库的表空间为ZDYW2,目标数据库的表空间为ZYXTDBLN,如果有多个表空间,可以使用“,”隔开,如:remap_tablespace=ZDYW2:ZYXTDBLN,ZDYW3:ZYXTDBLN8.数据导入检查可以使用以下命令在源数据库、目标数据库中检查是对应的对象的大小,数据文件的大小,来检查数据导入导出是否成功(修改owner就行)。
如此命令可以使用:SQL> select owner,SEGMENT_TYPE,sum(BYTES)/1024/1024 as SIZE_M from dba_segments whereowner=' zdyw3' group by owner,SEGMENT_TYPE;SQL> select owner,SEGMENT_TYPE,sum(BYTES)/1024/1024 as SIZE_M from dba_segments where owner=' zdyw2' group by owner,SEGMENT_TYPE;附录:其他命令导出数据1)按用户导expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;2)并行进程parallelexpdp scott/tiger@orc ldirectory=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.dmpTABLESPACES=temp,example;6)导整个数据库expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;7)只导出对象定义举例:(只导表结构)expdp u1/u1@orcl DIRECTORY=MY_DIR CONTENT=METADATA_ONLYDUMPFILE=u1_metadata_20120701.dmp schemas=u1 logfile=u1.log8)表模式导出举例:导表数据(导出test表数据)expdp u1/u1@orcl DIRECTORY=MY_DIR tables=test dumpfile =u1_test.dmp logfile= u1_test.log9)Include导出用户中指定类型的指定对象--仅导出lttfm用户下以B开头的所有表,包含与表相关的索引,备注等。