欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle——21使用数据泵data bump进行导入和导出

程序员文章站 2022-03-02 15:45:19
...

 

data pump(数据泵)可以实现在测试环境、开发环境、生产环境以及高级复制或热备份数据库之间的快速数据迁移。data pump还能实现部分或全部数据库逻辑备份,以及跨平台的可传输表空间备份。

data pump技术相对应的工具是data pump export和data pump import,即expdp和impdp,它们的功能与exp和imp类似,所不同的是data pump技术的速度更快。另外,data pump技术还可以实现断点重启,即在任务中断后可以从断点处重新启动。

在使用expdp和impdp的过程中都会不可避免的使用到directory(目录),下面先简单的介绍一下directory的创建和删除,它们都是在SqlPlus窗口进行的。

(1)创建目录:

 

		create directory directory_name as 'real_directory';
 

示例代码:

 

		create directory mydir as 'd:\dir'; --在Oracle中创建目录mydir,对应真实的目录“d:\dir”*/
 

(2)删除目录:

 

		drop directory directory_name;
 

示例代码:

 

		drop directory mydir;
 

1、使用expdp进行导出操作

该操作与exp的操作类似,其备份是通过expdp命令在命令提示符窗口进行的。可以直接使用expdp命令进行交互操作备份,也可以使用expdp命令的操作参数进行备份。可以通过在命令提示符窗口输入expdp help=y查看expdp的帮助信息。

以下是在命令提示符窗口输入expdp help=y查看到的帮助信息:

C:\Users\andy>expdp help=y

Export: Release 11.1.0.6.0 - Production on 星期五, 01 6月, 2012 21:34:35

Copyright (c) 2003, 2007, 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           减小转储文件内容的大小, 其中有效关键字

 值为: ALL, (METADATA_ONLY), DATA_ONLY 和 NONE。

CONTENT               指定要卸载的数据, 其中有效关键字

 值为: (ALL), DATA_ONLY 和 METADATA_ONLY。

DATA_OPTIONS          数据层标记, 其中唯一有效的值为:

 使用 CLOB 格式的 XML_CLOBS-write XML 数据类型

DIRECTORY             供转储文件和日志文件使用的目录对象。

DUMPFILE              目标转储文件 (expdat.dmp) 的列表,

 例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。

ENCRYPTION            加密部分或全部转储文件, 其中有效关键字

 值为: ALL, DATA_ONLY, METADATA_ONLY,

 ENCRYPTED_COLUMNS_ONLY 或 NONE。

ENCRYPTION_ALGORITHM  指定应如何完成加密, 其中有效

 关键字值为: (AES128), AES192 和 AES256。

ENCRYPTION_MODE       生成加密密钥的方法, 其中有效关键字

 值为: DUAL, PASSWORD 和 (TRANSPARENT)。

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                 用于导出表的子集的谓词子句。

REMAP_DATA            指定数据转换函数,

 例如 REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。

REUSE_DUMPFILES       覆盖目标转储文件 (如果文件存在) (N)。

SAMPLE                要导出的数据的百分比;

SCHEMAS               要导出的方案的列表 (登录方案)。

STATUS                在默认值 (0) 将显示可用时的新状态的情况下,

 要监视的频率 (以秒计) 作业状态。

TABLES                标识要导出的表的列表 - 只有一个方案。

TABLESPACES           标识要导出的表空间的列表。

TRANSPORTABLE         指定是否可以使用可传输方法, 其中

 有效关键字值为: ALWAYS, (NEVER)。

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 的数目>。

REUSE_DUMPFILES       覆盖目标转储文件 (如果文件存在) (N)。

START_JOB             启动/恢复当前作业。

STATUS                在默认值 (0) 将显示可用时的新状态的情况下,

 要监视的频率 (以秒计) 作业状态。

 STATUS[=interval]

STOP_JOB              顺序关闭执行的作业并退出客户机。

 STOP_JOB=IMMEDIATE 将立即关闭

 数据泵作业。

 

2、使用impdp进行导入操作

impdp是expdp的反操作,具体操作过程和expdp差不多。

以下是在命令提示符窗口输入impdp help=y得到的输出结果:

数据泵导入实用程序提供了一种用于在 Oracle 数据库之间传输

数据对象的机制。该实用程序可以使用以下命令进行调用:

 

示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

 

您可以控制导入的运行方式。具体方法是: 在 'impdp' 命令后输入

各种参数。要指定各参数, 请使用关键字:

 

格式:  impdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

 

USERID 必须是命令行中的第一个参数。

 

关键字               说明 (默认)

------------------------------------------------------------------------------

ATTACH                连接到现有作业, 例如 ATTACH [=作业名]。

CONTENT               指定要加载的数据, 其中有效关键字为:

 (ALL), DATA_ONLY 和 METADATA_ONLY。

DATA_OPTIONS          数据层标记, 其中唯一有效的值为:

 SKIP_CONSTRAINT_ERRORS - 约束条件错误不严重。

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               指定参数文件。

PARTITION_OPTIONS     指定应如何转换分区, 其中

 有效关键字为: DEPARTITION, MERGE 和 (NONE)

QUERY                 用于导入表的子集的谓词子句。

REMAP_DATA            指定数据转换函数,

 例如 REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO

REMAP_DATAFILE        在所有 DDL 语句中重新定义数据文件引用。

REMAP_SCHEMA          将一个方案中的对象加载到另一个方案。

REMAP_TABLE           表名重新映射到另一个表,

 例如 REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。

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。

TRANSPORTABLE         用于选择可传输数据移动的选项。

 有效关键字为: ALWAYS 和 (NEVER)。

 仅在 NETWORK_LINK 模式导入操作中有效。

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 将立即关闭

 数据泵作业。