Problem
Scheduled Sybase backup fails with status code 29 and script exit returns with code 255
Error Message
The output from the backup script shows errors from the isql64 CLI.
$ cat /usr/openv/netbackup/bphdb/sybase_stdout.110920
Started Mon Nov 9 13:51:36 PKT 2020
These environment variables are set:
SYBACKUP_SERVER = netbackup
SYBACKUP_POLICY = testSybase
SYBACKUP_SCHED = Full
SYBACKUP_CLIENT = bobprd
SYBACKUP_SCHEDULED = 1
SYBACKUP_USER_INITIATED = 0
/sybase/database/OCS-16_0/bin/isql64 -Usa -P<password> -X -SBOBPRD < /usr/openv/netbackup/ext/db_ext/sybase/scripts/sybase_Bobprd_BOCMSDB_backup.isql.BOCMSDB.DATABASE
isql input file contains:
dump DATABASE BOAUDITDB to "sybackup::-SERV netbackup -CLIENT bobprd -POL BOBJ-SYBASE-BOAUDITDB -SCHED Default-Application-Backup"
go
CS-LIBRARY error:
comn_cryptolib_load(): user api layer: internal common library error: Failed to load library '%1!'.
CT-LIBRARY error:
ct_connect(): protocol specific layer: internal Client Library error: There is a tds login error. The installed encryption handler returned a status that was not CS_SUCCEED.
Finished Mon Nov 9 13:51:37 PKT 2020
exit 255
Cause
The isql64 CLI needs to be executed as the "sybase user", not the root user that is executing the backup script.
Solution
Change the backup script to switch user to the "sybase user" when executing the CLI:
FROM:/sybase/database/OCS-16_0/bin/isql -Usa -P<password> -X -I$SYBASE/interfaces -SBOBPRD < ${SYB_INPUT_FILE}
RETURN_STATUS=$?
TO:CMD_LINE="/sybase/database/OCS-16_0/bin/isql64 -Usa -P<password> -X -SBOBPRD < ${SYB_INPUT_FILE}"
su - <sybase user> -c "$CMD_LINE"
RETURN_STATUS=$?