Changes for page DR Pipelines
Last modified by Nikhil Singh on 2026/07/03 08:27
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 - SQLMI-Restore-Automation-DR1 +DR Pipelines - Content
-
... ... @@ -1,34 +1,37 @@ 1 -=== ScriptOverview:===1 +==== 1. Managed Instance Restore ==== 2 2 3 - ThePowerShell script automates the following key stepstoperformageo-restore of amanaged instance databasefrom theproduction SQLMI to the DR SQLMI, including handlingthe ManagedInstance storagescaling,restoreverification, andcleanup.3 +Pipeline: [[https:~~/~~/dev.azure.com/ebsphere/ebsphere/_build?definitionId=17>>https://dev.azure.com/ebsphere/ebsphere/_build?definitionId=17]] 4 4 5 +This pipeline restores one or more databases from a source Azure SQL Managed Instance to a target Managed Instance, primarily for disaster recovery scenarios. It supports geo-restore, optional Start/stop, storage resizing (upscale/downscale), Deletion of restored databases, Pre-Delete (checks if database exists first and then deletes to allow restore) . Databases can be selected individually or via wildcard filters (for example, *Live*), and the pipeline produces a detailed execution report published to both Azure DevOps artifacts and Azure Blob Storage. 5 5 6 -=== Script Breakdown === 7 7 8 -1. **Set Variables:** 9 -Define Azure subscription, resource group, Managed Instance names, database names, storage sizes, and logging locations. 10 -1. **Initialize Logs:** 11 -Create log folder if it doesn’t exist. 12 -1. **Connect to Azure:** 13 -Login and set the subscription context. 14 -1. **Start Managed Instance:** 15 -Check if the DR Managed Instance is running; start it if stopped. 16 -1. **Increase Storage Size:** 17 -Temporarily increase storage to allow room for the database restore. 18 -1. **Restore Database:** 19 -Perform a geo-restore of the production database to the DR Managed Instance. 20 -1. **Wait for Restore to Complete:** 21 -Monitor until the restored database is online. 22 -1. **Delete Restored Database:** 23 -Remove the restored database to clean up space 24 -1. **Reduce Storage Size:** 25 -Scale storage back down to the original minimal size. 26 -1. **Stop Managed Instance:** 27 -Shut down the Managed Instance to save costs. 28 -1. **Write Logs and Upload:** 29 -Save detailed logs and a summary report, then upload them to Azure Blob Storage. 8 +==== 2. Managed Instance Object Migration ==== 30 30 10 +Pipeline: [[https:~~/~~/dev.azure.com/ebsphere/ebsphere/_build?definitionId=23>>https://dev.azure.com/ebsphere/ebsphere/_build?definitionId=23]] 31 31 32 - Script: [[https:~~/~~/dev.azure.com/ebsphere/ebsphere/_git/devops?path=/devops/sql/AzMI-Grr.ps1&version=GBfeature/ebs/mi-dr-check>>https://dev.azure.com/ebsphere/ebsphere/_git/devops?path=/devops/sql/AzMI-Grr.ps1&version=GBfeature/ebs/mi-dr-check]]12 +This pipeline migrates server-level and database-level objects between Azure SQL Managed Instances, including logins, triggers, and schedules. It uses dbatools to selectively migrate objects based on filters or run all supported object types in a single execution. The pipeline supports wildcard-based login selection, exclusion lists, verbose logging, and controlled execution through flags, and publishes detailed migration output as Azure DevOps build artifacts. 33 33 34 -(example in the script on how to use) 14 +==== ==== 15 + 16 +==== 3. Extract DB Objects ==== 17 + 18 +Pipeline: [[https:~~/~~/dev.azure.com/ebsphere/ebsphere/_build?definitionId=28>>https://dev.azure.com/ebsphere/ebsphere/_build?definitionId=28]] 19 + 20 +This pipeline exports selected server-level and database-related objects from a source Azure SQL Managed Instance, including logins, triggers, schedules, agent jobs, and server roles. It uses dbatools to selectively extract individual object types or all supported objects in a single run, with optional verbose logging. The extracted objects are packaged and published to Blob Storage and as Azure DevOps build artifacts for later review or deployment. 21 + 22 + 23 +==== 4. Deploy DB Objects ==== 24 + 25 +Pipeline: [[https:~~/~~/dev.azure.com/ebsphere/ebsphere/_build?definitionId=29>>https://dev.azure.com/ebsphere/ebsphere/_build?definitionId=29]] 26 + 27 +The **Deploy DB Objects** pipeline deploys previously extracted SQL Managed Instance objects to a target Managed Instance using artifacts stored in Azure Blob Storage. It supports selective deployment through wildcard filters, optional verbose logging, and handles objects such as agent jobs and related server-level components. The pipeline authenticates to Azure, retrieves the specified object set, applies it to the target instance, and publishes deployment results as Azure DevOps build artifacts. 28 + 29 + 30 +==== 5. Stop Managed Instance ==== 31 + 32 +Pipeline: [[https:~~/~~/dev.azure.com/ebsphere/ebsphere/_build?definitionId=30>>https://dev.azure.com/ebsphere/ebsphere/_build?definitionId=30]] 33 + 34 +The **Stop Managed Instance (DR)** pipeline automatically stops the designated disaster recovery Azure SQL Managed Instance on a scheduled basis to reduce operational costs when the instance is not in use. It authenticates to Azure using a service connection, executes a PowerShell script to stop the target Managed Instance. Pipeline is scheduled for 6 pm every day. 35 + 36 + 37 +=== ===