<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3038597362007412102</id><updated>2026-04-01T02:34:05.341-07:00</updated><category term="T-SQL Scripts"/><category term="SQL Server"/><category term="Always On"/><category term="Performance Tuning"/><category term="Database backup and Recovery"/><category term="Replication"/><category term="SQL Server Login"/><category term="SQL Server Clustering"/><category term="SQL Server Commands"/><category term="SQL Server configuration"/><category term="System databases"/><category term="Database Mirroring"/><category term="Log shipping"/><category term="Patching"/><category term="Profiler"/><category term="SQL Server AlwaysOn"/><category term="SQL Server Differences"/><category term="SSIS PACKAGE"/><category term="Azure-Storage"/><category term="DBCC Commands"/><category term="DMV"/><category term="Go-Live"/><category term="Linked Server"/><category term="SQL Server Concepts and Guidelines"/><category term="SQL Server Indexing"/><category term="SQL Server Service pack update  patches hotfix and cumulative update"/><category term="SQL Server Trace"/><category term="SQL jobs"/><category term="Service Principal Name (SPN)"/><category term="Storage-Robocopy"/><category term="TDE"/><category term="Trace"/><category term="Trace template"/><category term="Transnational Replication"/><category term="Transparent Data Encryption"/><category term="cursor"/><category term="max degree of parallelism"/><category term="powershell"/><category term="snapshot database"/><title type='text'>SQL-ASK For DBAs</title><subtitle type='html'>This blog is created only for SQL Server professional to share scenario based issue on AlwaysOn, Clustering, Mirroring, Replication, Log-shipping, Backup and recovery, performance Tuning and other important issues on SQL Server which SQL DBAs gets on their production environment.If you like this blog sqlask.blogspot.com please share it with others- Jainendra Verma</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sqlask.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3038597362007412102/posts/default?max-results=3'/><link rel='alternate' type='text/html' href='http://sqlask.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3038597362007412102/posts/default?start-index=4&amp;max-results=3'/><author><name>Jainendra Verma</name><uri>http://www.blogger.com/profile/13497651955073866837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXdFicCo57n8SbrjyF8yO0lCLiCi6AtBNtgUxOZMZuRXmNwhYK9ATu6XbVpfo6dE9DDLBhFYqkz0GAPSuXjiBzZi-hnLyXWuM3QQ4ixU5vVP4xTDlMiL1EMENA6M5WNK-3DK6lTi5ZWDxcxM-Zb5YILvVdN906aAd5Iov6jPCad9Y3/s220/JainendraVermaPic.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>68</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>3</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3038597362007412102.post-5971225161046384234</id><published>2023-03-30T22:32:00.000-07:00</published><updated>2023-03-30T22:33:15.737-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server Login"/><title type='text'>Grant sysadmin permissions to windows login when SQL Server SA login password is not known</title><content type='html'>&lt;div&gt;&lt;br /&gt;Here are the detailed steps:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1: Start SQL Server in Single User Mode Open SQL Server Configuration Manager.&lt;/b&gt;&lt;div&gt;&amp;nbsp; &lt;br /&gt;Stop the SQL Server Instance you need to recover&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp;&amp;nbsp;&lt;br /&gt;Right-click on the SQL Server Instance and select Properties.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp;&amp;nbsp;&lt;br /&gt;Click on the Advanced tab, and add -m or -f; to the beginning of Startup parameters.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp;&amp;nbsp;&lt;br /&gt;Click OK and start the instance.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2: Add an existing login or a newly created one to the sysadmin server role&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;After the SQL Server Instance starts in single-user mode, the Windows Administrator account is able to connect to SQL Server using the sqlcmd utility using Windows authentication. You can use Transact-SQL commands such as &quot;sp_addsrvrolemember&quot; to add an existing login or a newly created one to the sysadmin server role.&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;Open an elevated command prompt and enter the command:&lt;div&gt;&lt;br /&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;b&gt;SQLCMD -S myServer\instanceName&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Replace myServer\instanceName with the name of the computer and the instance of SQL Server that you want to connect to. &lt;br /&gt;At the next prompts, enter the following commands to create windows login for sysadmin role:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;b&gt; CREATE LOGIN [US\TEST] FROM WINDOWS&lt;br /&gt; go&lt;br /&gt; ALTER SERVER ROLE sysadmin ADD MEMBER [US\TEST]&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(Grant sysadmin role for newly&amp;nbsp;created login or existing login)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;b&gt; go&lt;br /&gt; quit&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &lt;br /&gt;Stop the SQL Server instance.&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; |&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;Remove the -m option from the Start parameters field,&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/div&gt;&lt;div&gt;and then start the SQL Server service. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;At this point you should be able to login to SQL Server with sysadmin privileges and reset the SA login password.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlask.blogspot.com/feeds/5971225161046384234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlask.blogspot.com/2023/03/grant-sysadmin-permissions-to-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3038597362007412102/posts/default/5971225161046384234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3038597362007412102/posts/default/5971225161046384234'/><link rel='alternate' type='text/html' href='http://sqlask.blogspot.com/2023/03/grant-sysadmin-permissions-to-windows.html' title='Grant sysadmin permissions to windows login when SQL Server SA login password is not known'/><author><name>Jainendra Verma</name><uri>http://www.blogger.com/profile/13497651955073866837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXdFicCo57n8SbrjyF8yO0lCLiCi6AtBNtgUxOZMZuRXmNwhYK9ATu6XbVpfo6dE9DDLBhFYqkz0GAPSuXjiBzZi-hnLyXWuM3QQ4ixU5vVP4xTDlMiL1EMENA6M5WNK-3DK6lTi5ZWDxcxM-Zb5YILvVdN906aAd5Iov6jPCad9Y3/s220/JainendraVermaPic.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3038597362007412102.post-1077843422673172036</id><published>2023-03-28T09:11:00.001-07:00</published><updated>2023-03-28T09:11:21.576-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Patching"/><title type='text'> SQL Server Services stopped after applying SQL Server Cumulative/Security update</title><content type='html'>&lt;p&gt;&amp;nbsp;SQL Server Services stopped after applying SQL Server Cumulative/Security update due to following error:&lt;/p&gt;&lt;!-- x-tinymce/html --&gt;
&lt;p&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;1. Cannot find the user &#39;ModuleSigner&#39;, because it does not exist or you do not have permission.&lt;br /&gt;2. Cannot find the login &#39;##MS_SSISServerCleanupJobLogin##&#39;, because it does not exist or you do not have permission.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Note: Above error is one of the example.&amp;nbsp; Analyst may receive similar error for other missing security objects.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;Whenever we have such upgrade script (SQL Server Cumulative\Security updates) failure issue and SQL Server instance is not getting started,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;To find the root cause of the issue, go to the SQL Server installation Error location&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;Example&lt;/b&gt;: C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\Log\&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;b&gt;If you found below error&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;1. Cannot find the user &#39;ModuleSigner&#39;, because it does not exist or you do not have permission.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;2. Cannot find the login &#39;##MS_SSISServerCleanupJobLogin##&#39;, because it does not exist or you do not have permission.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;We need to use trace flag 902 to start SQL which would bypass script upgrade mode. This would allow us the find the cause and fix it. So, here are the steps to fix missing user &#39;ModuleSigner&#39; and login &#39;##MS_SSISServerCleanupJobLogin##&#39;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;SQL instance needs to be rebooted and after that SQL Server Service does not start.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;As I mentioned earlier, first we started SQL with trace flag 902. I started SQL using trace flag 902 as below via command prompt.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;strong&gt;Step 1:&lt;/strong&gt;&amp;nbsp;&lt;b&gt;NET START MSSQLSERVER /T902&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;For named instance, we need to use below (replace instance name based on your environment)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;NET START MSSQL$INSTANCENAME /T902&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; As soon as SQL Server was started, you will able to connect because the upgrade installation didn’t run. Here is the T-SQL script which creates missing logins &#39;##MS_SSISServerCleanupJobLogin##&#39; and users &#39;ModuleSigner&#39;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;USE [SSISDB]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;CREATE USER [ModuleSigner] FOR CERTIFICATE [MS_SQLISSigningCertificate]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;USE [master] &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;GO &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;CREATE LOGIN [##MS_SSISServerCleanupJobLogin##] WITH PASSWORD=&#39;Pa$$w0rd&#39;, DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;GO &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;GRANT VIEW SERVER STATE TO ##MS_SSISServerCleanupJobLogin##&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;USE [SSISDB] &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;CREATE USER [##MS_SSISServerCleanupJobUser##] FOR LOGIN [##MS_SSISServerCleanupJobLogin##] WITH DEFAULT_SCHEMA=[dbo]&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; After creating the login\user, stopped SQL Service using SQL Server Configuration Manager. We can also do it via command prompt using below command. Below is for the default instance.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;b&gt;NET STOP MSSQLSERVER&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;If you are dealing with named instance, then below is the command ((replace InstanceName based on your environment)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;b&gt;NET START MSSQL$INSTANCENAME&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;strong&gt;Step 4:&lt;/strong&gt;&amp;nbsp;Then start SQL normally (without trace flag) using SQL Server Configuration Manager.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;b&gt;NET START MSSQLSERVER&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: verdana, geneva; font-size: 10pt;&quot;&gt;&lt;strong&gt;Step 5:&lt;/strong&gt;&amp;nbsp;Verify the SQL instance and install the latest Cumulative\Security update for the instance&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlask.blogspot.com/feeds/1077843422673172036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlask.blogspot.com/2023/03/sql-server-services-stopped-after.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3038597362007412102/posts/default/1077843422673172036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3038597362007412102/posts/default/1077843422673172036'/><link rel='alternate' type='text/html' href='http://sqlask.blogspot.com/2023/03/sql-server-services-stopped-after.html' title=' SQL Server Services stopped after applying SQL Server Cumulative/Security update'/><author><name>Jainendra Verma</name><uri>http://www.blogger.com/profile/13497651955073866837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXdFicCo57n8SbrjyF8yO0lCLiCi6AtBNtgUxOZMZuRXmNwhYK9ATu6XbVpfo6dE9DDLBhFYqkz0GAPSuXjiBzZi-hnLyXWuM3QQ4ixU5vVP4xTDlMiL1EMENA6M5WNK-3DK6lTi5ZWDxcxM-Zb5YILvVdN906aAd5Iov6jPCad9Y3/s220/JainendraVermaPic.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3038597362007412102.post-7679934965100418049</id><published>2021-07-06T05:09:00.002-07:00</published><updated>2021-07-06T05:09:33.638-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Always On"/><title type='text'>Refresh database from PROD to Dev server in existing Alway-on configuration automatically</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;PowerShell&amp;nbsp;Script to copy from PROD server to Dev03 and from Dev03(AG Primary) to Dev04(AG secondary) server.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;You can schedule&amp;nbsp;a job in task scheduler to automatic copy file.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;# Delete all existing backup from below location&lt;/p&gt;&lt;p&gt;Remove-Item D:\ProdBackup\*.bak&lt;/p&gt;&lt;p&gt;Write-Output &quot;Deleted all old existing backup from Dev03 server : TASK COMPLETED&quot;&lt;/p&gt;&lt;p&gt;# Source and Destination backup file location&lt;/p&gt;&lt;p&gt;$_sourcePath =&quot;\\ABC-PROD01\e$\CopyOnlyBackup&quot;&lt;/p&gt;&lt;p&gt;$_destinationPath = &quot;D:\ProdBackup&quot;;&lt;/p&gt;&lt;p&gt;# Pick latest .bak file and Copying file Des to Source and rename&lt;/p&gt;&lt;p&gt;$Datetime =Get-Date&lt;/p&gt;&lt;p&gt;Write-Output (&quot;PROD Latest backup file copying started at &quot; + $Datetime + &quot; ...COPY TASK RUNNING.....&quot; )&lt;/p&gt;&lt;p&gt;@(Get-ChildItem $_sourcePath -Filter *.bak | Sort LastWriteTime -Descending)[0] | % { Copy-Item -path $_.FullName -destination $(&quot;$_destinationPath\testDB.bak&quot;) -force}&amp;nbsp;&lt;/p&gt;&lt;p&gt;$Datetime1 =Get-Date&lt;/p&gt;&lt;p&gt;Write-Output (&quot;Latest backup file copy Completed on Dev03 server and renamed database file name at &quot; + $Datetime1 + &quot;...COPY TASK COMPLETED...&quot; )&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;################# Copy backup From Dev03 to Dev04 ######################&lt;/b&gt;&lt;/p&gt;&lt;p&gt;# Delete all existing backup from below location&lt;/p&gt;&lt;p&gt;Remove-Item \\ABC-DEV04\d$\ProdBackup\*.bak&lt;/p&gt;&lt;p&gt;Write-Output &quot;Deleted all old existing backup from Dev04 server : TASK COMPLETED&quot;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;# Source and Destination backup file location&lt;/p&gt;&lt;p&gt;$_sourcePath =&quot;D:\ProdBackup&quot;&lt;/p&gt;&lt;p&gt;$_destinationPath = &quot;\\ABC-DEV04\d$\ProdBackup&quot;;&lt;/p&gt;&lt;p&gt;# Pick latest .bak file and Copying file Des to Source and rename&lt;/p&gt;&lt;p&gt;$Datetime =Get-Date&lt;/p&gt;&lt;p&gt;Write-Output (&quot;PROD Latest backup file copying started at &quot; + $Datetime + &quot; ...COPY TASK RUNNING.....&quot; )&lt;/p&gt;&lt;p&gt;@(Get-ChildItem $_sourcePath -Filter *.bak | Sort LastWriteTime -Descending)[0] | % { Copy-Item -path $_.FullName -destination $(&quot;$_destinationPath\testDB.bak&quot;) -force}&amp;nbsp;&lt;/p&gt;&lt;p&gt;$Datetime1 =Get-Date&lt;/p&gt;&lt;p&gt;Write-Output (&quot;Latest backup file copy Completed on Dev server and renamed database file name at &quot; + $Datetime1 + &quot;...COPY TASK COMPLETED...&quot; )&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;Once Copy done by above Script.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;&lt;b&gt;Create below job on AG primary server Dev03.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;&lt;b&gt;Note: This will contain total 6 step to Restore DB on Primary and Secondary&amp;nbsp;server and will configure AG between Dev03 and and Dev04 automatically.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;USE [msdb]&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; Job [Monthly_Test_DB_Refresh_From_PROD]&amp;nbsp; &amp;nbsp; Script Date: 7/6/2021 7:45:32 AM ******/&lt;/p&gt;&lt;p&gt;EXEC msdb.dbo.sp_delete_job @job_id=N&#39;8c70a241-323d-48e5-80ce-f97190c07661&#39;, @delete_unused_schedule=1&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; Job [Monthly_Test_DB_Refresh_From_PROD]&amp;nbsp; &amp;nbsp; Script Date: 7/6/2021 7:45:32 AM ******/&lt;/p&gt;&lt;p&gt;BEGIN TRANSACTION&lt;/p&gt;&lt;p&gt;DECLARE @ReturnCode INT&lt;/p&gt;&lt;p&gt;SELECT @ReturnCode = 0&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; JobCategory [[Uncategorized (Local)]]&amp;nbsp; &amp;nbsp; Script Date: 7/6/2021 7:45:32 AM ******/&lt;/p&gt;&lt;p&gt;IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N&#39;[Uncategorized (Local)]&#39; AND category_class=1)&lt;/p&gt;&lt;p&gt;BEGIN&lt;/p&gt;&lt;p&gt;EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N&#39;JOB&#39;, @type=N&#39;LOCAL&#39;, @name=N&#39;[Uncategorized (Local)]&#39;&lt;/p&gt;&lt;p&gt;IF (@@ERROR &amp;lt;&amp;gt; 0 OR @ReturnCode &amp;lt;&amp;gt; 0) GOTO QuitWithRollback&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;END&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DECLARE @jobId BINARY(16)&lt;/p&gt;&lt;p&gt;EXEC @ReturnCode =&amp;nbsp; msdb.dbo.sp_add_job @job_name=N&#39;Monthly_Test_DB_Refresh_From_PROD&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@enabled=1,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@notify_level_eventlog=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@notify_level_email=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@notify_level_netsend=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@notify_level_page=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@delete_level=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@description=N&#39;No description available.&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@category_name=N&#39;[Uncategorized (Local)]&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@owner_login_name=N&#39;sa&#39;, @job_id = @jobId OUTPUT&lt;/p&gt;&lt;p&gt;IF (@@ERROR &amp;lt;&amp;gt; 0 OR @ReturnCode &amp;lt;&amp;gt; 0) GOTO QuitWithRollback&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; Step [1-Remove AG from Dev Primary]&amp;nbsp; &amp;nbsp; Script Date: 7/6/2021 7:45:32 AM ******/&lt;/p&gt;&lt;p&gt;EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N&#39;1-Remove AG from Dev Primary&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@step_id=1,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@cmdexec_success_code=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_action=4,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_step_id=2,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_action=2,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_step_id=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_attempts=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_interval=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@os_run_priority=0, @subsystem=N&#39;CmdExec&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@command=N&#39;&lt;b&gt;sqlcmd -S&amp;nbsp;ABC-DEV03&amp;nbsp;-i D:\ProdBackup\AG_Refresh_SQL_Scripts\RemoveDBFromAGgroup.sql&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@flags=0&lt;/p&gt;&lt;p&gt;IF (@@ERROR &amp;lt;&amp;gt; 0 OR @ReturnCode &amp;lt;&amp;gt; 0) GOTO QuitWithRollback&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; Step [2-DeleteDBOnSecondary]&amp;nbsp; &amp;nbsp; Script Date: 7/6/2021 7:45:32 AM ******/&lt;/p&gt;&lt;p&gt;EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N&#39;2-DeleteDBOnSecondary&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@step_id=2,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@cmdexec_success_code=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_action=4,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_step_id=3,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_action=2,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_step_id=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_attempts=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_interval=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@os_run_priority=0, @subsystem=N&#39;CmdExec&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@command=N&#39;&lt;b&gt;sqlcmd -S&amp;nbsp;&lt;/b&gt;&lt;b&gt;ABC-DEV04&lt;/b&gt;&lt;b&gt;&amp;nbsp;-i D:\ProdBackup\AG_Refresh_SQL_Scripts\DeleteDBOnSecondary.sql&lt;/b&gt;&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@flags=0&lt;/p&gt;&lt;p&gt;IF (@@ERROR &amp;lt;&amp;gt; 0 OR @ReturnCode &amp;lt;&amp;gt; 0) GOTO QuitWithRollback&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; Step [3-DeleteDBOnPrimary]&amp;nbsp; &amp;nbsp; Script Date: 7/6/2021 7:45:32 AM ******/&lt;/p&gt;&lt;p&gt;EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N&#39;3-DeleteDBOnPrimary&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@step_id=3,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@cmdexec_success_code=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_action=4,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_step_id=4,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_action=2,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_step_id=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_attempts=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_interval=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@os_run_priority=0, @subsystem=N&#39;CmdExec&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@command=N&#39;&lt;b&gt;sqlcmd -S&amp;nbsp;&lt;/b&gt;&lt;b&gt;ABC-DEV03&lt;/b&gt;&lt;b&gt;&amp;nbsp;-i D:\ProdBackup\AG_Refresh_SQL_Scripts\DeleteDBOnPrimary.sql&lt;/b&gt;&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@flags=0&lt;/p&gt;&lt;p&gt;IF (@@ERROR &amp;lt;&amp;gt; 0 OR @ReturnCode &amp;lt;&amp;gt; 0) GOTO QuitWithRollback&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; Step [4-RestoreDBOnPrimary]&amp;nbsp; &amp;nbsp; Script Date: 7/6/2021 7:45:32 AM ******/&lt;/p&gt;&lt;p&gt;EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N&#39;4-RestoreDBOnPrimary&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@step_id=4,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@cmdexec_success_code=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_action=4,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_step_id=5,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_action=2,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_step_id=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_attempts=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_interval=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@os_run_priority=0, @subsystem=N&#39;CmdExec&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@command=N&#39;&lt;b&gt;sqlcmd -S&amp;nbsp;&lt;/b&gt;&lt;b&gt;ABC-DEV03&lt;/b&gt;&lt;b&gt;&amp;nbsp;-i D:\ProdBackup\AG_Refresh_SQL_Scripts\RestoreDBOnPrimary.sql&#39;&lt;/b&gt;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@flags=0&lt;/p&gt;&lt;p&gt;IF (@@ERROR &amp;lt;&amp;gt; 0 OR @ReturnCode &amp;lt;&amp;gt; 0) GOTO QuitWithRollback&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; Step [5-RestoreDBOnSecondary]&amp;nbsp; &amp;nbsp; Script Date: 7/6/2021 7:45:32 AM ******/&lt;/p&gt;&lt;p&gt;EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N&#39;5-RestoreDBOnSecondary&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@step_id=5,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@cmdexec_success_code=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_action=4,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_step_id=6,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_action=2,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_step_id=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_attempts=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_interval=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@os_run_priority=0, @subsystem=N&#39;CmdExec&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@command=N&#39;&lt;b&gt;sqlcmd -S&amp;nbsp;&lt;/b&gt;&lt;b&gt;ABC-DEV03&lt;/b&gt;&lt;b&gt;&amp;nbsp;-i D:\ProdBackup\AG_Refresh_SQL_Scripts\RestoreDBOnSecondary.sql&lt;/b&gt;&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@flags=0&lt;/p&gt;&lt;p&gt;IF (@@ERROR &amp;lt;&amp;gt; 0 OR @ReturnCode &amp;lt;&amp;gt; 0) GOTO QuitWithRollback&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; Step [6- Add DB in AG]&amp;nbsp; &amp;nbsp; Script Date: 7/6/2021 7:45:32 AM ******/&lt;/p&gt;&lt;p&gt;EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N&#39;6- Add DB in AG&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@step_id=6,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@cmdexec_success_code=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_action=1,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_success_step_id=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_action=2,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@on_fail_step_id=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_attempts=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@retry_interval=0,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@os_run_priority=0, @subsystem=N&#39;CmdExec&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@command=N&#39;&lt;b&gt;sqlcmd -S&amp;nbsp;&lt;/b&gt;&lt;b&gt;ABC-DEV03&lt;/b&gt;&lt;b&gt;&amp;nbsp;-i D:\ProdBackup\AG_Refresh_SQL_Scripts\AddDBInAG.sql&#39;&lt;/b&gt;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@flags=0&lt;/p&gt;&lt;p&gt;IF (@@ERROR &amp;lt;&amp;gt; 0 OR @ReturnCode &amp;lt;&amp;gt; 0) GOTO QuitWithRollback&lt;/p&gt;&lt;p&gt;EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1&lt;/p&gt;&lt;p&gt;IF (@@ERROR &amp;lt;&amp;gt; 0 OR @ReturnCode &amp;lt;&amp;gt; 0) GOTO QuitWithRollback&lt;/p&gt;&lt;p&gt;EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N&#39;(local)&#39;&lt;/p&gt;&lt;p&gt;IF (@@ERROR &amp;lt;&amp;gt; 0 OR @ReturnCode &amp;lt;&amp;gt; 0) GOTO QuitWithRollback&lt;/p&gt;&lt;p&gt;COMMIT TRANSACTION&lt;/p&gt;&lt;p&gt;GOTO EndSave&lt;/p&gt;&lt;p&gt;QuitWithRollback:&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; IF (@@TRANCOUNT &amp;gt; 0) ROLLBACK TRANSACTION&lt;/p&gt;&lt;p&gt;EndSave:&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;&lt;b&gt;Now the below SQL script of code&amp;nbsp;divided&amp;nbsp;in 6 step for your above created SQL Job.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;Save each steps of code on Dev03(AG primary server) at&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;D:\ProdBackup\AG_Refresh_SQL_Scripts\*.sql format&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;Note: File name refer from created job steps.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;All 6 *.sql file will access by above job.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;Note: Before/while saving the .sql file go to Query --&amp;gt; and SQLCMD option.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;-----------File name 1 -Remove DB from AG group-------------------------&lt;/b&gt;&lt;/p&gt;&lt;p&gt;:connect&amp;nbsp;&lt;b&gt;ABC-DEV03&lt;/b&gt;&lt;/p&gt;&lt;p&gt;USE [master]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; AvailabilityDatabase testdb&amp;nbsp; &amp;nbsp; Script Date: 7/1/2021 2:45:39 AM ******/&lt;/p&gt;&lt;p&gt;ALTER AVAILABILITY GROUP [ABC-DV-AWO]&lt;/p&gt;&lt;p&gt;REMOVE DATABASE testdb;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;-----------File name 2&amp;nbsp;Delete DB on Secondary ------------------------------&lt;/b&gt;&lt;/p&gt;&lt;p&gt;:connect&amp;nbsp;&lt;b&gt;ABC-DEV04&lt;/b&gt;&lt;/p&gt;&lt;p&gt;EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N&#39;testdb &#39;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;USE [master]&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; Database testdb&amp;nbsp; &amp;nbsp; Script Date: 7/1/2021 2:48:58 AM ******/&lt;/p&gt;&lt;p&gt;DROP DATABASE testdb&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;b&gt;----------File name 3&amp;nbsp;Delete DB on Primary------------------------------&lt;/b&gt;&lt;/p&gt;&lt;p&gt;:connect&amp;nbsp;&lt;b&gt;ABC-DEV03&lt;/b&gt;&lt;/p&gt;&lt;p&gt;EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N&#39;testdb &#39;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;use testdb&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;use [master]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;USE [master]&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;ALTER DATABASE testdb SET&amp;nbsp; SINGLE_USER WITH ROLLBACK IMMEDIATE&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;USE [master]&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;/****** Object:&amp;nbsp; Database testdb&amp;nbsp; &amp;nbsp; Script Date: 7/1/2021 2:51:08 AM ******/&lt;/p&gt;&lt;p&gt;DROP DATABASE testdb&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;-------File name 4&amp;nbsp;Restore DB on Secondary -------------------------------&lt;/b&gt;&lt;/p&gt;&lt;p&gt;:connect&amp;nbsp;&lt;b&gt;ABC-DEV04&lt;/b&gt;&lt;/p&gt;&lt;p&gt;RESTORE DATABASE TestDB&amp;nbsp;&lt;/p&gt;&lt;p&gt;FROM DISK = N&#39;D:\ProdBackup\testdb.bak&#39;&amp;nbsp;&lt;/p&gt;&lt;p&gt;WITH FILE = 1,&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;MOVE N&#39;testdb&#39; TO N&#39;E:\Data\testdb.mdf&#39;,&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;MOVE N&#39;testdb_log&#39; TO N&#39;L:\DBLogs\testdb.ldf&#39;,&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt; NORECOVERY,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;NOUNLOAD, REPLACE, STATS = 5&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;-------File name 5&amp;nbsp;Restore DB on Primary-------------------------------&lt;/b&gt;&lt;/p&gt;&lt;p&gt;:connect&amp;nbsp;&lt;b&gt;ABC-DEV03&lt;/b&gt;&lt;/p&gt;&lt;p&gt;RESTORE DATABASE TestDB&amp;nbsp;&lt;/p&gt;&lt;p&gt;FROM DISK = N&#39;D:\ProdBackup\testdb.bak&#39;&amp;nbsp;&lt;/p&gt;&lt;p&gt;WITH FILE = 1,&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;MOVE N&#39;testdb&#39; TO N&#39;E:\Data\testdb.mdf&#39;,&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;MOVE N&#39;testdb_log&#39; TO N&#39;L:\DBLogs\testdb.ldf&#39;,&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;NOUNLOAD, REPLACE, STATS = 50&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;---------------File name 6 - add DB in AG -----------------------&lt;/b&gt;&lt;/p&gt;&lt;p&gt;--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.&lt;/p&gt;&lt;p&gt;:Connect&amp;nbsp;&lt;b&gt;ABC-DEV03&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;USE [master]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ALTER AVAILABILITY GROUP [ABC-DV-AWO]&lt;/p&gt;&lt;p&gt;MODIFY REPLICA ON N&#39;&lt;b&gt;ABC-DEV04&lt;/b&gt;&#39; WITH (SEEDING_MODE = MANUAL)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;USE [master]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ALTER AVAILABILITY GROUP [ABC-DV-AWO]&lt;/p&gt;&lt;p&gt;ADD DATABASE testdb;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;:Connect&amp;nbsp;&lt;b&gt;ABC-DEV04&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-- Wait for the replica to start communicating&lt;/p&gt;&lt;p&gt;begin try&lt;/p&gt;&lt;p&gt;declare @conn bit&lt;/p&gt;&lt;p&gt;declare @count int&lt;/p&gt;&lt;p&gt;declare @replica_id uniqueidentifier&amp;nbsp;&lt;/p&gt;&lt;p&gt;declare @group_id uniqueidentifier&lt;/p&gt;&lt;p&gt;set @conn = 0&lt;/p&gt;&lt;p&gt;set @count = 30 -- wait for 5 minutes&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;if (serverproperty(&#39;IsHadrEnabled&#39;) = 1)&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;and (isnull((select member_state from master.sys.dm_hadr_cluster_members where upper(member_name COLLATE Latin1_General_CI_AS) = upper(cast(serverproperty(&#39;ComputerNamePhysicalNetBIOS&#39;) as nvarchar(256)) COLLATE Latin1_General_CI_AS)), 0) &amp;lt;&amp;gt; 0)&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;and (isnull((select state from master.sys.database_mirroring_endpoints), 1) = 0)&lt;/p&gt;&lt;p&gt;begin&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; select @group_id = ags.group_id from master.sys.availability_groups as ags where name = N&#39;ABC-DV-AWO&#39;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;select @replica_id = replicas.replica_id from&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;master.sys.availability_replicas as replicas&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;where upper(replicas.replica_server_name COLLATE Latin1_General_CI_AS) = upper(@@SERVERNAME COLLATE Latin1_General_CI_AS) and group_id = @group_id&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;while @conn &amp;lt;&amp;gt; 1 and @count &amp;gt; 0&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;begin&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;set @conn = isnull((select connected_state from&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt; master.sys.dm_hadr_availability_replica_states as states where states.replica_id = @replica_id), 1)&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;if @conn = 1&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;begin&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;-- exit loop when the replica is connected, or if the query cannot find the replica status&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;break&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;end&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;waitfor delay &#39;00:00:10&#39;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;set @count = @count - 1&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;end&lt;/p&gt;&lt;p&gt;end&lt;/p&gt;&lt;p&gt;end try&lt;/p&gt;&lt;p&gt;begin catch&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;-- If the wait loop fails, do not stop execution of the alter database statement&lt;/p&gt;&lt;p&gt;end catch&lt;/p&gt;&lt;p&gt;ALTER DATABASE testdb SET HADR AVAILABILITY GROUP = [ABC-DV-AWO];&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlask.blogspot.com/feeds/7679934965100418049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqlask.blogspot.com/2021/07/refresh-database-from-prod-to-dev.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3038597362007412102/posts/default/7679934965100418049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3038597362007412102/posts/default/7679934965100418049'/><link rel='alternate' type='text/html' href='http://sqlask.blogspot.com/2021/07/refresh-database-from-prod-to-dev.html' title='Refresh database from PROD to Dev server in existing Alway-on configuration automatically'/><author><name>Jainendra Verma</name><uri>http://www.blogger.com/profile/13497651955073866837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXdFicCo57n8SbrjyF8yO0lCLiCi6AtBNtgUxOZMZuRXmNwhYK9ATu6XbVpfo6dE9DDLBhFYqkz0GAPSuXjiBzZi-hnLyXWuM3QQ4ixU5vVP4xTDlMiL1EMENA6M5WNK-3DK6lTi5ZWDxcxM-Zb5YILvVdN906aAd5Iov6jPCad9Y3/s220/JainendraVermaPic.JPG'/></author><thr:total>0</thr:total></entry></feed>