Export Azure Managed Instance Database backup to storage account - azure

I am looking for an alternative to :
New-AzureRmSqlDatabaseExport
For the purpose of taking Managed Instance Database backup and export it to storage account. The above command, I think supports only SQL Server.

Yes, your're right, Powershell command doesn't support export the Azure SQL managed instance for now, you could reference this document:Export to a BACPAC file using PowerShell:
Besides, the document also gives the other ways:
Exporting a BACPAC of a database from a managed instance using Azure PowerShell is not currently supported. Use SQL Server Management Studio or SQLPackage instead.
Export to a BACPAC file using the SQLPackage utility
Export to a BACPAC file using SQL Server Management Studio
(SSMS)
At least, you also can use T-SQL to backup the Azure SQL manage instance to Blob Storage:
First, you would need to store credentials that would be used to access Azure Blob Storage:
CREATE CREDENTIAL [https://myacc.blob.core.windows.net/testcontainer]
WITH IDENTITY='SHARED ACCESS SIGNATURE'
, SECRET = 'sv=2014-02-14&sr=c&sig=GV0T9y%2B9%2F9%2FLEIipmuVee3jvYj4WpvBblo%3D&se=2019-06-01T00%2A%3AZ&sp=rwdl';
Once you create a credential, you can backup any database using standard BACKUP T-SQL command:
BACKUP DATABASE tpcc2501
TO URL = 'https://myacc.blob.core.windows.net/testcontainer/tpcc2501.bak'
WITH COPY_ONLY
Reference this Azure blog: Native database backup in Azure SQL Managed Instance.
Hope this helps.

Related

Azure Serverless SQL server database backup/restore

I've created an azure **serverless ** sql database. It seems there is no way to backup/restore this type of databases. I know there is restore to a point in time feature, But I what to download and save database backups my self.
Is there a way to backup serverless azure sql databases?
1-) There is no Backup/restore option on the database right click
2-) I've tried to use BACKUP T-SQL with azure storage account and storage url from SSMS but this is not supported.
You can use the "export" functionality by accessing the specific database in your Azure Portal to get a copy of your DB.
You can rely on Azure SQL's integrated Backup funcionality by setting up your requirements by accessing your DB Server in you Azure Portal and selecting the "Backup" uption.
You can use SSMS (SQL Management Studio), right click on the DB in question, and select "Tasks" --> "Export Data-tier Application", which will return a .bacpac file with your database. NOTE: bacpac files are not quite the same as full .bak files. bacpac files are not aware of any transactions that may be being executed whilst the data is being dumped, which means that you could end up with some data corruption.
Export your database as bacpac to an Storage Account. We are using weekly exports of the database on Saturdays, with a retention of one year for long-term backups.
The export will trigger an auto-resume of the database if the database was auto-paused.
We use an Azure Automation account and a PowerShell script to schedule the export of the database. Here you will find the script and the steps needed to schedule the script using Azure Automation.

How can i export a blob container entry in Azure to a SQL Server using PowerShell?

I have successfully moved a .bacpac file (a copy of my Azure SQL database) to a container using the following:
azcopy copy "C:\testdbs\TestDB.bacpac" "https://account.blob.core.windows.net/mycontainer1/?sv=2018-03-28&ss=bjqt&srt=sco&sp=rwddgcup&se=2019-05-01T05:01:17Z&st=2019-04-30T21:01:17Z&spr=https&sig=MGCXiyEzbtttkr3ewJIh2AR8KrghSy1DGM9ovN734bQF4%3D"
I can browse the Azure Portal and see the .bacpac file there.
Now I want to be able to create a SQL Server database on a SQL Server sitting in a resource group.
The storage account and the SQL server are on different subscriptions , not sure if that matters
How can I do this using PowerShell? I don't want any user interaction

When to use Azure blob storage versus Azure file share?

Azure newbie here.
I have an architecture requirement to move the data from on-premise to cloud database. This is done in two steps due to security restrictions and timelines.
Move the file to azure blob storage
Read from the blob and Import to the sql database .
Azure blob is suggested for unstructured data. However, the data we want to export to cloud is a simple export of data from sql tables to csv files.
For such requirements what is recommended? Azure blob or Azure file share? When to use blob versus azure file share ?
Actually, if you want to migrate database from local/on-premise SQL Server to Azure SQL, there are many ways can help do that directly without Blob or File Storage.
Such as:
Using Data Migration Assistant(DMA) to help you migrate the data/database to Azure.
Ref: Migrate on-premises SQL Server or SQL Server on Azure VMs to Azure SQL Database using the Data Migration Assistant
SQL Server Management Studio(SSMS) task: Deploy Database to Microsoft Azure SQL Database.
Ref: Using the Deploy Database to SQL Azure Wizard in SQL Server Management Studio to move to the Cloud
Of course you could export the sql server data as CSV files to Blob or File storage, then import the csv file to Azure SQL. In usually, we often use Blob Storage work with Azure SQL database. It's up to you, reference the document #Gaurav Mantri-AIS mentioned.
Hope this helps.

DB migration with Azure PowerShell

we are doing SQL Db migration with azure portal now I need to automate this task (by using Az powershell).
steps we are following for manual approach
first we need to restore a tempDB from production db.
from the tempDB I need to export bacpac file for the bd
then import a this bacpac file into UAT database
can any one explain how I achieve this with Az-power shell?
steps I followed currently, I have installed Az powershell module in my local, trying to explore Az.Sql API
but I didn't find any API for DB export
Assuming that by "restore a tempDB from production db" you mean that you want to create a temporary working copy of the production db, then the solution is as follows:
Use New-AzSqlDatabaseCopy to create a copy of the production db. (you can delete the copy later after you're done using it with Remove-AzSqlDatabase)
Use New-AzSqlDatabaseExport to export a .bacpac to a destination in an Azure Storage account.
Use New-AzSqlDatbaseImport to import a .bacpac from a source in an Azure Storage account.
EDIT:
Instead, if by "restore a tempDB from production db" you mean a genuine restore, then the command Restore-AzSqlDatabase is what you should use.

Azure restore a SQL Server database from blob

I am trying to restore a SQL Server database in Azure from a database backup file stored in a blob. I have followed this link but got this error
TITLE: Microsoft SQL Server Management Studio
An error occurred while loading data.
ADDITIONAL INFORMATION:
The type of a blob in the container is unrecognized by this version. (Microsoft.SqlServer.StorageClient)
The remote server returned an error: (409) Conflict. (System)
I have also tried this:
CREATE CREDENTIAL mycredential1
WITH IDENTITY= 'jjt', -- this is the name of the storage account you specified when creating a storage account
SECRET = 'storage account key'
Then try to use the credential to restore the sql db from the azure blob, but failed on the above step with the following error:
Msg 40514, Level 16, State 1, Line 1
'CREATE CREDENTIAL' is not supported in this version of SQL Server.
What is the correct way?
You cannot use CREATE CREDENTIAL on Azure SQL Database, you need to create a CREATE DATABASE SCOPED CREDENTIAL as shown below:
CREATE DATABASE SCOPED CREDENTIAL UploadInvoices
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'QLYMgmSXMklt%2FI1U6DcVrQixnlU5Sgbtk1qDRakUBGs%3D';
For more information, please read this article.
Additionally, you cannot restore a native SQL Server backup into an Azure SQL Database. The article you are making reference is restoring a bacpac. You can restore a bacpac into an Azure SQL Database.
Please create a bacpac of your SQL Server (on-premises) database using Microsoft SQL Server Management Studio (SSMS), make a right click on the database, choose Tasks, then choose Export Data-tier Application to create the mentioned bacpac. Once the bacpac has been created you can then import it to Azure SQL Database as a new database.
A better method to migrate your database from a SQL Server instance to Azure SQL database is using the latest version of Data Migration Assistant which you can download from here. This tool would perform an assessment of your SQL Server assessment, it will let you know about any adjustments you need to make to make the database compatible to Azure SQL Database. If the database is compatible, the tool will migrate the database to an Azure SQL Database logical server.

Resources