Introduction

A few weeks ago one client reached out to me asking to help him to configure a RMAN script to execute from Windows machine running Oracle client and the third party backup solution software. The client was wondering if something was missing from the third party software library, since RMAN was failing with the following error:

RMAN> backup database;
Starting backup at 15-JAN-26
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 01/15/2026 11:24:05
ORA-19554: error allocating device, device type: SBT_TAPE, device name:
ORA-27209: syntax error in device PARMS - unknown keyword or missing =

Problem

I asked the client to send me the script he was using to start this backup, so I could run some tests by myself.

The RMAN allocation channel was something like that:

RUN {
ALLOCATE CHANNEL C1 TYPE 'SBT_TAPE' PARMS  'BLKSIZE=1048576,SBT_LIBRARY=C:\Program Files\DPSAPPS\RMANAgent\bin\libddobk.dll';
}

So initially I suspected about the space between “Program” and “Files” words in the PATH provided to SBT_LIBRARY. I asked the client to copy the backup software to an alternative location like “C:\DPSAPPS\RMANAgent”.

This workaround has worked and confirmed the issue was related to the PATH being used, not a issue with the software or RMAN syntax itself.

After that I have tested some different workarounds like enclose the PATH with double quotes, and also using a environment variable with correct PATH, but no one has worked for this case.

Solution

After some research about the Windows filesystem, I found we can just use a alternative short name for these default Program directories, for example:

FolderShort Name
C:\Program FilesC:\PROGRA~1
C:\Program Files (x86)C:\PROGRA~2

So I recommeded the client to use the Windows short name in the library PATH to still using the third party software insttaled in their default location.

So the SBT_LIBRARY has been changed from this:

'BLKSIZE=1048576,SBT_LIBRARY=C:\Program Files\DPSAPPS\RMANAgent\bin\libddobk.dll'

To this one:

'BLKSIZE=1048576,SBT_LIBRARY=C:\PROGRA~1\DPSAPPS\RMANAgent\bin\libddobk.dll'

Option 2

Another trick that I have tested was creaing a symbolic link under the C:\ pointing to the correct directory, and using this symbolic link in the RMAN configuration instead of the final directory itself. For the previous example, we could use Windows CMD or PowerShell to create a symbolic link like this:

mklink /D "C:\DPSAPPS" "C:\Program Files\DPSAPPS"

And configure SBT_LIBRARY pointing to C:\DPSAPPS instead of C:\Program Files\DPSAPPS.

Conclusion

In this blog post I have described a specific problem related to the C:Program Files directory, but this can occur with any directory that has spaces in the SBT_LIBRARY. While it is expected to work usign double quotes on Linux servers, for Windows this can be trick (as many others things on Windows).

My primary recommendation is to avoid use directories with spaces in the folder names. But in case you need to use, you can choose one of the 2 provided solutions in this blog post. Also, keep in mind Windows have more short names for others default system and users directories, which you could search about in the intenet in case you need some other specific directory.

Leave a Reply

Discover more from Blog do Dibiei

Subscribe now to keep reading and get access to the full archive.

Continue reading