Backing up and restoring UDX code

You should keep backup copies of your source C++ programs in a safe location outside of the Netezza Performance Server system. Make sure that you have recent backups of your Netezza Performance Server systems if you need to recover from an accidental change to your data, or to restore Netezza Performance Server services as part of a disaster recovery situation.

There are no special requirements or procedures that are needed to back up UDX objects on a Netezza Performance Server system. After you register UDFs, UDAs, or user-defined shared libraries with a Netezza Performance Server system, they (and their associated compiled objects) are backed up during the normal Netezza Performance Server nzbackup operations.

After a UDX is altered, the next incremental backup also captures the object files for the altered UDX. Backup ignores the object files for any unchanged UDXs to improve the backup performance. If you later attempt an nzrestore -noData on an increment that does not have the UDX object files (because they were not altered during this time), the restore process creates a zero-length placeholder object file for those UDXs and logs the signatures of the incomplete UDXs in the restoresvr log file. The resulting UDXs are defined in the database, but they cannot be executed because their object files were not restored. You must use CREATE OR REPLACE commands to update the UDXs with their necessary object files. For a -noData restore, you can use the nzrestore -allincs argument, which restores the object files from all available increments so that any referenced UDXs will be created and executable following the restore.