Managing backups for your Exadata Cloud@Customer (EXACC) environment is crucial. In this blog, let’s look into handy tips and tricks for maintaining EXACC backups. The EXACC backups broadly fall into two categories Oracle Managed Backup and User Configured Backup. The details about the setup are in the official documentation. The tool to manage these backups is dbaascli

Managing ExaCC Backups

The first thing you’d want to do is look at the configuration of the backups using the –getConfig option. The thing to note here is that –dbName is case-sensitive. If you want to see a list of the databases configured backups, you can list the creg files. Each database will have a dbName.ini file associated. So this is a quick way to get the list of databases.


## Failure if the case is incorect 

$ dbaascli database backup --getConfig --dbname DB1
[FATAL] [DBAAS-60022] Command '/var/opt/oracle/bkup_api/bkup_api --dbname="DB1"  get_config --caller=dbaascli' has failed on nodes [localnode].
[API::ERROR API::ERROR Unable to get registry file of /var/opt/oracle/creg/DB1.ini]

##Validating the dbname

 $ ls -1 /var/opt/oracle/creg/*.ini
May 19 12:24 /var/opt/oracle/creg/db1.ini
Apr 25 00:42 /var/opt/oracle/creg/DB2.ini

$ dbaascli database backup --getConfig --dbname db1
DBaaS Backup API V1.5 @2024 Multi-Oracle home
-> Action : get_config
-> logfile: /var/opt/oracle/log/db1/bkup_api_log/bkup_api_13ce9889_240108123120.745444.log
File /var/opt/oracle/bkup_api/tmpl/bkup-db1-240108-123123.cfg created
dbaascli execution completed

If you are wondering why the logs are going under bkup_api, this is the old tool that is now deprecated, however, the logging framework is not yet updated and has references to bkup_api. You can still use bkup_api since, however as you see below it will make a call to dbaascli internally.

var/opt/oracle/bkup_api/bkup_api get config --dbname db1
-> Action : get_config
-> WARNING: bkup_api get_config is deprecated! Use 'dbaascli' to perform this operation. Check "dbaascli database backup --help" for more details.

DBAAS CLI version 24.1.2.0.0
Executing command database backup --getConfig --dbname db1

File /var/opt/oracle/bkup_api/tmpl/bkup-db1-240108-131409.cfg created
dbaascli execution completed
 

Updating Config

As per the configuration, once you have the backup configuration file, you can update the supported values for your backup in the file. Then set the values using the set config command


dbaascli database backup --dbname db1  --configure --configFile /var/opt/oracle/bkup_api/tmpl/bkup-db1-240108-123123.cfg

Using configuration file: /var/opt/oracle/bkup_api/tmpl/bkup-db1-240108-123123.cfg
API::Parameters validated.
UUID 3900000040046be30 for this set_config(configure-backup)
** process started with PID: 334615
** see log file for monitor progress
-------------------------------------
dbaascli execution completed

Reviewing Logs

The RMAN log files can be found /var/opt/oracle/log/dbname/obkup directory. The logs are present on the lowest active instance of the database.

The thing to note about the backup logfiles is that there are 2 types of backup file

  • The Consolidate file that contains the Level 0 /archive log backup information for backups throughout the day : obkup_yyyy-mm-dd.log
  • Incremental log file with format obkup_yyyy-mm-dd_<timestamp>.log
cd /var/opt/oracle/log/dbname/obkup

ls obkup_2024*.log | grep -v :
obkup_2024-01-12.log
obkup_2024-01-13.log
obkup_2024-01-14.log
obkup_2024-01-15.log
obkup_2024-01-16.log
obkup_2024-01-17.log
obkup_2024-01-18.log
obkup_2024-01-19.log

## Content for a consolidate log file

2024-01-19 01:38:59.066093 -       RMAN> RUN {
2024-01-19 01:38:59.068793 -       2> ALLOCATE CHANNEL NFS_CHANNEL_1 DEVICE TYPE DISK FORMAT '/zfs/backup1/db1/dbaas_bkup_%d_%I_%u_%s_%p' ;
2024-01-19 01:38:59.071550 -       3> ALLOCATE CHANNEL NFS_CHANNEL_2 DEVICE TYPE DISK FORMAT '/zfs/backup1/db1/dbaas_bkup_%d_%I_%u_%s_%p' ;
2024-01-19 01:38:59.074338 -       4> ALLOCATE CHANNEL NFS_CHANNEL_3 DEVICE TYPE DISK FORMAT '/zfs/backup1/db1/dbaas_bkup_%d_%I_%u_%s_%p' ;
2024-01-19 01:38:59.077131 -       5> ALLOCATE CHANNEL NFS_CHANNEL_4 DEVICE TYPE DISK FORMAT '/zfs/backup1/db1/dbaas_bkup_%d_%I_%u_%s_%p' ;
2024-01-19 01:38:59.079908 -       6> set command id to '5a82185015aa11ef8f3052540046be30';
2024-01-19 01:38:59.082728 -       7> SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/zfs/backup1/db1/%F';
2024-01-19 01:38:59.085553 -       8> BACKUP SECTION SIZE 64G AS COMPRESSED BACKUPSET INCREMENTAL LEVEL 0  DATABASE TAG 'dbaas_full_backup20240519013811';
2024-01-19 01:38:59.088837 -       9> BACKUP AS  BACKUPSET ARCHIVELOG ALL NOT BACKED UP;
2024-01-19 01:38:59.091668 -       10> }
2024-01-19 01:38:59.094656 -       RMAN-08030: allocated channel: NFS_CHANNEL_1
2024-01-19 01:38:59.097446 -       RMAN-08605: channel NFS_CHANNEL_1: SID=1463 instance=db11 device type=DISK
2024-01-19 01:38:59.116702 -

2024-01-19 04:45:27.646318 -  -> select * from gv$encryption_wallet;
2024-01-19 04:45:27.649329 -  -> RUN {
2024-01-19 04:45:27.652488 -  -> ALLOCATE CHANNEL NFS_CHANNEL_1 DEVICE TYPE DISK FORMAT '/zfs/backup1/db1/dbaas_bkup_%d_%I_%u_%s_%p' ;
2024-01-19 04:45:27.656011 -  -> ALLOCATE CHANNEL NFS_CHANNEL_2 DEVICE TYPE DISK FORMAT '/zfs/backup1/db1/dbaas_bkup_%d_%I_%u_%s_%p' ;
2024-01-19 04:45:27.660013 -  -> ALLOCATE CHANNEL NFS_CHANNEL_3 DEVICE TYPE DISK FORMAT '/zfs/backup1/db1/dbaas_bkup_%d_%I_%u_%s_%p' ;
2024-01-19 04:45:27.663938 -  -> ALLOCATE CHANNEL NFS_CHANNEL_4 DEVICE TYPE DISK FORMAT '/zfs/backup1/db1/dbaas_bkup_%d_%I_%u_%s_%p' ;
2024-01-19 04:45:27.666967 -  -> set command id to '5a82185015aa11ef8f3052540046be30';
2024-01-19 04:45:27.669951 -  -> SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/zfs/backup1/db1/%F';
2024-01-19 04:45:27.673082 -  -> BACKUP SECTION SIZE 64G AS COMPRESSED BACKUPSET INCREMENTAL LEVEL 0  DATABASE TAG 'dbaas_full_backup20240519013811';
2024-01-19 04:45:27.676131 -  -> BACKUP AS  BACKUPSET ARCHIVELOG ALL NOT BACKED UP;
2024-01-19 04:45:27.680035 -  -> }

There are other log files, that can be found under the /var/opt/oracle/log/dbname/ which can be used to debug the tooling and orchestration errors. However, if you want to review the RMAN commands and backups the logfiles above will help.

Additionally, you can monitor these log files to ensure that the backups are functioning optimally. By actively keeping an eye on these logs and regularly performing maintenance tasks, you can guarantee that your backup processes remain reliable and effective.