如何验证dump文件的有效性

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 如何验证dump文件的有效性

为了测试用途,从生产库导出了一份dump文件,打算导入测试环境中,如果这份dump文件有损坏,可能我执行的impdp,会造成数据库有一部分数据导入成功了,但另一部分失败了,要么挑出失败的部分,断点执行,这难度比较大,要么只能清空,重新执行。我们是不是只能通过执行impdp,真正执行导入操作才可以知道这份expdp导出的dump文件是否是完整正确的?

Oracle如此智能,会给我们一些方法来校验。这篇文章就介绍了一种方法,How To Validate A DataPump Export (EXPDP) Dump File ? (文档 ID 2113967.1)。

首先,创建directory,执行expdp导出命令,

如何验证dump文件的有效性

根据文章介绍,为了验证expdp导出的文件有效性,可以使用SQLFILE参数执行一次测试导入。并不真正执行SQL,目标库并未变。

To validate the dump files generated by the DataPump export, run a test import with SQLFILE parameter. The SQL is not actually executed, and the target system remains unchanged. The file is written to the directory object specified in the DIRECTORY parameter, unless another directory_object is explicitly specified here.

增加参数sqlfile,从回显中未看见报错,

如何验证dump文件的有效性

打开sqlfile.sql文件,是一系列的用户、表、存储过程、索引、统计信息、数据等的创建语句,但此时数据库唯有变化,相当于做了一次导入测试,

如何验证dump文件的有效性

若是让这个dump文件产生错误,执行导入命令,就会提示报错,

如何验证dump文件的有效性

损坏dump文件的方法很多,

  1. The files are invalidated by non-binary ftp transfer. If you transferred a dump file from one machine to another via FTP, make sure that the file is transferred in binary mode.
  2. The transfer of the dump files from source environment to target environment has been interrupted.
  3. The dump file are truncated by disk space of file system size limitations.
  4. The export job has not been completed successfully.

例如,使用FTP传输时未指定二进制模式,破坏文件的传输过程,由于文件系统大小限制,导致文件被截断,导出任务未正确完成操作,这些场景都可能造成dump不可用。

总结:

有了SQLFILE参数,我们就可以在真正导入之前,做一次测试,验证dump文件的有效性。

插播一则广告,上周末联赛,国安客战申花,有感而发,MAX国安官方公众号,再次进行了转载,欢迎朋友们浏览、分享和指教,

如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:bisal的个人杂货铺,您的支持是对我最大的鼓励!共同学习,共同进步:)

如何验证dump文件的有效性
本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 如何验证dump文件的有效性


 上一篇
生产数据导入测试环境碰见的一些问题 生产数据导入测试环境碰见的一些问题
我们某一个系统的夜维出现了性能的问题,删除N张表,数据量从几万到几百万不等,现在需要3.5-4个小时,看了一下SQL AWR,有些采用了TABLE ACCESS FULL,而且是数据量百万级的表,并且一次删除5000条,批量要删除几百次,相
下一篇 
解决导入过程中出现的ORA-02289错误 解决导入过程中出现的ORA-02289错误
用expdp导出生产库数据到测试库,执行impdp的时候报了ORA-02298错误,提示生效TBL_B表的外键约束FK_B_ID的时候出错, 看看ORA-02298的错误描述,因为存在独立的字节点记录,导致生效约束操作报错,