Setting Azure Sql database GeoBackupPolicy Storage Location via API - azure

I'm looking at programmatically setting our Azure SQL dbs to Local or Zone GeoBackup rather than Geo.
However, looking at Azure's (crappy autogenerated) docs, it appears most settings are on an internal constructor??
https://learn.microsoft.com/en-gb/dotnet/api/azure.resourcemanager.sql.geobackuppolicydata?view=azure-dotnet
Does anyone have any other way to programmatically change SQL DBs from Geo storagetype back to Local or Zone?

Related

Cross Database Queries in Azure Synapse, Azure SQL Database, Azure Managed Instance and On Premise SQL Server

We are looking at options for moving our on premise SQL Server(s) to Azure and trying to understand whether we will be able to run cross database queries should we have data residing across multiple database technologies both in Azure ( specifically Azure Managed Instance, Azure Synapse Analytics, Azure SQL Database), and in an on-premise SQL Server instance.
We cannot find much information anywhere on whether these are supported and would appreciate if any of ye could help in filling out the table below:
TO->
Azure SQL DB
Azure Managed Instance
Azure Synapse Analytics
On Premise SQL Server
Azure SQL DB
Supported through Elastic Search Query (Ref: https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/)
?
Azure Data Share supports sharing of both tables and views from Azure SQL Database and Azure Synapse Analytics (formerly Azure SQL DW), and sharing of tables from Azure Synapse Analytics (workspace) dedicated SQL pool. Sharing from Azure Synapse Analytics (workspace) serverless SQL pool is not currently supported. (Ref: https://learn.microsoft.com/en-us/azure/data-share/how-to-share-from-sql)
Azure SQL database doesn't support the linked server property so you wont be able to access on prem tables in Azure SQL database and the elastic query in Azure SQL database is to query tables between 2 Azure SQL databases and not On prem. (Ref: https://learn.microsoft.com/en-us/answers/questions/289105/how-can-i-query-on-premise-sql-server-database-fro.html)
Azure Managed Instance
?
?
?
Available through the use of Linked Servers (Ref: http://thewindowsupdate.com/2019/03/22/lesson-learned-81-how-to-create-a-linked-server-from-azure-sql-managed-instance-to-sql-server-onpremise-or-azure-vm/)
Azure Synapse Analytics
?
?
?
?
On Premise SQL Server
?
?
?
Using a linked server you can query data in an Azure SQL database from an on premised SQL Server (Ref: https://learn.microsoft.com/en-us/answers/questions/289105/how-can-i-query-on-premise-sql-server-database-fro.html)
Azure SQL database need elastic query to achieve cross database query. It doesn't support create linked server.
Azure Managed instance has almost same feature with on-premise SQL server, you could use USE statement to execute cross database query. It's same with local SQL Server.
Azure Synapse Analytics also doesn't support cross database query.
Per my knowledge and experiense, I will put ✔ or X in table to express support or not supported. please ref:
TO->
Azure SQL DB
Azure Managed Instance
Azure Synapse Analytics
On Premise SQL Server
Azure SQL DB
Supported through Elastic Search Query (Ref: https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/)
X, not supported
Azure Data Share supports sharing of both tables and views from Azure SQL Database and Azure Synapse Analytics (formerly Azure SQL DW), and sharing of tables from Azure Synapse Analytics (workspace) dedicated SQL pool. Sharing from Azure Synapse Analytics (workspace) serverless SQL pool is not currently supported. (Ref: https://learn.microsoft.com/en-us/azure/data-share/how-to-share-from-sql)
Azure SQL database doesn't support the linked server property so you wont be able to access on prem tables in Azure SQL database and the elastic query in Azure SQL database is to query tables between 2 Azure SQL databases and not On prem. (Ref: https://learn.microsoft.com/en-us/answers/questions/289105/how-can-i-query-on-premise-sql-server-database-fro.html)
Azure Managed Instance
X, not supported
✔,same with local SQL Server
X, not supported
Available through the use of Linked Servers (Ref: http://thewindowsupdate.com/2019/03/22/lesson-learned-81-how-to-create-a-linked-server-from-azure-sql-managed-instance-to-sql-server-onpremise-or-azure-vm/)
Azure Synapse Analytics
Azure Data Share
X, not supported
X, not supported
X, not supported
On Premise SQL Server
✔,linked server
✔,linked server
X, not supported
Using a linked server you can query data in an Azure SQL database from an on premised SQL Server (Ref: https://learn.microsoft.com/en-us/answers/questions/289105/how-can-i-query-on-premise-sql-server-database-fro.html)
Please choose the suitable Azure database version according your request.
HTH.
AFAIK there is no cross-DB facade that provides a single interface to talk to multiple Databases at the same time. Be it on-prem/in-cloud or SQL-Server/Synapse/MySQL/...
There are individual ways and means by which you can access a single Database from somewhere/anywhere. E.g. accessing an on-prem DB from code in cloud or access a cloud DB from code running on on-prem "servers". List of interfaces available is specific to each "source" and "target" combination.

Azure Data Factory Error code":9056,"message":"Cannot connect to SQL Server"

I am trying to copy a file data from Azure Blob storage to Azure SQL DB just for my learning. I cannot able to create the linked service for Azure SQL db destination as it is giving the error. I can able to connect fine from my local SSMS to the Azure SQL server but not from AZURE data factory. I turned on Allow access to Azure services. I am using the default integration runtime (AutoResolveIntegrationRuntime). I also did Add client IP by adding my current IP address to the rule list
Try using an Azure Integration Runtime with the same region as the SQL server. Sometimes the auto resolve cannot reach the sql server.
Hope this helped!

can an Azure-hosted SQL Server connect with an Azure Cosmos DB?

Not sure if this is an option? Ideally looking at something like an openrowset query from a stored procedure within SQL server or a web job.
If so, are there any resources available to help learn how to make SQL Server and Cosmos play nicely together?
If your SQL Server in Azure is managed by you on a VM (IaaS) you should be able to add the Cosmos DB as "SQL Server Linked Server" e.g. by adding as ODBC Source.
Then it's also optional if you link the Cosmos DB PaaS service to your Vnet or access it via public endpoints.
Not 100% sure if this will also succeed with Azure managed instances (which is quite new in GA).

Azure SQL Deleted Database cannot restore because of region restriction

Is there any way to change the region for a Azure SQL server/database from one geographical region to another region?
I have a deleted database which I cannot restore as I get "MSDN subscriptions are restricted from provisioning in this region. Please choose a different region. For exceptions to this rule please contact Microsoft Support."
The Server was originally setup in US-West region with a VS MSDN Subscription.
To answer the ways to change region from Azure SQL database, there are mutiple options -
Configure active geo-replication for Azure SQL Database in the Azure portal and initiate failover
Copy an Azure SQL database
Export an Azure SQL database to a BACPAC file
Set up SQL Data Sync (Preview)
However, based on the error if there is limitation on specific region and you have strict requirement to have database in same region you may need to work with Azure support on it.

AZURE SQL Database vs SQL Server

I have a "pay as you go" Azure subscription. I am trying to keep costs down.... Do I need the resource "SQL Server" when using the SQL database resource? As I read all the supporting documents SQL Server will be used on Azure VMs to extend on-premises SQL Server. I am not doing this, I am hosting a web application on the Cloud services (Classic) resource that is connecting to the Azure SQL database.
Thanks for the help!
Azure SQL Database gives you most of the functionalities of a "Standard" SQL Server database and is (in most cases) the choise with the lower costs.
It also provides you a set of additional functionalities (some of them needs to be enabled first or are part of the higher service tiers) like an out of the box 3-node failover cluster, geo-redundancy, automated backups, etc.
If you need additional SQL Server features like SQL Server Analysis Services, which are not part of Azure SQL DB or aren't provided as another Azure service, you need to create a Virtual Maschine with a real SQL Server installed.
The "SQL Server", which is hosting your Azure SQL DB, is just a wrapper and provides you only minimal features like user and role management or your firewall settings.
If your application is connecting only to Azure SQL database and using its features, you don't need SQL Server license. You just need to have the Azure subscription and pay for the SQL database(s) that you are using. However when you create an Azure SQL database, it will prompt you to create a "Server" resource which acts as a logical group for all of your SQL databases that you create within that "server". This server is NOT charged separately and just provides a logical grouping as well as a common connection point for your SQL databases. Your billing is always based on the SQL Database(s) that you create and use.
hope this helps.
Srini Acharya

Resources