Summary
An Oracle can fail with "Permission denied" while trying to write an Oracle control file when the database is being restored to a different server.
Symptoms
The job log contain an error sequence:
[hostname] CREATE CONTROLFILE REUSE SET DATABASE "database" RESETLOGS ARCHIVELOG
[hostname] *
[hostname] ERROR at line 1:
[hostname] ORA-01503: CREATE CONTROLFILE failed
[hostname] ORA-00200: control file could not be created
[hostname] ORA-00202: control file: '/u02_1550174671/oradata/database/control01.ctl'
[hostname] ORA-27041: unable to open file
[hostname] Linux-x86_64 Error: 13: Permission denied
[hostname] Additional information: 4
[hostname] Failed to create control file for DB database
[hostname] Failed to recover DB database
[hostname] Failed to perform restore (clone) operation for all databases
Restore databases: Failed to restore Oracle databases (database) on server (hostname). Exception (java.lang.Exception) reports: (Not successful for operation)
Resolution
This behavior will be addressed in a future ECX Update. However, a complete Maintenance Update is not available at this time.
Workaround:
On the destination Oracle server, create the file /etc/guestapps.conf (or edit if it already exists) and add the following to it:
[DEFAULT]
resetMountOwner = true
resetMountOwner = true
Make sure the guestapps.conf file is world readable; chmod 0644 /etc/guestapps.conf or chmod +r /etc/guestapps.conf. This feature will change the ownership of the files at the destination to match that of the source, allowing the control to be written and other permission issues to avoided.