Despite the fact that InterSystems has long recommended using external backup tools, many users have opted to use the internal Online Backup facility, which is included in all distributions of InterSystems products (IRIS Data Platform, Caché, etc.). The reasons why are quite obvious:
Does it sound like I am just promoting the benefits? Let's move on to a discussion of the disadvantages:
The first drawback is somewhat exaggerated: the copy speed really depends on the storage that is used. However, when you copy a database at the OS file system level, the copy speed is similar to using the internal Online Backup tool.
The second drawback is more serious, and there have been repeated discussions in our community about how to overcome it. I would like to propose a solution that has been proven by many years of use on our customers' servers.
Installing and configuring the cm.Task.PurgeBackup
cmPurgeBackup is an utility that can be used to erase old Online Backup files. It runs as an IRIS/Caché Task Manager task. It is fully compatible with all predefined classes of backup tasks, such as FullDBList, IncrementalDBList, etc., and it does not require any changes to the code that is used in these tasks.
It is easy to install and configure the cmPurgeBackup task. First you import the cm.Task.Purge.inc and cm.Task.PurgeBackup.cls to the namespace of your choice (meaning you don't have to import it to %SYS), compile the class. Then go to the Task Manager menu and schedule a new task. Name it somehow (e.g., cmPurgeBackup). Now select the namespace where the task class was imported to, and select cm.Task.PurgeBackup class from the drop-down list of types.
You don't have to change the default values of the task properties, but some explanations are still in order.
The FreeSpace property has priority over FullBackupsToKeep, therefore in order to preserve the required amount of free disk space, Purge Backup can save fewer full Backup files than the number specified in the FullBackupsToKeep property. Nevertheless, the program will ensure that the results of the last full backup and all subsequent incremental backups are never erased. At the same time, the default value will be the minimum allowed FreeSpace value. The acceptability of the FreeSpace property is checked every time the task is run. If the value is found to be too small, it will be increased accordingly.
HistoryLifeSpan also affects the retention period for Full Backup (.log) log files. This decision is made on the basis of the fact that these files take up little space, but they contain valuable information about how the size of the full backup has grown over time, meaning about the databases themselves.
If the LogFile is configured without specifying the path, then <install_dir>/mgr will be used by default. Another option is to use the system log (messages.log for IRIS or cconsole.log for Caché). In this case, just leave the LogFile field empty. If there are any errors when accessing the specified log file, then the task will switch to using the system log.
You can flexibly determine how frequently the task is run, while it seems logical to specify that it be run every time that the Full Backup task is finished running.
How often do you want the Task Manager to execute this task? After another task is finished.
Run after which task? FullDBList
This allows you to clear the storage of old .cbk files immediately after the completion of a successful backup while at the same time ensuring that no files are deleted if the full backup is unsuccessful.
therefore I don’t expect any problem with other contemporary versions.
- How can I get cmPurgeBackup? cmPurgeBackup is an Open Exchange application and can be downloaded by following the link below.
Register or login to poll