Skip to main content
Delphix

Sybase SnapSync Fails with "Incorrect syntax near '-'" when Using a Remote Backup Server (KBA1315)

 

 

Issue

 SnapSync jobs for a Sybase ASE dSource fail with a message similar to that below.  The dSource has been configured to obtain database backup files from a remote backup server and a SnapSync job is being run to apply an existing backup to the staging database.

Run SnapSync for database "bucks".
Failed to restore the header for dump file "/syb_backups/bucks_full_2.dmp": 102: Incorrect syntax near '-'.
Make sure the file exists and the backup location for the dSource and its contents are accessible and correct. Then perform a sync on the dSource.

The fault message may also report a syntax error near '.', as below.

Run SnapSync for database "bucks".
Failed to restore the header for dump file "/syb_backups/bucks_full_2.dmp": 102: Incorrect syntax near '.'.
Make sure the file exists and the backup location for the dSource and its contents are accessible and correct. Then perform a sync on the dSource.

Troubleshooting

The failure occurs as the database is trying to populate metadata for the dump file via a LOAD DATABASE statement.  Check the configuration of the remote backup server for the dSource.  This information is not currently displayed in the Delphix Admin GUI but it is accessible via the CLI.

- Log into the CLI as the delphix_admin user.

- Select the dSource and list its properties.

delphix.engine> source
delphix.engine source> select bucks
delphix.engine source 'bucks'> ls
Properties
    type: ASELinkedSource
    name: bucks
    config: bucks
    container: bucks
    dumpCredentials: (unset)
    externalFilePath: (unset)
    linked: true
    loadBackupPath: /syb_backups
    loadLocation:
        type: ASEBackupLocation
        backupHost: ASESRC
        backupHostUser: ASESRC/delphix_os
        backupServerName: sybase-source-host.example.com
    operations:
        type: LinkedSourceOperations
        postSync: (empty)
        preSync: (empty)
    reference: ASE_LINKED_SOURCE-2
    restoration: false
    runtime:
        type: ASESourceRuntime
        accessible: true
        databaseSize: 350MB
        durabilityLevel: FULL
        enabled: ENABLED
        status: RUNNING
        truncateLogOnCheckpoint: false
    staging: false
    stagingSource: dxvfz5a6deq1Al89Tb_bucks
    status: DEFAULT
    virtual: false

Resolution

The loadLocation property defines the remote backup server configuration.  In this example, the backupServerName has been set to the hostname of the source system.  This leads to a syntax error when a hyphen or a dot is encountered in the backupServerName value.  This property should be set to the name of the backup server instance running on the specified host.  In this example, the value should be 'RH65_ASE16_S1_BS'.  This can be corrected via the CLI using the following commands.

delphix.engine> source
delphix.engine source> select bucks
delphix.engine source 'bucks'> update
delphix.engine source 'bucks' update *> set loadLocation.backupServerName=RH65_ASE16_S1_BS
delphix.engine source 'bucks' update *> commit

For Delphix versions from 4.1 to 4.3, these properties are available in the CLI under monitorLocation rather than loadLocation.  This specifies the location to monitor for backups following the initial load.  The initial load backup server can be specified via the loadBackupServerName property which has been removed from version 5.

If the backup server configuration has been confirmed to be correct and the problem persists, please open a Delphix Support case for further assistance.