expdp&impdp一致性导入导出

本文探讨了Oracle数据库的EXPDP和IMPDP工具中,如何通过FLASHBACK_SCN和FLASHBACK_TIME参数进行数据导出与恢复,特别关注了它们之间的区别与使用场景,包括bigSCN的注意事项。

(一)EXPDP

FLASHBACK_SCN=scn_value

FLASHBACK_SCN 与FLASHBACK_TIME冲突 

使用此参数即使用表的闪回查询,它与其它闪回技术无关,如闪回数据库,回收站以及闪回归档。导出的数据将与指定的SCN一致。如果同时使用了network_link参数,此处指定的SCN为源库的SCN。

The FLASHBACK_SCN parameter pertains only to the Flashback Query capability of Oracle Database. It is not applicable to Flashback Database, Flashback Drop, or Flashback Data Archive.

Note: If you are on a logical standby system and using a network link to access the logical standby primary, then the FLASHBACK_SCN parameter is ignored because SCNs are selected by logical standby.

关于big SCN:

As of Oracle Database 12c release 2 (12.2), the SCN value can be a big SCN (8 bytes). You can also specify a big SCN when you create a dump file for an earlier version that does not support big SCNs because actual SCN values are not moved. See the following restrictions for more information about using big SCNs.

You cannot specify a big SCN for a network export or network import from a version that does not support big SCNs.

Example

$ expdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr_scn.dmp FLASHBACK_SCN=384632

FLASHBACK_TIME="TO_TIMESTAMP(time-value)"

它实际上也是把时间转为最近的SCN来执行的:The export operation will be performed with data that is consistent with the SCN that most closely matches the specified time.

可以直接使用flashback_time=systimestamp,来表示当前时间(此处不用双引号)

如FLASHBACK_TIME="TO_TIMESTAMP('27-10-2012 13:16:00', 'DD-MM-YYYY HH24:MI:SS')"

(二)IMPDP

只能用于network_link选项,使用方式同上

### Oracle IMPDP 数据导入工具使用指南 #### 参数详解 `IMPDP` 是 Oracle 提供的数据泵 (Data Pump) 工具的一部分,用于高效地将数据从 `.dmp` 文件导入到目标数据库中。以下是 `IMPDP` 的一些重要参数及其功能: 1. **DIRECTORY**: 指定包含转储文件的目录对象名称。该目录对象需提前创建并赋予相应的权限。 ```sql CREATE OR REPLACE DIRECTORY dump_dir AS '/path/to/directory'; GRANT READ, WRITE ON DIRECTORY dump_dir TO username; ``` 2. **DUMPFILE**: 指定要从中读取数据的转储文件名。可以是一个或多个文件,用逗号分隔。 3. **SCHEMAS**: 指定需要导入的一个或多个模式(Schema)。此参数通常与特定用户的导入操作配合使用。 4. **REMAP_SCHEMA**: 将源模式中的对象映射到目标模式。例如,将 `scott` 用户下的对象迁移到 `new_scott` 下: ```bash REMAP_SCHEMA=scott:new_scott [^1] ``` 5. **FLASHBACK_SCN 或 FLASHBACK_TIME**: 可选参数,允许基于 SCN 值或时间戳恢复到某个历史状态。需要注意的是,这两个参数不可同时使用[^4]。 6. **EXCLUDE 和 INCLUDE**: 这两个参数分别用来排除和包含某些类型的对象。例如,仅导入选定用户下的存储过程: ```bash INCLUDE=PROCEDURE [^2] ``` 排除表以及与其关联的对象(如索引、约束条件等): ```bash EXCLUDE=TABLE [^2] ``` 7. **JOB_NAME**: 自定义作业名称以便于管理和监控。 8. **LOGFILE**: 定义日志记录文件的位置及命名规则,默认情况下会自动生成名为 `<job_name>.log` 的文件。 9. **PARALLEL**: 设置并发线程数来加速大容量数据传输任务。 #### 示例代码 下面提供几个典型的 `IMPDP` 实际应用案例: ##### 导入整个 Schema ```bash impdp system/password DIRECTORY=dump_dir DUMPFILE=schema_full.dmp SCHEMAS=scott LOGFILE=import_schema.log ``` ##### 部分对象迁移 假设只希望复制 `lttfm` 用户内的函数而不涉及其他组件,则执行如下命令: ```bash impdp lttfm/lttfm@fgisdb DIRECTORY=dir_dp DUMPFILE=function_only.dmp SCHEMAS=lttfm INCLUDE=FUNCTION JOB_NAME=migrate_functions LOGFILE=function_import.log ``` ##### 跨版本兼容处理 当源库版本高于目标端时,可能遇到不匹配错误。此时可通过设置 VERSION 参数强制降级至较低标准完成加载工作: ```bash impdp hr/hr PASSWORD TABLE_EXISTS_ACTION=SKIP DIRECTORY=data_pump_dir DUMPFILE=hr_data_v10g.dmp VERSION=10.2 ``` #### 注意事项 - 在正式运行前务必验证两端环境的一致性,包括但不限于字符编码格式、日期样式设定等方面[^3]。 - 对超大规模数据集建议采用分区策略降低单次事务规模从而提升效率减少失败风险。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值