数据泵用法详解
ORACLE数据泵使用详解
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';
expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dir;
环境
windows2003SP2
oracle11gR1
使用exp作系统中是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
4.给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dir to scott;
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;
Oracle数据泵的使用
Oracle数据泵的使用几乎所有DBA都熟悉oracle的导出和导入实用程序,它们将数据装载进或卸载出数据库,在oracle database 10g和11g中,你必须使用更通用更强大的数据泵导出和导入(Data P ump Export and Import)实用程序导出和导入数据。
以前的导出和导入实用程序在oracle database 11g中仍然可以使用,但是Oracle强烈建议使用数据泵(Data Pump)技术,因为它提供了更多的高级特性。
例如:●你可以中断导出/导入作业,然后恢复它们;●可以重新启动已失败的导出和导入作业;●可以重映射对象属性以修改对象;●可以容易地从另一个会话中监控数据泵的作业,甚至可以在作业过程中修改其属性;●使用并行技术很容易快速移动大量的数据;●因为oracle提供了针对数据泵技术的API,所以可以容易地在PL/SQL程序中包含导出/导入作业;●可以使用更强大的可移植表空间特性来快速移植大量的数据,甚至可在不同操作系统平台之间移动。
与旧的导出和导入实用程序不同,数据泵程序有一组可以在命令行中使用的参数以及一组只能以交互方式使用的特殊命令,你可以通过在命令行中输入expdp help = y或者impdp help = y快速获取所有数据泵参数及命令的概述一.数据泵技术的优点原有的导出和导入技术基于客户机,而数据泵技术基于服务器。
默认所有的转储,日志和其他文件都建立在服务器上。
以下是数据泵技术的主要优点:1.改进了性能2.重新启动作业的能力3.并行执行的能力4.关联运行作业的能力5.估算空间需求的能力6.操作的网格方式7.细粒度数据导入功能8.重映射能力二.数据泵导出和导入的用途1.将数据从开发环境转到测试环境或产品环境2.在不同的操作系统平台上的oracle数据库直接的传递数据3.在修改重要表之前进行备份4.备份数据库5.把数据库对象从一个表空间移动到另一个表空间6.在数据库直接移植表空间7.提取表或其他对象的DDL注意:数据库不建立完备的备份,因为在导出文件中没有灾难发生时的最新数据。
02.oracle数据库10g中的数据泵
可以通过ESTIMATE参数根据分配的块(默认)或统计信息(如 果提供)进行空间估计 通过FLASHBACK_TIME参数可以将某一时刻的一致性数据取出
版权所有(2005~2008) eygle
数据泵的任务方式
在数据泵中有一种特殊的运行方式——任务方式 导出或者导入不再仅仅作为一个动作,而是作为一种任务来运行 和管理 任务进度记录在一个“主表”中 任务可以显式的进行控制,可以随时暂停,也可以在以后重新开 始,或者放在后台自动运行 异常终止的作业也可以重新启动
单线程数据卸载:1.5-2X exp 单线程数据加载: 15X-40X imp 需要维护索引:4-10X imp
版权所有(2005~2008) eygle
数据泵的导出和导入调用
数据泵可以使用客户端工具expdp导出,使用impdp导入,可以 在下面几种方式中调用:
版权所有(2005~2008) eygle
数据泵的选项——精确的对象选择
数据泵在导入或者导出时,可以选择其中的一部分对象来处理 可以从所选择的模式中通过下面的选项进一步选取对象:
Exclude:从选择的模式中排除指定的对象 Include:只包含指定的对象,例如,只包含特定的程序包、函数、视图…
数据泵禁止同时使用两者 这两种选项都可以使用可选的名称过滤器,以获得甚至更高的细 粒度,例如:
INCLUDE PACKAGE: “LIKE ‘EXPLO%’ “ EXCLUDE TABLE: “IN (‘EMP’,’DEPT’, … )’ “
版权所有(2005~2008) eygle
版权所有(2005~2008) eygle
数据泵的优势
oracle数据泵参数
oracle数据泵参数Oracle数据泵是Oracle数据库中的重要工具之一,它可以将数据库中的数据和对象导出到文件中,也可以将文件中的数据和对象导入到数据库中。
在使用数据泵时,需要指定一些参数,以便正确地执行数据泵操作。
本文将介绍Oracle数据泵中常用的参数及其作用。
1. DIRECTORYDIRECTORY参数用于指定数据泵操作中使用的目录对象。
目录对象是一个指向操作系统中的目录的对象,它允许Oracle数据库操作系统文件系统中的文件。
2. DUMPFILEDUMPFILE参数用于指定导出数据的文件名。
通常情况下,导出的数据会被保存为一个或多个文件,该参数指定这些文件的名称和位置。
3. LOGFILELOGFILE参数用于指定数据泵操作的日志文件名。
日志文件包含有关导入或导出操作的详细信息,包括错误和警告信息。
4. CONTENTCONTENT参数用于指定导出的内容类型。
可以选择导出整个数据库、一个或多个表、一个或多个分区或特定类型的对象。
5. SCHEMASSCHEMAS参数用于指定要导出的模式。
可以选择导出整个数据库或指定一个或多个模式。
6. TABLESTABLES参数用于指定要导出的表。
可以选择导出整个模式或指定一个或多个表。
7. INCLUDEINCLUDE参数用于指定要包含在导出的对象中的对象类型。
可以选择导出表、索引、约束、触发器、视图等对象类型。
8. EXCLUDEEXCLUDE参数用于指定要从导出中排除的对象类型。
可以选择排除表、索引、约束、触发器、视图等对象类型。
9. NETWORK_LINKNETWORK_LINK参数用于指定在导出或导入数据时使用的数据库链接。
这允许从另一个数据库中导出数据,而无需在本地创建中间文件。
10. FLASHBACK_TIMEFLASHBACK_TIME参数用于指定要导出的数据的时间点。
该参数允许您导出指定时间点之前的数据,而不是当前的数据。
Docker-Oracle数据泵
Docker-Oracle数据泵Oracle总结1.概念,用户,表空间,表,用户拥有表空间,表空间可以有多个用户,表存在与表空间中2.给用户指定表空间--修改用户的表空间alter user username default tablespace userspace;--创建用户时给用户创建表空间create user username identified by userpassword default tablespace userspace;3.查看用户拥有的表空间select default_tablespace from dba_users where username='用户名'4.表空间拥有大小可以用以下命令查看表还有多少空间SELECT a.tablespace_name "表空间名",total "表空间大小",free "表空间剩余大小",(total - free) "表空间使用大小",total / (1024 * 1024 * 1024) "表空间大小(G)",free / (1024 * 1024 * 1024) "表空间剩余大小(G)",(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",round((total - free) / total, 4) * 100 "使用率 %"FROM (SELECT tablespace_name, SUM(bytes) freeFROM dba_free_spaceGROUP BY tablespace_name) a,(SELECT tablespace_name, SUM(bytes) totalFROM dba_data_filesGROUP BY tablespace_name) b5.表空间可以扩容(对已有的表进行扩容)sqlplus / as sysdba--执行alter tablespace 表名add datafile '/data/oradbs/表名.dbf' size 4000m;6.Oracle导入导出数据如果数据量大,要使用数据泵,不然导入导出数据很花时间,按照以下命令进行数据的数据泵导出(服务端操作)数据泵文件导出创建数据泵导出数据路径进入数据库sqlplus /nolog以sysdba连接数据库connect /as sysdba创建数据泵文件的导出目录data_dir 可以自己命令,只要和下面的命令中directory保持一直即可create directory data_dir as 'E:\ora\data' ;执行该命令时需要退出数据库directory=【data_dir】要和上面创建目录时directory后面的名称一致expdp 用户名/密码@服务名schemas=用户名dumpfile=expdp.dmp directory=data_dir logfile=expdp.logexpdp [为用户名]/[密码]@[服务名]schemas=[为用户名]dumpfile=[导出数据库文件(可自命名)]directory=[目录名]logfile=[日志文件文件名(可自命名)]命令结束不需要加“;”•数据泵文件导入数据导入准备工作:在本地创建一个存放数据泵文件的路径linux系统为例:/usr/oracle同时将该文件的所属组和用户修改chown oracle:oinstall /usr/oracle如果进入容器后的默认用户没有修改文件的权限,切换到root用户修改su root管理员密码根据自己情况而定,我的容器的密码是helowin进入Docker的Oracle容器docker exec -it 容器名 /bin/bash进入容器后连接oraclesqlplus /nologconnect /as sysdba然后在oracle服务端中创建读取数据泵文件的路径,这些路径都要保持一致data_dirs(这个是创建的列明),【data_dirs】这个可以随意命名,比如【data_dirssss】,只要和接下来的sql语句中的相关字段保持一致即可,即括号前面标注的地方create directory data_dir as '/usr/oracle' ;data_dirs(跟上面名字保持一致),例子【data_dirssss】//给用户读写目录的权限Grant read,write on directory data_dir to 数据库用户名;data_dirs同理上面,例子【data_dirssss】创建数据泵文件所在文件,之后需要将数据泵文件放在该目录下create directory data_dirs as '\usr\oracle' ;数据泵文件导入directory 后面的【data_dirs】跟上面命名的要一致,例子【data_dirssss】impdp OASS1/OASS1@HELOWIN REMAP_SCHEMA = oass1:OASS1 table_exists_action = replace directory=data_dir dumpfile=EXPDP.DMP logfile=expdp.logimpdp [用户名]/[密码]@[服务名]REMAP_SCHEMA=[源用户名1]:[目标用户名2]table_exists_action=replace /存在的表动作(覆盖)/directory=[目录名]dumpfile=[.dmp文件名]logfile=[.log文件名]7.导入过程中可能存在字符集不同的异常,下面的命令可以将字符集统一oracle_11g编码修改SQL>SHUTDOWN IMMEDIATE;SQL>STARTUP MOUNT;SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;SQL>ALTER DATABASE OPEN;SQL> ALTER DATABASE CHARACTER SET ZHS16GBK ;SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;SQL>SHUTDOWN IMMEDIATE;SQL>STARTUP;。
oralce10g数据泵技术讲解
认识数据泵
数据泵技术相对应的工具是Data Pump Export和Data Pump Import。它的功 能与EXP和IMP类似,不过功能和效率差异巨大,或者说基本没什么相似的地 方,并且EXP生成的dump文件与EXPDP生成的dump文件也不兼容。 下面列举data pump的主要特性(包括单不限于) 支持并行处理导入、导出任务 支持暂停和重新导入、导出任务 支持通过database link方式导出或导入远端数据库中对象 支持在导入时通过REMAP_SCHEMA、REMAP_DATAFILE、 REMAP_TABLESPACE几个参数实现导入过程中自动修改对象属主、 数据文件或所在表空间 导入、导出时提供了非常细粒度的对象控制。IMP/EXP时最多控制是 否导入索引、约束、授权信息等有限的对象类型,而在Dta Pump中不 仅可以精确到对象类型,通过INCLUDE或EXCLUDE两个参数,甚至 可以详细指定是否包含或不包含某个对象。 服务端的工具
调用方式2 调用方式
[oracle@sure datapumptest]$ more test1.par DIRECTORY=DUMP_FILE_DIR DUMPFILE=test1.dmp LOGFILE=test1.log TABLES=(JOBS,EMPLOYEES)
调用方式2 调用方式
[oracle@sure datapumptest]$ expdp hr/hr parfile=test1.par Export: Release 10.2.0.1.0 - Production on Tuesday, 19 October, 2010 16:14:52 Copyright (c) 2003, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options Starting "HR"."SYS_EXPORT_TABLE_01": hr/******** parfile=test1.par 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 Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type TABLE_EXPORT/TABLE/COMMENT Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Processing object type TABLE_EXPORT/TABLE/TRIGGER Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS . . exported "HR"."EMPLOYEES" 15.76 KB 107 rows . . exported "HR"."JOBS" 6.609 KB 19 rows Master table "HR"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded ****************************************************************************** Dump file set for HR.SYS_EXPORT_TABLE_01 is: /home/oracle/datapumptest/test1.dmp Job "HR"."SYS_EXPORT_TABLE_01" successfully completed at 16:15:07
数据泵使用总结
数据泵使用总结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使用源数据库创建的,生成的文件存放在服务端。
解析Navicat for Oracle数据泵
解析Navicat for Oracle数据泵
Oracle 数据泵技术可从一个数据库高速移动数据和元数据到另一个数据库,它包括两个实用工具:数据泵导出和数据泵导入。
在使用服务器对象时,应该创建并打开一个连接。
创建用户帐号时,可同时创建那个用户的模式。
本教程Navicat官网将介绍Navicat for Oracle数据泵的基本知识。
模式是一个用户创建数据库对象(例如表、视图、触发器、等)的逻辑容器。
模式名是和用户名一样,可以明确指出用户拥有的对象。
其他用户模式显示在“模式”下面。
提示:Oracle 视非引号的对象识别符为大写。
在 Navicat中,全部对象识别符将加引号。
也就是说,Navicat 确切地保存所输入的内容。
数据泵导出用于卸载数据和元数据到一组操作系统文件名为转储文件集,是一种实用工具。
转储文件集只能用数据泵导入工具导入,转储文件集可以在相同的系统上导入或可以移动到另一个系统并加载。
数据泵导入用于加载导出转储文件集到目标系统,是一种实用工具。
转储文件集是由一个或多个磁盘文件构成,包含表数据、数据库对象元数据和控制信息。
文件是用一个专有的二进制格式写成,导入作业期间,数据泵导入工具在转储文件集使用这些文件定位每个数据库对象。
点击“数据泵”按钮,即可打开数据泵对象列表。
可以改变转储文件集的目录,在对象列表的任何地方右击并在弹出菜单中选择“改变目录”,需要注意的是,支持Oracle 10g 或以上版本,数据泵需要SYSDBA 角色,以及转储文件集是保存在服务器上。
数据泵详解及案例
数据泵详解及案例北京神州泰岳软件股份有限公司2011年5月12日文档属性文档变更文档送呈目录1前言 (5)2准备工作 (6)3导出常见需求案例 (7)3.1全库导出 (7)3.1.1全库导出最简写法 (7)3.1.2全库并行导出到多个文件 (7)3.1.3全库导出到多个路径 (7)3.2按schema导出 (8)3.3按表导出 (8)3.3.1导出普通表 (8)3.3.2导出表分区 (8)3.4导出表空间 (9)3.5部分导出(EXCLUDE与INCLUDE) (9)3.5.1屏蔽部分schema (9)3.5.2屏蔽部分对象 (9)3.5.3屏蔽统计信息 (10)3.5.4INCLUDE对象 (10)3.6带查询条件导出(QUERY) (10)3.7估算导出数据大小 (10)3.8只导出元数据或数据 (11)3.9其他可选参数 (11)3.9.1JOB_NAME参数 (11)3.9.2LOGFILE参数 (11)3.9.3VERSION参数 (11)3.9.4STA TUS参数 (12)3.9.5PARFILE参数 (12)3.9.6SAMPLE参数 (12)4导入常见需求案例 (13)4.1导入到不同SCHEMA中 (13)4.2导入到不同表空间中 (13)4.3将元数据以sql形式写入文本文件 (14)4.4导入时使用新存储属性 (14)4.5导入表存在时的处理 (14)5管理维护任务 (15)6重建数据泵工具 (17)1 前言Oracle 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使用说明EXPDP和IMPDP使用说明Oracle Database g引入了最新的数据泵(Data Dump)技术使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中数据泵导出导入(EXPDP和IMPDP)的作用实现逻辑备份和逻辑恢复在数据库用户之间移动对象在数据库之间移动对象实现表空间搬移数据泵导出导入与传统导出导入的区别在 g之前传统的导出和导入分别使用EXP工具和IMP工具从 g 开始不仅保留了原有的EXP和IMP工具还提供了数据泵导出导入工具EXPDP和IMPDP 使用EXPDP和IMPDP时应该注意的事项;EXP和IMP是客户段工具程序它们既可以在可以客户端使用也可以在服务端使用EXPDP和IMPDP是服务端的工具程序他们只能在ORACLE服务端使用不能在客户端使用IMP只适用于EXP导出文件不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件而不适用于EXP导出文件数据泵导出包括导出表导出方案导出表空间导出数据库种方式EXPDP命令行选项ATTACH该选项用于在客户会话与已存在导出作用之间建立关联语法如下ATTACH=[schema_name ]job_nameSchema_name用于指定方案名job_name用于指定导出作业名注意如果使用ATTACH选项在命令行除了连接字符串和ATTACH选项外不能指定任何其他选项示例如下:Expdp scott/tiger ATTACH=scott export_jobCONTENT该选项用于指定要导出的内容默认值为ALLCONTENT={ALL | DATA_ONLY | METADATA_ONLY}当设置CONTENT为ALL 时将导出对象定义及其所有数据为DATA_ONLY时只导出对象数据为METADATA_ONLY时只导出对象定义Expdp scott/tiger DIRECTORY=dump DUMPFILE=a dumpCONTENT=METADATA_ONLYDIRECTORY指定转储文件和日志文件所在的目录DIRECTORY=directory_objectDirectory_object用于指定目录对象名称需要注意目录对象是使用CREATE DIRECTORY语句建立的对象而不是OS 目录Expdp scott/tiger DIRECTORY=dump DUMPFILE=a dump建立目录:CREATE DIRECTORY dump as d:dump ;查询创建了那些子目录:SELECT * FROM dba_directories;DUMPFILE用于指定转储文件的名称默认名称为expdat dmpDUMPFILE=[directory_object:]file_name [ … ]Directory_object用于指定目录对象名file_name用于指定转储文件名需要注意如果不指定directory_object 导出工具会自动使用DIRECTORY选项指定的目录对象Expdp scott/tiger DIRECTORY=dump DUMPFILE=dump :a dmpESTIMATE指定估算被导出表所占用磁盘空间分方法默认值是BLOCKSEXTIMATE={BLOCKS | STATISTICS}设置为BLOCKS时 oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间设置为STATISTICS时根据最近统计值估算对象占用空间Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICSDIRECTORY=dump DUMPFILE=a dumpEXTIMATE_ONLY指定是否只估算导出作业所占用的磁盘空间默认值为NEXTIMATE_ONLY={Y | N}设置为Y时导出作用只估算对象所占用的磁盘空间而不会执行导出作业为N时不仅估算对象所占用的磁盘空间还会执行导出操作Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=yEXCLUDE该选项用于指定执行操作时释放要排除对象类型或相关对象EXCLUDE=object_type[:name_clause] [ … ]Object_type用于指定要排除的对象类型name_clause用于指定要排除的具体对象 EXCLUDE和INCLUDE不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a dup EXCLUDE=VIEWFILESIZE指定导出文件的最大尺寸默认为 (表示文件尺寸没有限制)FLASHBACK_SCN指定导出特定SCN时刻的表数据FLASHBACK_SCN=scn_valueScn_value用于标识SCN值FLASHBACK_SCN和FLASHBACK_TIME不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a dmpFLASHBACK_SCN=FLASHBACK_TIME指定导出特定时间点的表数据FLASHBACK_TIME= TO_TIMESTAMP(time_value)Expdp scott/tiger DIRECTORY=dump DUMPFILE=a dmpFLASHBACK_TIME=TO_TIMESTAMP( : : DD MM YYYY HH :MI:SS )FULL指定数据库模式导出默认为NFULL={Y | N}为Y时标识执行数据库导出HELP指定是否显示EXPDP命令行选项的帮助信息默认为N当设置为Y时会显示导出选项的帮助信息Expdp help=yINCLUDE指定导出时要包含的对象类型及相关对象INCLUDE = object_type[:name_clause] [ … ]JOB_NAME指定要导出作用的名称默认为SYS_XXXJOB_NAME=jobname_stringLOGFILE指定导出日志文件文件的名称默认名称为export logLOGFILE=[directory_object:]file_nameDirectory_object用于指定目录对象名称file_name用于指定导出日志文件名如果不指定directory_object 导出作用会自动使用DIRECTORY的相应选项值Expdp scott/tiger DIRECTORY=dump DUMPFILE=a dmp logfile=a logNEORK_LINK指定数据库链名如果要将远程数据库对象导出到本地例程的转储文件中必须设置该选项NOLOGFILE该选项用于指定禁止生成导出日志文件默认值为NPARALLEL指定执行导出操作的并行进程个数默认值为PARFILE指定导出参数文件的名称PARFILE=[directory_path] file_nameQUERY用于指定过滤导出数据的where条件QUERY=[schema ] [table_name:] query_clauseSchema用于指定方案名table_name用于指定表名query_clause用于指定条件限制子句QUERY选项不能与CONNECT=METADATA_ONLY EXTIMATE_ONLY TRANSPORT_TABLESPACES等选项同时使用Expdp scott/tiger directory=dump dumpfiel=a dmpTables=emp query= WHERE deptno=SCHEMAS该方案用于指定执行方案模式导出默认为当前用户方案STATUS指定显示导出作用进程的详细状态默认值为TABLES指定表模式导出TABLES=[schema_name ]table_name[:partition_name][ …]Schema_name用于指定方案名table_name用于指定导出的表名 partition_name用于指定要导出的分区名TABLESPACES指定要导出表空间列表TRANSPORT_FULL_CHECK该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式默认为N当设置为Y时导出作用会检查表空间直接的完整关联关系如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移将显示错误信息当设置为N时导出作用只检查单端依赖如果搬移索引所在表空间但未搬移表所在表空间将显示出错信息如果搬移表所在表空间未搬移索引所在表空间则不会显示错误信息TRANSPORT_TABLESPACES指定执行表空间模式导出VERSION指定被导出对象的数据库版本默认值为PATIBLEVERSION={PATIBLE | LATEST | version_string}为PATIBLE时会根据初始化参数PATIBLE生成对象元数据;为LATEST时会根据数据库的实际版本生成对象元数据version_string 用于指定数据库版本字符串调用EXPDP使用EXPDP工具时其转储文件只能被存放在DIRECTORY对象对应的OS目录中而不能直接指定转储文件所在的OS目录因此使用EXPDP工具时必须首先建立DIRECTORY对象并且需要为数据库用户授予使用DIRECTORY对象权限CREATE DIRECTORY dump dir AS D:DUMP ;GRANT READ WIRTE ON DIRECTORY dump_dir TO scott;导出表Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab dmp TABLES=dept emp导出方案Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema dmpSCHEMAS=system scott导出表空间Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace dmpTABLESPACES=user user导出数据库Expdp system/manager DIRECTORY=dump_dirDUMPFILE=full dmp FULL=Y使用IMPDPIMPDP命令行选项与EXPDP有很多相同的不同的有:REMAP_DATAFILE该选项用于将源数据文件名转变为目标数据文件名在不同平台之间搬移表空间时可能需要该选项REMAP_DATAFIEL=source_datafie:target_datafileREMAP_SCHEMA该选项用于将源方案的所有对象装载到目标方案中REMAP_SCHEMA=source_schema:target_schemaREMAP_TABLESPACE将源表空间的所有对象导入到目标表空间中REMAP_TABLESPACE=source_tablespace:target:tablespace REUSE_DATAFILES该选项指定建立表空间时是否覆蓋已存在的数据文件默认为NREUSE_DATAFIELS={Y | N}SKIP_UNUSABLE_INDEXES指定导入是是否跳过不可使用的索引默认为NSQLFILE指定将导入要指定的索引DDL操作写入到SQL脚本中SQLFILE=[directory_object:]file_nameImpdp scott/tiger DIRECTORY=dump DUMPFILE=tab dmp SQLFILE=a sqlSTREAMS_CONFIGURATION指定是否导入流元数据(Stream Matadata) 默认值为YTABLE_EXISTS_ACTION该选项用于指定当表已经存在时导入作业要执行的操作默认为SKIPTABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }当设置该选项为SKIP时导入作业会跳过已存在表处理下一个对象;当设置为APPEND时会追加数据为TRUNCATE时导入作业会截断表然后为其追加新数据;当设置为REPLACE时导入作业会删除已存在表重建表病追加数据注意TRUNCATE选项不适用与簇表和NEORK_LINK选项TRANSFORM该选项用于指定是否修改建立对象的DDL语句TRANSFORM=transform_name:value[:object_type]Transform_name用于指定转换名其中SEGMENT_ATTRIBUTES 用于标识段属性(物理属性存储属性表空间日志等信息) STORAGE用于标识段存储属性VALUE用于指定是否包含段属性或段存储属性object_type用于指定对象类型Impdp scott/tiger directory=dump dumpfile=tab dmpTransform=segment_attributes:n:tableTRANSPORT_DATAFILES该选项用于指定搬移空间时要被导入到目标数据库的数据文件TRANSPORT_DATAFILE=datafile_nameDatafile_name用于指定被复制到目标数据库的数据文件Impdp system/manager DIRECTORY=dump DUMPFILE=tts dmpTRANSPORT_DATAFILES= /user /data/tbs f调用IMPDP导入表Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab dmpTABLES=dept empImpdp system/manage DIRECTORY=dump_dir DUMPFILE=tab dmpTABLES=scott dept scott emp REMAP_SCHEMA=SCOTT:SYSTEM第一种方法表示将DEPT和EMP表导入到SCOTT方案中第二种方法表示将DEPT和EMP表导入的SYSTEM方案中注意如果要将表导入到其他方案中必须指定REMAP SCHEMA选项导入方案Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema dmpSCHEMAS=scottImpdp system/manager DIRECTORY=dump_dir DUMPFILE=schema dmpSCHEMAS=scott REMAP_SCHEMA=scott:system导入表空间Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace dmpTABLESPACES=user导入数据库lishixinzhi/Article/program/Oracle/201311/16758。
数据泵导入建表
数据泵导入建表数据泵是Oracle数据库中的一个重要工具,通过该工具可以将数据从一个数据库传输到另一个数据库,同时还可以通过数据泵将数据库中的数据导出,并保存为一个文件,以备日后使用。
数据泵还可以被用来对表进行导入、导出和重建等操作。
在这篇文章中,我们将介绍如何使用数据泵导入建表。
步骤一:导出数据文件在进行数据导入之前,我们需要先将数据从源数据库导出。
可以使用数据泵的expdp命令将数据导出为一个dump文件。
例如,通过以下命令将指定的数据导出到个人电脑的F盘根目录:expdp system/oracle@orcl schemas=scottdumpfile=f:\scott.dmp其中,system/oracle是登录源数据库的用户名和密码;orcl是源数据库的服务名,schemas参数指定了要导出的Schema;dumpfile 指定了dump文件的保存路径和文件名。
步骤二:创建目录导出数据后,我们需要使用Oracle的SQL命令创建一个导入目录,以便在接下来的步骤中使用。
例如:SQL> create directory imp_dir as 'f:\';其中,imp_dir是导入目录的名称,f:\是导出的dump文件的保存路径。
步骤三:导入数据一旦目录被创建之后,我们就可以使用数据泵的impdp命令将数据导入到目标数据库中。
例如:impdp system/oracle@orcl directory=imp_dirdumpfile=scott.dmp schemas=scott remap_schema=scott:scott1 在此命令中,system/oracle是目标数据库的用户名和密码;orcl是目标数据库的服务名;directory指定了导入目录的名称;dumpfile指定了导出的dump文件的名称;schemas参数指定了要导入的schema;remap_schema参数可以让我们将导出时原本的schema名称修改为新的名称。
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 必须是命令行中的第一个参数。
使用Oracle 10g数据泵使用详解
使用Oracle 10g数据泵(EXPDP/IMPDP)一、关于数据泵的概述在Oracle 10g中,数据泵(Data Pump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O 服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。
通过数据泵,以前通过EXP/IMP主要基于Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。
数据泵通过新的API来建立和管理,这些新的工作主要由DBMS_DATAPUMP来完成。
新的导入/导出工具完全成为了一个客户端应用,通过IMPDP/EXPDP执行的命令实际上都是在调用Server端的API在执行操作,所以一旦一个任务被调度或执行,客户端就可以推出连接,任务会在server端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改二、数据泵的使用示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp注意到与EXP不同,EXPDP增加了一个主要的参数:DIRECTORY这个参数是用来定义一个路径,前面已经提到,数据泵主要在Server端工作,导出文件需要写出到Server 端本地目录,这个DIRECTORY就是对应的Server端的路径如://创建目录create or replace directory expdir as 'd:\';//给test赋予目录的读写权限grant read,write on directory expdir to test;//导出数据C:\>expdp test/test@acf dumpfile=test.dmp directory=expdir三、EXPDP/IMPDP的停止与重启动EXPDP和IMPDP的本质在于,通过API调用,把传统的EXP/IMP类交付式模式的操作,转变成数据库内部的job任务,从而实现了任务的可终止与重启动。
oracle数据泵介绍及使用
oracle数据泵介绍及使⽤数据泵可以⾼效备份,复制,保护和传输⼤量得数据和元数据。
可以通过下列⽅式使⽤数据泵:1.对整个数据库或数据⾃⼰进⾏实时逻辑备份;2.为测试或开发,复制整个数据库或数据⼦集;3.快速⽣成⽤于重建对象的DDL代码;4.通过旧版本导出数据,然后像新版本导⼊数据的⽅式,升级数据库。
1.⾼效处理⼤量数据的功能,可以⾼效导出和导⼊⼤量数据。
2.交互式命令⾏使⽤程序,使⽤它可以先断开连接,然后恢复连接活动的数据泵作业。
3.在不创建数据泵⽂件的情况下,从远程数据库导出⼤量数据,并将这些数据直接导⼊本地数据库。
4.通过导⼊和导出⼯作,在运⾏时更改⽅案,表空间,数据⽂件和存储位置;5.精细过滤对象和数据;6.对⽬录对象应⽤受控安全模式(通过数据库);7.⾼级功能,如压缩和加密。
1.expdp (数据泵导出实⽤程序);2.impdp (数据泵导⼊实⽤程序);3.DMBS_DATAPUMP软件包(数据泵API);4.DBMS_METADATA软件包(数据泵元数据API);在导出和导⼊数据和元数据时,expdp 和 impdp 实⽤程序会使⽤内置的DBMS_DATAPUMP DBMS_METADATA 软件包。
DBMS_DATAPUMP软件包可以在不同的数据库环境之间移动整个数据库或数据⼦集。
DBMS_MATEDATA软件包可以导出和导⼊数据库对象的信息。
当启动数据泵导出和导⼊作业时,数据库服务器上就会初始化⼀个OS主进程。
这个主进程的名称格式为 ora_dmNN_。
在Linux和Unix系统中,可以使⽤ps命令查看进程。
ps -ef |grep ora_dm因为数据泵使⽤其内部的PL/SQL代码执⾏操作,所以需要使⽤共享池中的⼀些内存加载PL/SQL软件。
如果共享池中空间不⾜,系统会提⽰ORA-04031:unable to allocate bytes of shared memory…错误提⽰,并中断数据泵。
7oracle数据泵的使用
实验五:Oracle数据泵的使用一:使用数据泵导出数据1、连接Oracle数据库SQL> conn / as sysdba已连接。
2、创建一个操作目录SQL> create directory dir as 'e:\dump';注意同时需要使用操作系统命令在硬盘上创建这个物理目录目录已创建。
3、授予用户操作dir目录的权限,SQL>grant read, write on directory dir to scott ;授权成功。
4、使用命令expdp导出数据(可以按照用户模式导出、按照表、按照表空间导出和全库导出)Cmd命令行下运行:C:\>expdp scott/llx123 directory= dir dumpfile =scotttab.dmp tables= emp , dept(注意此语句末尾不要加;)Export: Release 10.2.0.1.0 - Production on 星期三, 18 6月, 2008 15:49:00Copyright (c) 2003, 2005, Oracle. All rights reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options启动"SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=dump_dir dumpfile=20080601.dmp tabledept,emp正在使用BLOCKS 方法进行估计...处理对象类型TABLE_EXPORT/TABLE/TABLE_DA TA使用BLOCKS 方法的总估计: 128 KB处理对象类型TABLE_EXPORT/TABLE/TABLE处理对象类型TABLE_EXPORT/TABLE/INDEX/INDEX处理对象类型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT处理对象类型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT. . 导出了"SCOTT"."DEPT" 5.656 KB 4 行. . 导出了"SCOTT"."EMP" 7.820 KB 14 行已成功加载/卸载了主表"SCOTT"."SYS_EXPORT_TABLE_01"******************************************************************************SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:E:\DUMP\SCOTTTAB>DMP作业"SCOTT"."SYS_EXPORT_TABLE_01" 已于15:49:22 成功完成C:\>(标蓝色部分为命令执行导出时命令行的相关执行信息)***********************注常见错误如果没有在指定的硬盘上建立物理文件,则会出现错误提示信息解决的方法是现在硬盘上创建指定的物理文件目录,然后在执行expdp程序。
数据泵
数据泵与常规方式对比:Oracle 10g开始引入数据泵,与传统exp/imp相比,数据泵可以作业分离,允许挂起和恢复导入导出任务,可以从失败点重新启动失败的作业,还可以控制导入导出的版本(version)1、expdp命令:1>常用参数:content :导出数据还是只导出元数据(表和索引创建语句等),选项有:ALL、DATA_ONLY、METADATA_ONLYdirectory:dumpfile和logfile的目录对象dumpfile/logfileexclude:不导出指定的对象(与这些对象有依赖的也不会导出)eg:exclude=table:"like'DBA_%'" include:导出指定的对象,与exclude功能相反,用法相同job_name:定义导出作业的名称attach:附加到已经在运行的现有作业,用于管理作业full:默认值为n,full=y表示导出所有对象nologfile:=y表示不写expdp的日志文件,默认值为ntables/tablespaces:运行导出指定表/表空间,包括与这个表/表空间有依赖关系的所有对象version:限制要导出的对象到指定版本的数据库2>举例:--创建导出目录及相关用户赋权create or replace directory dumpdir as '/data/backup';grant all on directory dumpdir to system;grant EXPORT FULL DATABASE to system;--导出全库:导出数据库所有对象expdp system/pwd@ip/ORACLE_SID dumpfile=dumpdir:db_%U.dmp logfile=dumpdir:db_exp_%U.log job_name=exp_db full=y--导出指定表空间:导出指定表空间的对象expdp system/pwd@ip/ORACLE_SID tablespaces=tbs dumpfile=dumpdir:tbs_01.dmp logfile=dumpdir:tbs_exp_01.log job_name=exp_tbs--导出特定对象:导出指定对象(如下例的function、procedure和XT开头的表)expdp system/pwd@ip/ORACLE_SID include=function include=procedure include=table:"like'XT%'" dumpfile=dumpdir:tab_01.dmp nologfile=y job_name=exp_tab --导出表:导出指定表的对象expdp system/pwd@ip/ORACLE_SID tables=XTCS,XTDW dumpfile=dumpdir:tab_02.dmp nologfile=y job_name=exp_tab012、impdp命令:1>常用参数:content :导入数据还是只导入元数据(表和索引创建语句等),选项有:ALL、DATA_ONLY、METADATA_ONLYdirectory:dumpfile和logfile的目录对象dumpfile/logfileinclude:导入指定的对象,eg:exclude=table:"like'DBA_%'"job_name:定义导入作业的名称attach:附加到已经在运行的现有作业,用于管理作业full:默认值为n,full=y表示导出所有对象nologfile:=y表示不写expdp的日志文件,默认值为ntables/tablespaces:运行导出指定表/表空间,包括与这个表/表空间有依赖关系的所有对象table_exists_action:定义当表已经存在时执行的操作,可选项:=skip(默认值)不加载数据直接跳过当前对象并处理下一个=append追加在当前表的数据之后写入=replace先删除表,再创建表并加载数据=truncate先清除所有数据行,再写入2>举例:--创建导入目录及相关用户赋权create or replace directory pumpdir as '/data/backup';grant all on directory pumpdir to system;grant IMPORT FULL DATABASE to system;--导入全库:导入数据库所有对象impdp system/pwd@ip/ORACLE_SID dumpfile=pumpdir:db_01.dmp logfile=pumpdir:db_imp_%U.log job_name=imp_db full=y--导入指定表空间:导入指定表空间的对象impdp system/pwd@ip/ORACLE_SID tablespaces=tbs dumpfile=pumpdir:tbs_01.dmp logfile=pumpdir:tbs_imp_01.log job_name=exp_tbs table_exists_action=truncate --导入特定对象:导入指定对象(如下例的function、procedure和XT开头的表)impdp system/pwd@ip/ORACLE_SID include=function include=procedure include=table:"like'XT%'" dumpfile=pumpdir:tab_01.dmp nologfile=y job_name=imp_tab --导入表:导入指定表的对象impdp system/pwd@ip/ORACLE_SID tables=XTCS,XTDW dumpfile=pumpdir:tab_02.dmp nologfile=y job_name=imp_tab01oracle-使用数据泵对不同用户和不同表空间的数据迁移oracle-使用数据泵对不同用户和不同表空间的数据迁移expdp和impdpexpdp假设a用户的默认表空间是a,导出用户a所有数据:如果是多实例需要在命令行或终端手工指定实例set ORACLE_SID=实例名否则回报ORA-12560: TNS: 协议适配器错误SQL> conn / as sysdbaSQL> create directory dir as '/home/oracle/';SQL> grant read,write on directory dir to system;$expdp system/oracle directory=dir dumpfile=data.dmp schemas=a logfile=data.logimpdp导入a用户所有数据到b,并且转换表空间a为b:SQL> conn sys / as sysdbaSQL> create directory dir as '/home/oracle/';SQL> grant read,write on directory dir to system;$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 转换为bremap_tablespace=a:b 将数据的tablespace 从a 转换为b注意:如果oracle是10g的,要加参数EXCLUDE=TABLE_STATISTICS 选项将table_statistics 对象过滤。
oracle 数据泵 备份 步骤
oracle 数据泵备份步骤(原创实用版)目录1.Oracle 数据泵简介2.数据泵备份的优势3.备份步骤详解3.1 连接到数据库3.2 创建备份目录3.3 创建物理目录映像3.4 授权用户3.5 使用 expdp 进行全库备份3.6 定时备份设置4.总结正文一、Oracle 数据泵简介Oracle 数据泵(Data Pump)是 Oracle 数据库提供的一个高效、可靠的数据传输工具,可用于在数据库之间传输数据,也可以用于将数据从数据库导出到文件或从文件导入到数据库。
数据泵可以有效地提高数据传输的性能,同时减少数据库的负载。
二、数据泵备份的优势相较于传统的 Oracle 备份方法,如使用 export 工具或逻辑备份,数据泵备份具有以下优势:1.高性能:数据泵利用 Oracle 数据库的内部机制进行数据传输,因此其性能更高,可以在更短的时间内完成备份操作。
2.高可靠性:数据泵备份可以确保数据的一致性和完整性,同时支持增量备份和数据压缩,可以有效地减少存储空间占用。
3.易于管理:数据泵提供了丰富的命令和选项,可以灵活地满足不同备份需求,同时可以通过 SQL*Plus 或 PL/SQL 进行编程控制,便于实现自动化备份。
三、备份步骤详解以下是使用数据泵进行 Oracle 全库备份的详细步骤:1.连接到数据库:首先,使用 PL/SQL 或 SQL*Plus 连接到 Oracle 数据库,并以管理员身份登录。
2.创建备份目录:在本地服务器或 Linux 服务器上创建一个备份数据保存目录。
3.创建物理目录映像:在连接成功的数据库窗口中创建物理目录的映像。
4.授权用户:如果是其他用户要使用这个目录进行导出操作,还需要对这个用户进行授权,如果是管理员用户就不需要再进行授权。
5.使用 expdp 进行全库备份:在 dos 命令行中直接使用 expdp 对全库进行备份,命令格式为:exp 用户名/密码@SID filed:xx.dmp owner 用户名。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
SCHEMAS=system,scott
3.导出表空间
Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp
TABLESPACES=user01,user02
26. TRANSPORT_TABLESPACES
指定执行表空间模式导出
27. VERSION
指定被导出对象的数据库版本,默认值为COMPATIBLE.
VERSION={COMPATIBLE | LATEST | version_string}
为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.
数据泵用法详解
==============
EXPDP和IMPDP使用说明EXPDP和IMPDP使用说明
Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中.
数据泵导出导入(EXPDP和IMPDP)的作用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump
CONTENT=METADATA_ONLY
3. DIRECTORY
指定转储文件和日志文件所在的目录
DIRECTORY=directory_object
Directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录
19. PARFILE
指定导出参数文件的名称
PARFILE=[directory_path] file_name
20. QUERY
用于指定过滤导出数据的where条件
QUERY=[schema.] [table_name:] query_clause
LOGFILE=[directory_object:]file_name
Directory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log
数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.
EXPDP命令行选项
1. ATTACH
该选项用于在客户会话与已存在导出作用之间建立关联.语法如下
ATTACH=[schema_name.]job_name
Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:
Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS
DIRECTORY=dump DUMPFILE=a.dump
6. EXTIMATE_ONLY
指定是否只估算导出作业所占用的磁盘空间,默认值为N
EXTIMATE_ONLY={Y | N}
Tables=emp query=’WHERE deptno=20’
21. SCHEMAS
该方案用于指定执行方案模式导出,默认为当前用户方案.
22. STATUS
指定显示导出作用进程的详细状态,默认值为0
23. TABLES
指定表模式导出
TABLES=[schema_name.]table_name[:partition_name][,…]
EXCLUDE=object_type[:name_clause] [,….]
Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW
调用EXPDP
使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.
CREATE DIRECTORY dump dir AS ‘D:DUMP’;
Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.
24. TABLESPACES
指定要导出表空间列表
25. TRANSPORT_FULL_CHECK
该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.
用于指定转储文件的名称,默认名称为expdat.dmp
DUMPFILE=[directory_object:]file_name [,….]
Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象
设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.
Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y
7. EXCLUDE
该选项用于指定执行操作时释放要排除对象类型或相关对象
FULL={Y | N}
为Y时,标识执行数据库导出.
12. HELP
指定是否显示EXPDP命令行选项的帮助信息,默认为N
当设置为Y时,会显示导出选项的帮助信息.
Expdp help=y
13. INCLUDE
指定导出时要包含的对象类型及相关对象
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump
建立目录:
CREATE DIRECTORY dump as ‘d:dump’;
查询创建了那些子目录:
SELECT * FROM dba_directories;
4. DUMPFILE
Expdp scott/tiger ATTACH=scott.export选项用于指定要导出的内容.默认值为ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
当设置CONTENT为ALL 时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义
16. NETWORK_LINK
指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.
17. NOLOGFILE
该选项用于指定禁止生成导出日志文件,默认值为N.
18. PARALLEL
指定执行导出操作的并行进程个数,默认值为1
EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用.
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用
IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件.
Schema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.
Expdp scott/tiger directory=dump dumpfiel=a.dmp
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp
FLASHBACK_SCN=358523
10. FLASHBACK_TIME
指定导出特定时间点的表数据
FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”
Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp
5. ESTIMATE
指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS
EXTIMATE={BLOCKS | STATISTICS}
设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间
1,实现逻辑备份和逻辑恢复.
2,在数据库用户之间移动对象.
3,在数据库之间移动对象
4,实现表空间搬移.
数据泵导出导入与传统导出导入的区别
在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项;