Post job scripts with multiple VMs in the job

Availability for the Always-On Enterprise

Post job scripts with multiple VMs in the job

Veeam Logoby kapple » Tue Nov 22, 2016 6:19 pm

Hi,

First, I am running Veeam 9.0.0.1491 on Windows server 2008 R2.

We have some application/database server pairs that that are backed up. When the snapshot commits after the backup, sometimes the application listeners that communicate with the DB servers hiccup. They still run, but the connection is broken long enough, that the application no longer works. The usual fix is to restart any application listeners.

I thought this would be a great opportunity to try a post processing script. I created a backup job for 2 Windows servers, one an application server, one a database server. At the end of the job, I want Windows services on each server to restart.

Since I can only run one post processing script per job, I have all the commands in the same .bat file. The commands are:
Code: Select all
@echo off
REM This will stop the windows services
sc stop developmentSQL_APP_LISTENER
sc stop developmentSQL_DB_LISTENER
REM This will pause this script for 30 seconds
timeout /t 30
REM This will start the windows services
sc start developmentSQL_DB_LISTENER
timeout /t 10
sc start developmentSQL_APP_LISTENER


The developmentSQL_APP_LISTENER Windows service runs on the application server, and the developmentSQL_DB_LISTENER Windows service runs on the database server. I want to test my understanding of how this will work, since this script will run on both servers.

First, the script is hosted on the Veeam B&R server, but the command are run on the servers that are being backed up, correct?

Second, the call to stop and start a service that does not run on one server, will fail, but the call to stop and stop a service that does run on the server should succeed, correct?

Unfortunately, there are no Windows event log entries on either server indicating that the service stopped or started.
Furthermore, from the Veeam backup job log, there is the following warning:
11/21/2016 5:37:38 PM :: Post-job script terminated with exit code 1060

From what I am describing, am I doing this correctly? I realize I can configure backup jobs that only process one server. However, since jobs do queue, I don't want one server's listener to restart, then have the other backup job break the app server/DB server connection again.

Any feedback and advice will be greatly appreciated.

Thanks,
Ken
kapple
Influencer
 
Posts: 22
Liked: 2 times
Joined: Thu Jun 14, 2012 7:13 pm
Location: Rochester, NY
Full Name: Ken Applebaum

Re: Post job scripts with multiple VMs in the job

Veeam Logoby PTide » Tue Nov 22, 2016 6:29 pm

Hi,

First, the script is hosted on the Veeam B&R server, but the command are run on the servers that are being backed up, correct?
No, the script is executed on VBR server so if you want to perform some actions on the VMs being backed up you should write such script that logs in the target VM and perform required actions.

Post-job script terminated with exit code 1060
Scripts is considered to be executed successfully only if it returns 0 code.

I don't want one server's listener to restart, then have the other backup job break the app server/DB server connection again.
You don't have to - just change your script so it affect only one server.

Thanks
PTide
Veeam Software
 
Posts: 3019
Liked: 246 times
Joined: Tue May 19, 2015 1:46 pm

Re: Post job scripts with multiple VMs in the job

Veeam Logoby kapple » Tue Nov 22, 2016 6:49 pm

Hi PTide,

So from what you are telling me, I should have the .bat file point to the service on the target VM. Since Veeam B&R only gives the option to run a script that is hosted on the B&R server, I need to figure out how to run these commands on the remote machine from this script. I know this is asking for more than my original post, but would this do the trick?

Code: Select all
@echo off
REM This will stop the windows services
sc \\appservername stop developmentSQL_APP_LISTENER
sc \\dbservername stop developmentSQL_DB_LISTENER
REM This will pause this script for 30 seconds
timeout /t 30
REM This will start the windows services
sc \\dbservername start developmentSQL_DB_LISTENER
net start developmentSQL_DB_LISTENER
timeout /t 10
sc \\appservername start developmentSQL_APP_LISTENER
net start  developmentSQL_APP_LISTENER

Thanks,
- Ken
kapple
Influencer
 
Posts: 22
Liked: 2 times
Joined: Thu Jun 14, 2012 7:13 pm
Location: Rochester, NY
Full Name: Ken Applebaum

Re: Post job scripts with multiple VMs in the job

Veeam Logoby PTide » Tue Nov 22, 2016 7:01 pm

I guess you can just place a script to be executed on the target VM and use post-job script to login into the VM and trigger the script from the inside.
PTide
Veeam Software
 
Posts: 3019
Liked: 246 times
Joined: Tue May 19, 2015 1:46 pm

Re: Post job scripts with multiple VMs in the job

Veeam Logoby kapple » Tue Nov 22, 2016 7:12 pm

I tested a script remotely stopping and starting a service on my workstation, and it worked.
Of course, the rub will be making this work on 2 separate servers. I am going to try this out on tonight's backup:
Code: Select all
@echo off
@echo off
REM This will stop the windows services
sc \\appservername stop developmentSQL_APP_LISTENER
sc \\dbservername stop developmentSQL_DB_LISTENER
REM This will pause this script for 30 seconds
timeout /t 30
REM This will start the windows services
sc \\dbservername start developmentSQL_DB_LISTENER
net start developmentSQL_DB_LISTENER
timeout /t 15
sc \\appservername start developmentSQL_APP_LISTENER
net start developmentSQL_APP_LISTENER
kapple
Influencer
 
Posts: 22
Liked: 2 times
Joined: Thu Jun 14, 2012 7:13 pm
Location: Rochester, NY
Full Name: Ken Applebaum

Re: Post job scripts with multiple VMs in the job

Veeam Logoby v.Eremin » Wed Nov 23, 2016 10:38 am

Be aware that the post job command will be executed under Veeam service account (the one veeam specific services are running), so make sure that it has required permissions on the target machine. Thanks.
v.Eremin
Veeam Software
 
Posts: 13266
Liked: 969 times
Joined: Fri Oct 26, 2012 3:28 pm
Full Name: Vladimir Eremin

Re: Post job scripts with multiple VMs in the job

Veeam Logoby kapple » Mon Nov 28, 2016 4:59 pm 1 person likes this post

Hi,

Yes, the account has appropriate permissions to execute the script on the backup target.
I also realize that I don't need all the commands I was using.
This works fine:
Code: Select all
sc \\appservername start developmentSQL_APP_LISTENER

This is redundant:
Code: Select all
net start developmentSQL_APP_LISTENER
kapple
Influencer
 
Posts: 22
Liked: 2 times
Joined: Thu Jun 14, 2012 7:13 pm
Location: Rochester, NY
Full Name: Ken Applebaum


Return to Veeam Backup & Replication



Who is online

Users browsing this forum: Bing [Bot], ChrisSnell, Google [Bot] and 66 guests