expdp文件split再cat后impdp

       今天在Maclean的oracle群里看到有个家伙说,expdp 的文件split 再cat 之后 导不进数据库,下面是我的实验结果

注:数据库的用户名是demo_ls 只有一张表  总的大小不超过1M

$sqlplus / as sysdba

建目录,为数据泵导出

SQL>create directory dmpdir as '/oracle/dmp';

SQL> grant read on directory dmpdir to demo_ls;

数据泵导出

$expdp demo_ls DUMPFILE=expdpdemo.dmp directory=dmpdir schemas=demo_ls;

分割

$split -b 330k expdpdemo.dmp expdpdemo_

此时可以看到在/oracle/dmp目录有多个文件如expdpdemo_a*

合并

$cat expdpdemo_* > expdpdemo_new.dmp

再导入数据库

$./impdp crmii/abs directory=dmpdir dumpfile=expdpdemo_new.dmp table_exists_action=replace 

- - relpace 表示当表存在时,先drop,再create。

    还有三个选项,分别是 skip(default),append   追加数据   truncate  先清空表,再插入数据


导入时有一个错误,是用户名demo_ls已存在,先删除用户 drop user demo_ls cascade 再impdp 完全没问题。


另外再试expdp/impdp之前也试了exp/imp,分割再分离,也没有问题。


由于数据量较小,测试可能不充分,但我想在大数据量下,这么分割再合并是没有问题


再试了一次,把一个10G左右的库expdp(不到10分钟),分割,再合并,发现与原文件的大小一样,

$diff -c crmii.dmp crmii_new.dmp

两则没有不同之处,所以分割再合并之后,可以正常导入


### 配置 `expdp` 的 Compression 参数 当使用 Oracle 数据泵 (`expdp`) 工具导出数据库时,可以启用压缩功能来减少转储文件大小并提高传输效率。为了实现这一点,在命令行中指定 `COMPRESSION` 参数。 对于 `COMPRESSION` 参数有多种选项可用: - **ALL**: 对整个转储文件中的所有表数据进行压缩。 - **DATA_ONLY**: 只对表的数据部分进行压缩而不影响其他元数据。 - **METADATA_ONLY**: 压缩仅限于模式对象定义(即DDL语句),而不是实际表格记录本身。 - **NONE**: 不应用任何形式的压缩,默认行为[^1]。 下面是一个具体的例子展示如何设置 `COMPRESSION` 参数: ```bash expdp username/password DIRECTORY=dumpdir DUMPFILE=mydump.dmp COMPRESSION=all JOB_NAME=compress_job ``` 此命令会创建一个名为 `mydump.dmp` 的转储文件,并对其内容进行全面压缩处理[^4]。 ### 使用 `impdp` 导入经过压缩的数据 完成上述导出操作后,可以通过 `impdp` 将这些被压缩过的数据重新加载回目标环境中去。需要注意的是,由于导入过程中不会自动解压已经存在的压缩包;因此建议保持源端与目的端之间一致性的配置方式——也就是说如果是在导出阶段启用了某种特定类型的压缩,则应在相同条件下实施相应的导入过程[^3]。 这里给出一段典型的 `impdp` 调用实例用于恢复之前由 `expdp` 创建且带有压缩属性的备份集: ```bash impdp username/password DIRECTORY=dumpdir DUMPFILE=mydump.dmp TABLE_EXISTS_ACTION=REPLACE TRANSFORM=SEGMENT_ATTRIBUTES:n CONTENT=METADATA_ONLY LOGFILE=import_log.txt ``` 这段脚本指定了几个重要参数: - `DIRECTORY`: 定义了存储位置; - `DUMPFILE`: 明确指出要读取的具体文件名; - `TABLE_EXISTS_ACTION`: 如果遇到同名表则采取替换策略; - `TRANSFORM`: 修改某些段落特性以适应新环境需求; - `CONTENT`: 控制只迁移结构信息而非具体条目; - `LOGFILE`: 记录日志以便日后审查[^2]。 #### 注意事项 - 确认两端Oracle版本兼容性良好,尤其是涉及到高级特性和语法差异方面的问题。 - 测试期间最好先在一个小型测试库上验证流程无误后再应用于生产系统。 - 备份现有数据以防万一发生意外情况能够迅速恢复原状。 - 查看官方文档获取最新最权威的信息更新和技术支持指南[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值