There are many ways to back up an OpenEdge database. But not all of them are created equal. And if you haven't tested it, it doesn't count!
Cardinal rule #1 - Use probkup
- Do it daily during a lull in user activity - no reason not to. With the ability to back up online, the business is not interrupted.
- Buy more disks if you need to, but back up to a local drive in uncompressed format. This way, the backup is ready to restore (and roll AI/archives against), reducing the time you need to return to operations (RTO).
- You must use it if you use OE Replication, as it's the only way to reseed a replication target.
- Watch out! It might slow down your application for data stored in Type I storage areas. (What? Still using Type I storage areas? Tsk, tsk.)
- Disk reads will jump while the backup reads blocks that are not already in memory, reducing your buffer hit rate. But you won't likely feel it if you stick to the first bullet above.
Cardinal rule #2 - Back up ALL of the files needed to effect a restore
- Execute a prostrct list as a part of your backup routine and include the structure file in the files you back up.
- Include the keystore if TDE is enabled in the database.
Cardinal rule #3 - Don't rely on incremental backups
- They can take just as long and create a similar-sized backup.
- They add unnecessary complexity, except for the exception below.
- You still need a full backup before you can take incremental backups.
- If you do not perform full backups regularly, you will use increasing amounts of backup media for incremental backups and expand recovery time due to needing to restore multiple incremental backups in addition to the full backup.
- EXCEPTION: If an application database undergoes an extended period of very high write volume, taking periodic incremental backups may be less I/O intensive than writing to lots of large AI extents. Test it!
- If you are using after-imaging (you are, right?), there is no reason for incremental backups (except for the exception above!).
probkup switches to use
- -com - reduces the number of IO ops needed to create the backup file and reduces the backup file size (may decrease the speed of backup on high-speed systems, so test!).
- -verbose - to know where you are
- -Bp 64 - use private buffers to avoid evicting user's blocks from memory
- On 11.3.x or 11.4.0 - use "bibackup all" to overcome the prorest bug (fixed in 11.5.0) that, if not used, will render the backup useless!
Cardinal rule #4 - Test it, regularly
Document and exercise your restore process (prorest) regularly to verify it still works!
- TEST
- TEST
- TEST
- and keep TESTING!
Unless you genuinely know what you are doing (with proquiet), don't ever ...
- use VM snapshots.
- use SAN snapshots.
- use third-party backup tools.
- use OS copy commands.
Nor ...
- use untested scripts.
- remove old backups before verifying your most recent backup is good.
- backup/archive to or run anything OE-related on an NFS drive. Backup/archive locally, then copy/compress to NFS or other forms of off-site backup storage.
Windows WARNING
ProTop's probkup.bat on Windows is limited to 9 command-line parameters. Others are ignored. Users who want to specify a long probkup command line should read probkup in the Progress doc and manually build the appropriate _dbutil or _mprshut command line.
Conclusion
Use the tools provided by Progress to back up your OpenEdge databases, and test your favored backup and restore approach on a regular basis to verify it continues to work as you expect.