Video Screencast Help
Give us your opinion and win with Symantec! Please help us by taking this survey to tell us about your experience with Symantec Connect, so that we can continue to grow and improve.  Take the survey.

How to restore SQL databases when SQLINSTANCE was specified in lower case

Created: 22 Oct 2013 • Updated: 25 Oct 2013
Language Translations
NBdmecha's picture
+1 1 Vote
Login to vote

Problem

Cannot restore SQL databases when the SQLINSTANCE value has been defined in lower case inside the backup script. (Using an UNIX master).

Error Messages

 "Err - Error in VxBSAQueryObject: 17
Continuation: No object matched the specified predicate."

Event Type: Error
Event Source: MSSQLSERVER
Event Category: (2)
Event ID: 18210
Date:  21/10/2013
Time:  23:38:43
User:  DOMAIN\Administrator
Computer: PhysicalSERVER
Description:
BackupMedium::ReportIoError: read failure on backup device 'VNBU0-2084-484-12683XXX17'. Operating system error 995(error not found).

Troubleshooting

SQL database restores failed with the following error inmediately:

"Err - Error in VxBSAQueryObject: 17
Continuation: No object matched the specified predicate."

Other databases in the same server could be restored succesfully, and there was plenty of disk space in the server.

The directory  <install_path>\NetBackup\db\altnames exists and  inside the directory the file No.Restrictions was present.

The Media Server was available and defined as a valid restore server.

After reviewing the restore batch file:

#  This is a template for the database MOVE command.

OPERATION RESTORE

OBJECTTYPE DATABASE

RESTORETYPE MOVE

DATABASE "dbname_restore"

MOVE  " dbname_Data"

TO  "P:\DATA2\dbname_restore.mdf"

MOVE  "dbname_Log"

TO  "P:\LOG\dbname_1_restore.ldf"

#

# The following image is type: Full

NBIMAGE "PHYSICALSERVER.MSSQL7.SQLSERVER\INSTANCENAME.db.dbname.~.7.001of001.20130929234153..C"

SQLHOST "SQLSERVER"

SQLINSTANCE "INSTANCENAME"

NBSERVER "NETBACKUP"

BROWSECLIENT "SQLSERVER"

MAXTRANSFERSIZE 6

BLOCKSIZE 7

RECOVEREDSTATE RECOVERED

NUMBUFS 1

ENDOPER TRUE

the restore operation was launched  again after correcting the script as suggested in:

www.symantec.com/business/support/index?page=content&id=TECH63773

According to this BROWSECLIENT value was modified to lower case as the client name was specified in Netbackup policy:

NBIMAGE "PHYSICALSERVER.MSSQL7.SQLSERVER\INSTANCENAME.db.dbname.~.7.001of001.20130929234153..C"

SQLHOST "SQLSERVER"

SQLINSTANCE "INSTANCENAME"

NBSERVER "NETBACKUP"

BROWSECLIENT "sqlserver"

MAXTRANSFERSIZE 6

BLOCKSIZE 7

RECOVEREDSTATE RECOVERED

NUMBUFS 1

ENDOPER TRUE

It failed again because BROWSECLIENT and SQLHOST values can be specified either in low or upper case, it doesn´t matter, NetBackup uses both combinations as stated in the following articles:

http://www.symantec.com/business/support/index?page=content&pmv=print&impressions=&viewlocale=&id=HOWTO69710

http://www.symantec.com/business/support/index?page=content&id=HOWTO69710

“NetBackup tries to retrieve the backup images by specifying the client name with all upper case characters or all lower case characters.”

Basically it would be a problem if you have mixed characters but it was not the case.

We realized that backup scripts of the databases whose restores were working were specified in the following way:

OPERATION BACKUP

DATABASE “dbname”

SQLINSTANCE "INSTANCENAME"

NBSERVER "NETBACKUP"

MAXTRANSFERSIZE 6

BLOCKSIZE 7

RECOVEREDSTATE RECOVERED

NUMBUFS 1

While failing ones were like:

OPERATION BACKUP

DATABASE “dbname”

SQLINSTANCE "instancename"

NBSERVER "NETBACKUP"

MAXTRANSFERSIZE 6

BLOCKSIZE 7

RECOVEREDSTATE RECOVERED

NUMBUFS 1

After modifying the backup script to upper case, restores started to work.

The issue then, was to restore the old backup images which were saved with a bad sql instance definition.

Solution

After replacing the NBIMAGE characters referencing the sql instance in the restore script the operation was completed succesfully. So the script should be like:

RESTORETYPE MOVE

DATABASE "dbname_restore"

MOVE  " dbname_Data"

TO  "P:\DATA2\dbname_restore.mdf"

MOVE  "dbname_Log"

TO  "P:\LOG\dbname_1_restore.ldf"

#

# The following image is type: Full

NBIMAGE "PHYSICALSERVER.MSSQL7.SQLSERVER\instancename.db.dbname.~.7.001of001.20130929234153..C"

SQLHOST "SQLSERVER"

SQLINSTANCE "INSTANCENAME"

NBSERVER "NETBACKUP"

BROWSECLIENT "sqlserver"

MAXTRANSFERSIZE 6

BLOCKSIZE 7

RECOVEREDSTATE RECOVERED

NUMBUFS 1

ENDOPER TRUE