当前位置:文档之家› 实例:使用expdpimpdp导入导出数据库

实例:使用expdpimpdp导入导出数据库

实例:使用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开头的所有表,包含与表相关的索引,备注等。

相关主题