A computer system for optimizing the number and type of database backups to achieve a given Recovery Time Objective (RTO), the computer system comprising one or more processors, one or more computer-readable storage devices, and a plurality of program instructions stored on at least one of the one or more storage devices for execution by at least one of the one or more processors, the plurality of program instructions comprising:
- receiving a user-defined RTO, wherein the RTO is configured for one or more databases or globally for a database management system (DBMS);
- receiving a heuristic for determining an amount of unencumbered processing time;
- determining a type of next backup corresponding to a next backup, wherein the type of next backup is an incremental backup when a sum of recovery times totals less than the received RTO, else the type of the next backup is a full backup;
- and
- determining a time to schedule the next backup based on the received RTO being a total of:
- an amount of time to complete the type of next backup;
- an amount of time to rollforward zero or more transaction log records,
- wherein the zero or more transaction log records include one or more recoverable operations and
- wherein each of the one or more recoverable operations is associated with a recovery cost that is expressed as a multiple of base operation units;
- and
- an amount of time to restore at least one backup.