Hi Team,
We recently encountered a limitation while trying to restore an Azure SQL Database from a source server in one resource group to a new SQL Server in another resource group (across regions) using Point-in-Time Restore.
Scenario:
- We have an Azure SQL Database hosted in a SQL Server under Resource Group A (Region 1).
Our goal is to restore this database into a new SQL Server in Resource Group B (Region 2) as part of our disaster recovery plan.
Problem:
When attempting to use create_mode = "PointInTimeRestore"
in Terraform to restore the database, we received the following error:
"RestoreCrossServerDisabled": For point-in-time restores, the target logical server must be the same as the source logical server.
So, cross-server Point-in-Time Restore is not supported, especially across regions.
Workaround we found:
After some investigation, we discovered that we could:
Enable Geo-Replication on the primary database.
This creates a secondary read-only replica in the target region.
We can then initiate a failover or use the secondary replica to create a new primary database in another resource group if needed.
This approach works and is cost-effective, especially at lower DTUs (e.g., ~10 DTUs cost ~$15/month). If a disaster happens, we can quickly:
Use the secondary geo-replica to create a new database in a new region/resource group.
Scale up DTUs afterward to match performance needs (~50 DTUs cost ~$70/month).
Questions:
Is there any supported way to do a cross-server or cross-resource-group Point-in-Time Restore, perhaps via Azure CLI or API?
Are there any alternatives to Geo-Replication that offer better cost efficiency for DR readiness?
Are there plans in Azure roadmap to remove the current PITR cross-server limitation?
Appreciate any guidance, best practices, or official documentation links you can share.
Thanks!