oracle 导入导出(impdp/expdp)

来源:互联网 发布:数据挖掘是青春饭吗 编辑:程序博客网 时间:2024/05/18 08:48

查看帮助

C:\Windows\system32>expdp -helpExport: Release 10.2.0.1.0 - Production on 星期一, 23 7月, 2012 23:04:13Copyright (c) 2003, 2005, Oracle.  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 [=作业名]。COMPRESSION           减小有效的转储文件内容的大小                      关键字值为: (METADATA_ONLY) 和 NONE。CONTENT               指定要卸载的数据, 其中有效关键字为:                      (ALL), DATA_ONLY 和 METADATA_ONLY。DIRECTORY             供转储文件和日志文件使用的目录对象。DUMPFILE              目标转储文件 (expdat.dmp) 的列表,                      例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。ENCRYPTION_PASSWORD   用于创建加密列数据的口令关键字。ESTIMATE              计算作业估计值, 其中有效关键字为:                      (BLOCKS) 和 STATISTICS。ESTIMATE_ONLY         在不执行导出的情况下计算作业估计值。EXCLUDE               排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。FILESIZE              以字节为单位指定每个转储文件的大小。FLASHBACK_SCN         用于将会话快照设置回以前状态的 SCN。FLASHBACK_TIME        用于获取最接近指定时间的 SCN 的时间。FULL                  导出整个数据库 (N)。HELP                  显示帮助消息 (N)。INCLUDE               包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。JOB_NAME              要创建的导出作业的名称。LOGFILE               日志文件名 (export.log)。NETWORK_LINK          链接到源系统的远程数据库的名称。NOLOGFILE             不写入日志文件 (N)。PARALLEL              更改当前作业的活动 worker 的数目。PARFILE               指定参数文件。QUERY                 用于导出表的子集的谓词子句。SAMPLE                要导出的数据的百分比;SCHEMAS               要导出的方案的列表 (登录方案)。STATUS                在默认值 (0) 将显示可用时的新状态的情况下,                      要监视的频率 (以秒计) 作业状态。TABLES                标识要导出的表的列表 - 只有一个方案。TABLESPACES           标识要导出的表空间的列表。TRANSPORT_FULL_CHECK  验证所有表的存储段 (N)。TRANSPORT_TABLESPACES 要从中卸载元数据的表空间的列表。VERSION               要导出的对象的版本, 其中有效关键字为:                      (COMPATIBLE), LATEST 或任何有效的数据库版本。下列命令在交互模式下有效。注: 允许使用缩写命令               说明------------------------------------------------------------------------------ADD_FILE              向转储文件集中添加转储文件。CONTINUE_CLIENT       返回到记录模式。如果处于空闲状态, 将重新启动作业。EXIT_CLIENT           退出客户机会话并使作业处于运行状态。FILESIZE              后续 ADD_FILE 命令的默认文件大小 (字节)。HELP                  总结交互命令。KILL_JOB              分离和删除作业。PARALLEL              更改当前作业的活动 worker 的数目。                      PARALLEL=<worker 的数目>。START_JOB             启动/恢复当前作业。STATUS                在默认值 (0) 将显示可用时的新状态的情况下,                      要监视的频率 (以秒计) 作业状态。                      STATUS[=interval]STOP_JOB              顺序关闭执行的作业并退出客户机。                      STOP_JOB=IMMEDIATE 将立即关闭                      数据泵作业。C:\Windows\system32>impdp -helpImport: Release 10.2.0.1.0 - Production on 星期一, 23 7月, 2012 23:04:22Copyright (c) 2003, 2005, Oracle.  All rights reserved.数据泵导入实用程序提供了一种用于在 Oracle 数据库之间传输数据对象的机制。该实用程序可以使用以下命令进行调用:     示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp您可以控制导入的运行方式。具体方法是: 在 'impdp' 命令后输入各种参数。要指定各参数, 请使用关键字:     格式:  impdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)     示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmpUSERID 必须是命令行中的第一个参数。关键字               说明 (默认)------------------------------------------------------------------------------ATTACH                连接到现有作业, 例如 ATTACH [=作业名]。CONTENT               指定要加载的数据, 其中有效关键字为:                      (ALL), DATA_ONLY 和 METADATA_ONLY。DIRECTORY             供转储文件, 日志文件和 sql 文件使用的目录对象。DUMPFILE              要从 (expdat.dmp) 中导入的转储文件的列表,                      例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。ENCRYPTION_PASSWORD   用于访问加密列数据的口令关键字。                      此参数对网络导入作业无效。ESTIMATE              计算作业估计值, 其中有效关键字为:                      (BLOCKS) 和 STATISTICS。EXCLUDE               排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。FLASHBACK_SCN         用于将会话快照设置回以前状态的 SCN。FLASHBACK_TIME        用于获取最接近指定时间的 SCN 的时间。FULL                  从源导入全部对象 (Y)。HELP                  显示帮助消息 (N)。INCLUDE               包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。JOB_NAME              要创建的导入作业的名称。LOGFILE               日志文件名 (import.log)。NETWORK_LINK          链接到源系统的远程数据库的名称。NOLOGFILE             不写入日志文件。PARALLEL              更改当前作业的活动 worker 的数目。PARFILE               指定参数文件。QUERY                 用于导入表的子集的谓词子句。REMAP_DATAFILE        在所有 DDL 语句中重新定义数据文件引用。REMAP_SCHEMA          将一个方案中的对象加载到另一个方案。REMAP_TABLESPACE      将表空间对象重新映射到另一个表空间。REUSE_DATAFILES       如果表空间已存在, 则将其初始化 (N)。SCHEMAS               要导入的方案的列表。SKIP_UNUSABLE_INDEXES 跳过设置为无用索引状态的索引。SQLFILE               将所有的 SQL DDL 写入指定的文件。STATUS                在默认值 (0) 将显示可用时的新状态的情况下,                      要监视的频率 (以秒计) 作业状态。STREAMS_CONFIGURATION 启用流元数据的加载TABLE_EXISTS_ACTION   导入对象已存在时执行的操作。                      有效关键字: (SKIP), APPEND, REPLACE 和 TRUNCATE。TABLES                标识要导入的表的列表。TABLESPACES           标识要导入的表空间的列表。TRANSFORM             要应用于适用对象的元数据转换。                      有效的转换关键字: SEGMENT_ATTRIBUTES, STORAGE                      OID 和 PCTSPACE。TRANSPORT_DATAFILES   按可传输模式导入的数据文件的列表。TRANSPORT_FULL_CHECK  验证所有表的存储段 (N)。TRANSPORT_TABLESPACES 要从中加载元数据的表空间的列表。                      仅在 NETWORK_LINK 模式导入操作中有效。VERSION               要导出的对象的版本, 其中有效关键字为:                      (COMPATIBLE), LATEST 或任何有效的数据库版本。                      仅对 NETWORK_LINK 和 SQLFILE 有效。下列命令在交互模式下有效。注: 允许使用缩写命令               说明 (默认)------------------------------------------------------------------------------CONTINUE_CLIENT       返回到记录模式。如果处于空闲状态, 将重新启动作业。EXIT_CLIENT           退出客户机会话并使作业处于运行状态。HELP                  总结交互命令。KILL_JOB              分离和删除作业。PARALLEL              更改当前作业的活动 worker 的数目。                      PARALLEL=<worker 的数目>。START_JOB             启动/恢复当前作业。                      START_JOB=SKIP_CURRENT 在开始作业之前将跳过                      作业停止时执行的任意操作。STATUS                在默认值 (0) 将显示可用时的新状态的情况下,                      要监视的频率 (以秒计) 作业状态。                      STATUS[=interval]STOP_JOB              顺序关闭执行的作业并退出客户机。                      STOP_JOB=IMMEDIATE 将立即关闭                      数据泵作业。

创建目录并授权

--创建目录并授权SQL> create directory dump_test as 'D:\dump';目录已创建。SQL> select * from dba_directories;OWNER                          DIRECTORY_NAME------------------------------ ------------------------------DIRECTORY_PATH--------------------------------------------------------------------------------SYS                            ADMIN_DIRC:\ADE\aime_10.2_nt_push\oracle/md/adminSYS                            SUBDIRG:\oracle\product\10.2.0\db_1\demo\schema\order_entry\/2002/SepSYS                            DATA_FILE_DIRG:\oracle\product\10.2.0\db_1\demo\schema\sales_history\OWNER                          DIRECTORY_NAME------------------------------ ------------------------------DIRECTORY_PATH--------------------------------------------------------------------------------SYS                            WORK_DIRC:\ADE\aime_10.2_nt_push\oracle/workSYS                            LOG_FILE_DIRG:\oracle\product\10.2.0\db_1\demo\schema\log\SYS                            MEDIA_DIRG:\oracle\product\10.2.0\db_1\demo\schema\product_media\OWNER                          DIRECTORY_NAME------------------------------ ------------------------------DIRECTORY_PATH--------------------------------------------------------------------------------SYS                            XMLDIRG:\oracle\product\10.2.0\db_1\demo\schema\order_entry\SYS                            DATA_PUMP_DIRG:\oracle\product\10.2.0\db_1\admin\oralife\dpdump\SYS                            DUMP_TESTD:\dump已选择9行。SQL> grant read,write on directory dump_test to scott;授权成功。


导出scott用户下的表dept,emp
expdp scott/tiger@oralife directory=dump_test dumpfile=scott_dept_emp.dmp logfile=scott_dept_emp.log tables=dept,emp

导出scott用户下的所有对象
expdp scott/tiger@oralife directory=dump_test dumpfile=scott.dmp logfile=scott.log  schemas=scott

expdp lau/lau@oralife directory=dump_test dumpfile=scott0.dmp logfile=scott0.log  schemas=scott (但是会多处理一些对象比如:SCHEMA_EXPORT/SYSTEM_GRANT,SCHEMA_EXPORT/ROLE_GRANT等)

导出表空间
expdp lau/lau@oralife directory=dump_test dumpfile=users0.dmp logfile=users0.log tablespaces=users
如果lau为普通用户,只会导出表空间下该用户的对象。

导出整个数据库
expdp lau/lau@oralife directory=dump_test dumpfile=full_oralife_%u.dmp  logfile=full_oralife.log parallel=4 full=y

评估导出所需空间大小,将estimate_only参数设置为y,比如:
expdp lau/lau@oralife directory=dump_test logfile=est.log  full=y estimate_only=y

过滤表数据,指定query参数,比如:
expdp scott/tiger@oralife directory=dump_test dumpfile=scott_dept_emp_query.dmp logfile=scott_dept_emp_query.log tables=dept,emp  query=scott.emp:\"where sal > 3500\",scott.dept:\"where rownum<3\"


导入表
impdp scott/tiger@oralife directory=dump_test dumpfile=scott_dept_emp.dmp logfile=scott_dept_emp_import.log tables=dept,emp
使用remap_schema将表导入到其它schema(lau为dba用户)
impdp lau/lau@oralife directory=dump_test dumpfile=scott_dept_emp.dmp logfile=scott_dept_emp_import.log tables=dept,emp remap_schema=scott:lau

导入方案
impdp scott/tiger@oralife directory=dump_test dumpfile=scott.dmp logfile=scott_import.log schemas=scott
使用remap_schema将scott的所有对象导入到其它schema(lau为dba用户)
impdp lau/lau@oralife directory=dump_test dumpfile=scott.dmp logfile=scott_import.log schemas=scott remap_schema=scott:r_test

导入表空间
impdp lau/lau@oralife directory=dump_test dumpfile=users0.dmp  logfile=users0_import.log tablespaces=users TABLE_EXISTS_ACTION=replace
使用remap_tablespace将表空间对象导入到其它tablespace(lau为dba用户)
impdp lau/lau@orcl directory=dump_test dumpfile=users0.dmp  logfile=users0_import.log tablespaces=users remap_tablespace=users:tbs_test

导入数据库
impdp 'sys/oracle as sysdba'  directory=dump_test dumpfile=FULL0724.DMP logfile=full0724_import.log full=y


如果对象已经存在,可以添加TABLE_EXISTS_ACTION参数,有四个可选的参数值 :
    SKIP leaves the table as is and moves on to the next object. This is not a valid option if the CONTENT parameter is set to DATA_ONLY.
    APPEND loads rows from the source and leaves existing rows unchanged.
    TRUNCATE deletes existing rows and then loads rows from the source.
    REPLACE drops the existing table and then creates and loads it from the source. This is not a valid option if the CONTENT parameter is set to DATA_ONLY.

可以指定parallel参数并行化处理。

指定include参数
INCLUDE = object_type[:name_clause] [, ...]
如:
INCLUDE=FUNCTION
INCLUDE=PROCEDURE
INCLUDE=PACKAGE
INCLUDE=INDEX:"LIKE 'EMP%' "
INCLUDE=TABLE:"IN ('EMPLOYEES', 'DEPARTMENTS')"
如果指定了include只会导出或导入指定的对象类型的对象和依赖对象。
--仅导出lau用户下的FUNCTION
expdp 'sys/oracle@orcl as sysdba' directory=dump_test dumpfile=function.dmp logfile=function.log schemas=lau include=FUNCTION

To see a list of valid paths for use with the INCLUDE parameter, you can query the following views: DATABASE_EXPORT_OBJECTS for Full mode, SCHEMA_EXPORT_OBJECTS for schema mode, and TABLE_EXPORT_OBJECTS for table and tablespace mode.



原创粉丝点击