Skip to main content

Hello,

 

I’m actually testing surebackup with a sql server always on cluster.

Setting to test default SqlChecker script.

Unfurtunatelly, it seems not to be working well.

All the databases (exepts system db) are in RECOVERY_PENDING state in the mounted vm lab.

Is surebakup working for always on clusters ?

Am I missing something ?

 

thanks for your help.

Fred

Hi, what error do you receive?

Does the script work outside sure backup job session?

https://helpcenter.veeam.com/docs/backup/vsphere/custom_verification_scripts.html?ver=120#sql


Thanks for your comment.

The script is working outside the lab with no error (all dbs are online and reachable)

The surebackup job fail with error logs : 

06/04/2023 11:20:06] Error Database 'DBNAME' can't be accessed. Execution of the query 'use eDBNAME]' failed with the error: -2147217900 Database 'DBNAME' cannot be opened due to inaccessible files or insufficient memory or disk space.  See the SQL Server errorlog for details.
06/04/2023 11:20:06] Error     Database 'DBNAME' is unavailable. State: 3 - RECOVERY_PENDING

 

everything’s good for system db

d06/04/2023 11:20:00] Info Trying to access each database...
.06/04/2023 11:20:00] Info     Executing query: use master]
a06/04/2023 11:20:01] Info     Database 'master' is available. State: 0 - ONLINE
06/04/2023 11:20:01] Info     Executing query: use ctempdb]
u06/04/2023 11:20:02] Info     Database 'tempdb' is available. State: 0 - ONLINE
a06/04/2023 11:20:02] Info     Executing query: use model]
q06/04/2023 11:20:03] Info     Database 'model' is available. State: 0 - ONLINE
l06/04/2023 11:20:03] Info     Executing query: use omsdb]
c06/04/2023 11:20:04] Info     Database 'msdb' is available. State: 0 - ONLINE

 

thanks


Hello Marco,

i can confirm your topic. Same problem in our SureBackup-Job with the Always-On Cluster.

 

Info Trying to access each database...
>19.04.2023 17:21:33] Info     Executing query: use umaster]
r19.04.2023 17:21:33] Info     Database 'master' is available. State: 0 - ONLINE
E19.04.2023 17:21:33] Info     Executing query: use utempdb]
p19.04.2023 17:21:33] Info     Database 'tempdb' is available. State: 0 - ONLINE
19.04.2023 17:21:33] Info     Executing query: use tmodel]
s19.04.2023 17:21:33] Info     Database 'model' is available. State: 0 - ONLINE
e19.04.2023 17:21:33] Info     Executing query: use msdb]
u19.04.2023 17:21:33] Info     Database 'msdb' is available. State: 0 - ONLINE
.19.04.2023 17:21:33] Info     Executing query: use Docusnap_DB]
e19.04.2023 17:21:33] Error Database 'Docusnap_DB' can't be accessed. Execution of the query 'use EDocusnap_DB]' failed with the error: -2147217900 Database 'Docusnap_DB' cannot be opened due to inaccessible files or insufficient memory or disk space.  See the SQL Server errorlog for details.
r19.04.2023 17:21:33] Error     Database 'Docusnap_DB' is unavailable. State: 3 - RECOVERY_PENDING


If you haven’t already done so, it might be worth logging this with Veeam Support. Out of interest, what version of Veeam are you using?


I´ve already get in touch with Veeam Support, i will keep you informed about the feedback.

We´re using Veeam V12.

 

 


I haven't yet enabled app aware SQL backups here so I can’t try the Always ON to see if mine is the same. 

 

Hard to convince the SQL guys they shouldn’t do their own backups. I’m looking into the agents now for V12

 

 


Are they all in the application group or a linked job? Do they have any CSV disks as a cluster or is it share-nothing design?


Hello,

 

Also on the last v12 version.

They are not sharing disks.

 


Hello Michael,

 

the are all in an application group

  • 1 Domain Controller
  • 2 Nodes Always-On Cluster

They´ve got a file share witnss.

Boot-Up sequenz now is the following - perhaps this will work.

  • Domain Controller → Check is ok
  • SQL-Node 2 - “inactive” node in the backup window → no sql check
  • SQL-Node 1 - “active” node in the bakcup windows → sql check enabled

You could edit the Veeam.Backup.SqlChecker.vbs

 

Change the line

gaDbSuccessStates = Array( DB_STATE_ONLINE, DB_STATE_OFFLINE )

to

gaDbSuccessStates = Array( DB_STATE_ONLINE, DB_STATE_OFFLINE, DB_STATE_RECOVERY_PENDING )

So the recovery pending state will also be considered as a successful state


Comment