RMAN speaks a bit more to you since 19.25

Not a big deal – but Samo has brought this to my attention. And the RMAN development and PM team was happy to help and shed some light here. But one after another – what actually is the topic here? Well, RMAN speaks a bit more to you since 19.25 – which isn’t bad but may need some additional explanation.

What has been changed or added?

With Oracle Database RU 19.25 (and of course, all following RUs) the Oracle Recovery Manager (RMAN) has gotten a tiny little change for the better. RMAN now includes more information in the log file which is utterly useful for Oracle Support in case you are opening an SR. Before that, Support struggled a lot with commands not being in the logs. This has been changed now, and we included this with

Bug 33801661 – RMAN SHOULD CAPTURE INPUT COMMANDS BY DEFAULT

from Oracle Database Release Update 19.25 onward. So, this “bug” is actual an enhancement.

In addition, there is another change in 19.25 for RMAN:

ECHO is turned ON by default.

The same has been done from start for Oracle Database 23ai but has now been backported to 19c into 19.25 and onward. You could theoretically switch this back but honestly, you should not do this since it will make life much harder for our Support teams in case of an issue.

Samo, who brought this my attention found another thing he did wonder about: Tracing.

But actually, as soon as you write a wrong RMAN command for instance, we generate an in-memory trace and flush it to disk. Since there is an auto-delete policy in place, those trace should be purged after 30 days automatically. Again, this is just to ensure that Oracle Support has the necessary information when needed. And this can’t be turned off by yourself.

 

The visible difference

Samo shared a test with me, and I’d like to share it with you as well since it demonstrates the difference in case you did wonder.

This is a simple RMAN call failing in 19.24 (old behavior):

[oracle@vbox-oracle-003 ~]$ export ORACLE_HOME=/app/oracle/product/db1924
[oracle@vbox-oracle-003 ~]$ rman

Recovery Manager: Release 19.0.0.0.0 - Production on Tue May 6 15:52:52 2025
Version 19.24.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

RMAN> run {
2> set dbid=123;
3> }

executing command: SET DBID

RMAN> blahblah

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "identifier": expecting one of: "advise, allocate, alter, analyze, associate statistics, audit, backup, begin, @, call, catalog, change, comment, commit, configure, connect, convert, copy, create, create catalog, create global, create or replace global, create or replace script, create script, crosscheck, declare, delete, delete from, describe, describe catalog, disassociate statistics, drop, drop catalog, drop database, duplicate, exit, explain plan, flashback, flashback table, grant, grant catalog, grant register, host, import, insert, list, lock, merge, mount, noaudit, open, print, purge, quit, recover, register, release"
RMAN-01008: the bad identifier was: blahblah
RMAN-01007: at line 1 column 1 file: standard input

RMAN> exit


Recovery Manager complete.

And this is the same test now run in a higher Release Update, here in 19.25. The arrow  (<<— ) sign indicates the lines being added now in the output:

[oracle@vbox-oracle-003 ~]$ rman

Recovery Manager: Release 19.0.0.0.0 - Production on Tue May 6 15:53:32 2025
Version 19.25.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

RMAN> run {
run {                 <<-- echo after every command
2> set dbid=123;
set dbid=123;         <<--
3> }
}                     <<--
executing command: SET DBID


RMAN> blahblah;
blahblah;             <<--
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "identifier": expecting one of: "advise, allocate, alter, analyze, associate statistics, audit, backup, begin, @, call, catalog, change, comment, commit, configure, connect, convert, copy, create, create catalog, create global, create or replace global, create or replace script, create script, crosscheck, declare, delete, delete from, describe, describe catalog, disassociate statistics, drop, drop catalog, drop database, duplicate, exit, explain plan, flashback, flashback table, grant, grant catalog, grant register, host, import, insert, list, lock, merge, mount, noaudit, open, print, purge, quit, recover, register, release"
RMAN-01008: the bad identifier was: blahblah
RMAN-01007: at line 1 column 1 file: standard input

RMAN> exit
exit                  <<--

RMAN Client Diagnostic Trace file : /app/oracle/diag/clients/user_oracle/RMAN_1949472377_110/trace/ora_43221_140108526144000.trc  <<-- trace file generated

Recovery Manager complete.

From 19.27 on, it may be that a 2nd trace file gets written. But as mentioned above, those are ONLY generated in case of an error (as you see it in the example as well, otherwise there would be no trace), and the files will be purged automatically, by default after 30 days.

 

Further Links and Information

 

–Mike