>> We recently introduced new capabilities to allow you to
migrate to Azure SQL from Azure Data Studio.
Learn more in this episode of Data Exposed.
[MUSIC].
Hi, I'm Anna Hoffman,
and welcome to this episode of Data Exposed.
Today, I'm joined by Rajesh,
a Program Manager on the Azure Data team.
Rajesh, thanks so much for joining us today.
Before we get started, can you tell our
viewers a little bit about what you do?
>> Sure. Thanks, Anna.
Thanks for having me. My name is Rajesh.
I work as a Program Manager in the SQL team.
I'm currently focusing on our database migration service.
>> Awesome, great. It's great to have you on the show,
and today we're going to be talking about
something new and exciting,
and coming straight into Azure Data Studio.
Without giving it away, Rajesh,
I'll pass it over to you to tell us about this new thing and also,
if you can tell us how it actually works.
>> Sure. Thanks, Anna.
I'm glad to present this experience.
As you rightly pointed out, this is something that we
have not yet talked about in public.
We have recently released this capability in preview.
What we are talking about here is
Azure SQL readiness and migrations right from Data Studio,
and this is currently in preview.
As we will talk about it Anna,
so what we'll do is we'll quickly touch upon the architecture.
I want to set the stage,
talk about the architecture for the first five or so minutes,
and then get right into the demo experience.
I'll show you how the experience looks like in ADS,
which is Azure Data Studio,
walk you through the entire visual experience.
Before I get into the demo,
let's quickly touch upon the architecture side.
Here's a scenario where what we're trying to do
is we want to migrate a SQL Server Instance from on-prem,
and on the left side,
you have your SQL Server Instance.
What we currently support is SQL Server 2008 and above.
We support any edition,
be it on Windows or Linux.
What you want to migrate typically,
is you want to migrate to Azure SQL deployments.
In this case, we currently are supporting
SQL Managed Instance and SQL Server on Azure VMs,
and pretty soon we'll support SQL DB as well.
As you have already dealt with DMS,
which is Database Migration Service, or if you have not,
in order for us to migrate your sole SQL Database,
we need backup files,
and we look for those backup files in an on-prem file share.
That way, we can do the file share,
look up all the files,
upload them to Azure, and then destroy it.
We ask for a file share where you
can provide all your database backups.
Then as part of this new experience,
which is currently in preview, all you need to
do is you install the ADS Insiders build.
This is different from the ADS Stable build.
Both of them are publicly out.
In the Insiders build, it's mostly the preview experience that
are out so you can install both of them as side by side.
You install ADS Insiders,
and then install the extension which is
the brand new Azure SQL Migration extension.
That's where all this complexity has been bundled.
We made it simple and intuitive,
which we'll get to into the demo part.
Once the ADS Insiders and the extension's installed,
you create a database migration service,
and you don't have to jump off
of ADS in order to create the service.
I'll walk you through in the demo where it's
seamlessly integrated into the migration experience.
But for the purpose of the architecture,
let's understand that you need Database Migration Service,
which does the orchestration for migration activities.
This DMS, it's different from the current DMS that's out there.
What it does is it leverages,
and it uses the Self-Hosted Integration Runtime.
This is popular from Azure Data Factory team,
so we leverage an existing integration runtime,
which is already out there clustered by many enterprises,
compliant in many environments as well.
We use this integration runtime
in order to reach your on-prem file share.
Through the integration runtime,
we upload the backup files into the Azure Storage account.
Once the backup files are copied into the Azure Storage account,
Database Migration Service will
start restoring them on your target,
and this could be SQL Managed Instance or SQL VMs.
We let it sync depending on the size of the backup files,
it's always a function of the size of the files.
Once the backup files are all caught up and you
feel like you have no other additional files to provide,
have given all my full backups, transaction log backups,
I've gone to the point where I've even taken
the tail log backup and provided it in the share,
and all the target is caught up,
you go to the Azure Data Studio
and then hit "Cut Over" in order to complete the migration.
That's pretty much it. That completes
the whole migration experience.
This is the high-level architecture of the ADS migrations.
The demo [inaudible] currently,
it has Azure SQL VM.
In this case, I'm trying to migrate a database
from SQL Server 2017 running
on Azure VMs to SQL Managed Instance. Let me get into the demo.
>> Awesome, cool. This is going to be really cool.
I'm looking forward to seeing this.
Quick question before you get started.
>> Sure.
>> Is this for online migrations or offline migrations?
>> That's a great question, Anna. We currently
support online migrations, offline migration.
The API work is pretty much done.
We're just wrapping up final UI work
in order to enable offline migrations.
But the other key point that I want so on to highlight is,
earlier the current Database Migration Service had
some limited capabilities for doing
minimal downtime migrations to SQL VM, which was a gap.
In the new experience which I'll show in a bit,
we support minimal downtime migrations to
both SQL Managed Instance and Azure SQL VMs.
>> Awesome, cool. Well, looking forward to seeing it in action.
Seems like you're actively adding
to this experience, so that's pretty cool too.
>> Yes, that's true. Let's get right into the demo part.
What I'm doing here is I have my Azure Data Studio.
This is the "Insiders build," and then I'm
connecting to two of my "SQL Server Instances."
This is my "Source" running on SQL VM and this is my "SQL
Managed Instance," which I've connected to ADS.
What I have to do to get started is I
go to the "Marketplace," look up for the extension,
which is "Azure SQL Migration,"
install the extension. I've already done it.
But if you go down,
we have put a nice shift to show
you what to do when you install the extension,
how do you launch the experience
and then some of the things that you need to get started.
We have also put in a getting started doc,
it points to a PDF.
If you need any assistance, you can send us an email
to DMS feedback where we actively want it to fall.
Questions, queries, commands, and so on, and so forth.
Once you install the extension,
you go to the "Manage" for the instance,
so either you double-click
or you hit "Manage," right-click "Manage."
You go to the home dashboard.
In here, you will see the
migration extension that I just talked about.
As you can see here,
this is the homepage of the extension.
You have an option right in the center to migrate to SQL.
If you have any ongoing migrations,
we show you that complete list
and then some help articles and video links.
As we keep adding them, you will start seeing them here.
Then you launch the expedience by hitting "Migrate Azure SQL."
In the interest of time, what I've done is,
I've pre-filled this wizard so that I can
just quickly go through every step,
explain instead of me typing in all the values here.
The first step that you start with is,
you enter the Azure account.
In this case, I've connected to my Azure account.
If you have already connected the Azure account
in Azure Data Studio,
you can just seamlessly use that here.
If not, you can go on and add an account,
and then get started.
Once the first step is done,
the next step is we get some source configuration.
In this case, all that we are asking for
is for the authentication type that you have
used and for the source
SQL Server Instance that you have used, enter the creds.
Some of these user creds will be used as part of
migration process because we need to connect to
your source in order to validate those backup files,
and that's pretty much why we need this source connection.
Once this source connection is done,
then the next step is the assessment.
What happened from step 2 and step 3 behind
the scenes was we ran an implicit assessment.
This is one of those assessment that will run by default,
and will tell you, we completed
the assessment based on the assessment results.
All of your databases which are an online state,
can be migrated to SQL,
and then we give you an option to choose two targets,
SQL Managed Instance or
SQL Server running on Azure Virtual Machines.
As you can see in this case,
10 out of 12 databases can be migrated.
As with SQL VMs,
you can pretty much lift and shift to any of
your on-prem or any Azure SQL VMs to SQL VM. That's about it.
For the purpose of this demo, since I'm moving from
SQL VM to SQL Managed Instance,
I'll pick SQL Managed Instance.
I want to touch upon a few things that we have done here
is we have completely revamped the assessment rules.
We have also made it public.
As you might have seen in the extension landing page,
we have also put a link for
the assessment tools that we run for Managed Instance.
>> This is an assessment that's been completely revamped.
It's a technology that enables us to run faster assessments,
highly scalable and much more reliable.
Then once you select the target,
we ask you to select data reserves.
We've also simplified the categories
under which the assessment tools fall into,
its warnings and issues.
Issues are somethings that you'll have to take
care if you want to say before migrating,
"Hey, these are the migration issues that I want to mitigate."
For databases where you cannot migrate, like in this case,
a file stream and file table which are not yet supported,
those database will be created.
But for other databases where there are no issues,
you can select it and then go forward, so which is what I've done.
I've selected NGB database,
and then what I've done here is I've selected a target.
Since I've connected to my source,
I've selected the source database,
I'm selecting the target,
subscription, resource group, and the managed instance.
Once I select the target,
I get into the migration modes.
As Anna was quickly talking about these points,
we currently support online migration,
we support it to both SQL VMs and SQL Managed Instance.
We'll soon support offline migration too.
Once the migration mode is selected,
then we ask for backup location.
As you can see, in this case, the backups
are from a network share,
so we asked for a location.
We asked for a user cred
that has read access to those credentials.
We give an option to, let's say,
give a unique name for the target database,
let's say, in this case, I give it a unique name.
We also want you to give a storage account
that we can copy this backup files,
so that way everything stays within your subscription,
within your boundary, and it's more secure.
That's pretty much all we need in terms of backups.
Then the most important step is
around creating the Database Migration Service.
In this case, let's say,
if you don't have any of these,
you would go here and create a Database Migration Service.
Let me select my resource group,
and then let me give it a name,
let's say, DataExposeDemo, and then I hit "Create",
and then we create a Database Migration Service.
The advantages or the new capabilities that we're
introducing with this Database Migration Services,
once you create the service,
as we have seen, we have created the service,
you have to follow the additional steps to
configure Database Migration Service with an integration runtime.
You download the integration runtime,
use one of those keys, and then register with it.
What I've done for this purpose of this demo is I've
already gone through the steps and I've
already registered my integration runtime
with the keys that the Database Migration Service gave me,
so I'm already good to go.
To go back into the previous screen,
the service that I'm going to use,
as you can see, the connection status is all green.
The Database Migration Service
is connected to the integration runtime,
and it also gives me the note
where the integration runtime is running.
That's pretty much here in
terms of second copy or Database Migration Service.
Then you go to the next screen, look at the summary,
and then when you're done with all the validations,
making sure that you have given all the right input,
you go hit "Done", and then start the migration.
As you can see, the migration has just started.
We'll not wait for that migration.
For the purpose of this demo,
let me show a migration that I
started yesterday as preparation for this demo.
As you can see here, we'll show
you the files that we have detected in the FileShare.
We'll also give you a detail status on, is the file restored,
and then all the transaction log files that we
have seen and the status of those files.
You can get to a status
of monitor what's the status of the migration,
and when you're done with this migration,
you can hit "Compute cutover", then here,
we ask for the final check to make
sure if there are
any additional log files that you want us to provide,
any final tail-log backups,
we ask for those backups,
and then when you're ready with all of them,
you'll be asked to confirm the consent,
and then you hit "Complete cutover"' and "Complete the migration".
I hope this gives a good overview of end-to-end migrations,
assessment on migration, all streamlined into one experience.
>> Definitely. This is a pretty cool experience
and it seems very easy to walk through.
If I was taking notes in my head correctly,
it seems going into this,
you need to prepare a few things, but not that many.
You just need a storage account,
and you need an existing Managed Instance
or SQL VM that you are going to migrate to,
and you also need some SMB Network Share. Is that right?
>> That's right. We currently support the files on Network Share,
but we are very soon lighting up scenarios where if
you already have backup files in a block container,
we'll also support that as a backup location.
>> Cool. One other question I had is,
when you complete the cutover,
can you give any insight into what is actually happening?
>> That's a good question. What really happens
at that point I can quickly jump to that screen.
If I go pick a database and I hit "Complete cutover".
Let's say in this case, the example that
we are talking about is SQL Managed Instance.
What is happening here is
this target database in SQL Managed Instance will be in restoring
state for the duration of the migration so that it
lets you to restore additional database backup files.
During the cutover, we restore the database,
we open the database,
and then we finish the recovery process,
and we let user connections to connect.
At that point in time, depending on
the target service data, like in this case,
if it's a business critical service data,
we set up all the secondaries,
we make sure that always on
secondaries and everything is set up for you.
But if it's a general purpose tier,
we make sure that we complete the recovery process,
we open up the database for end-user connections.
>> Got you. Cool. That's pretty cool
that it takes care of all that for
you and ways to do that until you're ready doing that cutover.
I'm guessing that supports the online,
that's why it's an online migration.
>> Yes, that's true.
>> Awesome, cool. Thanks so much, Rajesh.
This was really interesting.
I learned a lot. I think our viewers learn a lot.
I think they're all being really excited to get their hands
on this in their Aggregated Studio Insiders Build,
so be sure to go check out or open a link
to learn more about this in the description.
Rajesh, any final tips for folks as they go and try this out?
>> Go ahead and try this experience.
We have spent a lot of engineering time.
There's lot of goodness that has happened
under the hood in order to enable this experience,
and we made sure that we have hidden
all the complexity and made this simple intuitive experience.
We are currently in preview in East to West region.
We're very soon lighting up other regions.
Please try this experience,
and if you have any questions or feedback,
send us an email at dmsfeedback@Microsoft.com.
>> Awesome. Thanks so much, Rajesh,
again for joining us today.
For our viewers, thank you for joining us.
Let us know what you think of this,
send an email to dmsfeedback@Microsoft.com,
leave a comment, like this video,
share it with your colleagues.
We hope to see you next time on Data Exposed.
[MUSIC]