ZDM hints and tips: “No such file or directory” when the dump file actually exists?

Photo by Nitin Mathew on Unsplash

As I work more and more with the Oracle Zero Downtime Migration tool, I also encounter more and more specific problems. And if I manage to (sometimes) find solutions, then why not share them in the form of small blog posts? 1

I will not present ZDM on this blog, as the official documentation as well as my Oracle colleagues are doing a fantastic job exploring the multiple aspects of ZDM. You’ll find references at the end of this post2.

Recently, I was performing a logical online migration using Oracle ZDM on the following environments:

  • Source: On-premises standalone Oracle Database 12.1 non-CDB
  • Target: OCI DBCS 2-node RAC Oracle Database 21c multitenant PDB

Everything went well during the -eval process, but then the phase ZDM_DATAPUMP_IMPORT_TGT failed during the migrate process:

# zdmcli query job -jobid 24
zdm-server.subnet1.labvcn.oraclevcn.com: Audit ID: 1503
Job ID: 24
User: zdmuser
Client: zdm-server
Job Type: "MIGRATE"
[...]
Current status: FAILED
Result file path: "/u01/app/zdmbase214/chkbase/scheduled/job-24-2023-10-12-12:46:30.log"
Metrics file path: "/u01/app/zdmbase214/chkbase/scheduled/job-24-2023-10-12-12:46:30.json"
Excluded objects file path: "/u01/app/zdmbase214/chkbase/scheduled/job-24-filtered-objects-2023-10-12T12:46:40.982.json"
Job execution start time: 2023-10-12 12:46:30
Job execution end time: 2023-10-12 12:53:32
Job execution elapsed time: 7 minutes 2 seconds
[...]
ZDM_DATAPUMP_EXPORT_SRC ............... COMPLETED
ZDM_UPLOAD_DUMPS_SRC .................. COMPLETED
ZDM_DATAPUMP_IMPORT_TGT ............... FAILED
ZDM_POST_DATAPUMP_SRC ................. PENDING
ZDM_POST_DATAPUMP_TGT ................. PENDING
[...]

The log file of the job, and the actual Data Pump import log, contained the following error:

ORA-39126: Worker unexpected fatal error in KUPW$WORKER.LOAD_METADATA []
ORA-31640: unable to open dump file "/path/to/dump/files/ZDM_24_DP_EXPORT_6339_dmp_1_01.dmp" for read
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 7

But why would I get this error even though the corresponding dump file actually exists?

# ls -l /path/to/dump/files/ZDM_24_DP_EXPORT_6339_dmp_1_01.dmp
-rw-r--r-- 1 oracle oinstall 110592 Oct 12 13:39 /path/to/dump/files/ZDM_24_DP_EXPORT_6339_dmp_1_01.dmp

In fact, this is a quite common, though a little confusing, error message: when performing a Data Pump import on a RAC database, by default, workers can be started on other RAC instances. But in that case, the problem is that the dump files do not reside in a shared location between RAC nodes. They reside in a local file system in the first node only.

It is quite simple to workaround this situation using the Data Pump import parameter CLUSTER=NO. But can we achieve this when using ZDM? Yes, thanks to the ZDM parameter DATAPUMPSETTINGS_DATAPUMPPARAMETERS_NOCLUSTER :

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_NOCLUSTER

Specifies whether all Data Pump workers are started on the current instance or on instances usable by the job.
Valid values :
TRUE all Data Pump workers are started on the current instance
FALSE Data Pump workers are started on instances usable by the job

Once the DATAPUMPSETTINGS_DATAPUMPPARAMETERS_NOCLUSTER parameter is set to TRUE in the ZDM response file, this error will not occur anymore.

  1. What? 2 blog posts in just a few days? After 3 years of inactivity? What is going on with me?! ↩︎
  2. ZDM on Oracle Blogs
    Ricardo Gonzalez
    Sinan Petrus Toma
    Daniel Overby Hansen
    ↩︎

Leave a comment