mysql数据库复制到本地 复制或移动数据库 – Azure SQL 托管实例

了解如何跨 Azure SQL 托管实例的实例对数据库执行联机移动或复制操作。

本文内容

适用于:

本文介绍如何在 Azure SQL 托管实例中跨实例联机复制或移动数据库。 同一 Azure 租户中的不同 Azure 订阅都支持数据库复制和移动操作。

概述

可以使用 Always On 可用性组技术跨托管实例对数据库执行联机复制或移动操作。 复制和移动功能在目标实例上创建新数据库作为源数据库的副本。 使用此功能,数据复制是可靠的、异步的且近实时的。

复制数据库时,源数据库在操作完成期间和操作完成后保持联机状态。

反之,当移动数据库时,源数据库将在操作完成后被删除。

可以运行多个数据库复制和移动操作,从源托管实例到一个或多个目标实例。

复制和移动数据库不同于时间点还原 (PITR),因为它会在操作完成后创建数据库副本。 PITR 从过去的指定时刻创建数据库副本。

重要

当将数据库移动到新目标时,现有 PITR 备份不会随数据库一起移动,并且它们不可用。 移动操作完成时,数据库将在目标实例上启动新的备份链。

何时使用此功能

在需要执行以下操作时,移动或复制数据库非常有用:

工作流

下面是复制或移动数据库的工作流:

选择数据库、源托管实例、目标实例,然后开始操作。

将数据库播种到目标服务器。 检查状态,以确定操作是否正在进行或者是否成功。

播种完成后,操作状态显示为准备完成。

在操作手动完成之前,对源数据库进行的所有更改都将应用于目标数据库。 可以随时取消操作。 可以在 24 小时内显式完成操作。 如果未在 24 小时内完成操作,则会自动取消该操作,并删除目标数据库。

手动完成操作后,目标数据库将处于联机状态,并准备好进行读/写工作负载。

如果选择移动数据库,则会删除源数据库。 如果选择复制数据库,源数据库将保持联机状态,但数据同步将停止。

下图演示了移动操作的示例工作流:

说明移动操作工作流的示意图。

数据库移动操作的设计可确保不会丢失数据。 当用户完成移动操作时,源数据库将停止接受任何工作负荷,事务将副本到目标数据库。 只有这样,目标数据库才会联机,并且源数据库才会删除。 此设计可确保源数据库中的所有数据都移动到目标数据库。

数据库复制操作与数据库移动相似。 唯一的重要区别在于操作的结束方式。 完成数据库复制操作会停止将事务日志副本到目标数据库。 尽管用户显式发出命令来完成复制操作,但用户无法控制日志副本停止时的确切时刻。 最后,源数据库和目标数据库都处于联机状态、独立且可供读写工作负荷使用。

先决条件

在复制或移动数据库之前,必须满足以下要求:

复制或移动数据库

可以使用 Azure 门户将数据库复制或移动到另一个托管实例。 为此,请执行以下操作:

在 Azure 门户中转到你的托管实例。

在数据管理下,选择数据库。

选择一个或多个数据库,然后选择窗格顶部的复制或移动选项。

选择移动将在操作完成时删除源数据库,而选择复制将在操作完成时使源数据库保持联机状态。 选择任一选项都将打开移动托管数据库或复制托管数据库页。 页面打开后,可以选择要包含在操作中的更多数据库。

Azure SQL 托管实例的“数据库”页面的屏幕截图,其中突出显示了“移动”和“复制”选项。

在“源详细信息”窗格上,提供源数据库和托管实例的详细信息。

在目标详细信息窗格上,提供目标托管实例的详细信息。

选择查看 + 启动以验证源和目标详细信息,然后选择启动以开始操作。

选择启动将返回到实例的数据库页面,可以在其中监视操作的进度。

在数据库页上,检查操作详细信息列,验证操作的状态是否为正在移动或正在复制。

如果需要取消,选择正在使用的数据库,然后选择“取消操作”停止播种,并删除目标数据库。

Azure SQL 托管实例的“数据库”页的屏幕截图,其中显示正在进行复制操作。

监视操作。 播种完成后,操作详细信息列会显示移动准备完成或复制准备完成状态。

选择准备完成以打开操作详细信息列,选择准备复制或移动的数据库,然后选择完成以完成操作,使目标数据库处于联机状态。

在此期间,对源数据库所做的更改将被复制到目标数据库,直到选择完成。 如果未在 24 小时内完成操作,则会自动取消该操作,并删除目标数据库。 选择完成结束操作并返回数据库页面,确认操作已完成。

如果移动数据库,则数据库名称不可用,因为它现在处于脱机状态。

使用 Azure PowerShell commandlet 启动、获取、完成或取消数据库复制或数据库移动操作。

下面是如何复制数据库的示例。

$dbName = ""$miName = ""$rgName = ""$tmiName = ""$trgName = ""## Start database copy operation. Copy-AzSqlInstanceDatabase -DatabaseName $dbName -InstanceName $miName -ResourceGroupName $rgName -TargetInstanceName $tmiName -TargetResourceGroupName $trgName## Verify the operation status is succeeded. Get-AzSqlInstanceDatabaseCopyOperation -DatabaseName $dbName -InstanceName $miName -ResourceGroupName $rgName -TargetInstanceName $tmiName -TargetResourceGroupName $trgName## Complete database copy operation. Complete-AzSqlInstanceDatabaseCopy -DatabaseName $dbName -InstanceName $miName -ResourceGroupName $rgName -TargetInstanceName $tmiName -TargetResourceGroupName $trgName## Verify the operation status is succeeded. Get-AzSqlInstanceDatabaseCopyOperation -DatabaseName $dbName -InstanceName $miName -ResourceGroupName $rgName -TargetInstanceName $tmiName -TargetResourceGroupName $trgName

下面是另一个说明如何启动和取消数据库移动的示例。

$dbName = ""$miName = ""$rgName = ""$tmiName = ""$trgName = ""## Start database move operation. Move-AzSqlInstanceDatabase -DatabaseName $dbName -InstanceName $miName -ResourceGroupName $rgName -TargetInstanceName $tmiName -TargetResourceGroupName $trgName## Verify the operation status is succeeded. Get-AzSqlInstanceDatabaseMoveOperation -DatabaseName $dbName -InstanceName $miName -ResourceGroupName $rgName -TargetInstanceName $tmiName -TargetResourceGroupName $trgName## Complete database copy operation. Stop-AzSqlInstanceDatabaseMove -DatabaseName $dbName -InstanceName $miName -ResourceGroupName $rgName -TargetInstanceName $tmiName -TargetResourceGroupName $trgName## Verify the operation status is succeeded. Get-AzSqlInstanceDatabaseMoveOperation -DatabaseName $dbName -InstanceName $miName -ResourceGroupName $rgName -TargetInstanceName $tmiName -TargetResourceGroupName $trgName

使用 Azure CLI commandlet 启动、获取、完成或取消数据库复制或数据库移动操作。

下面是如何复制数据库的示例。

dbName=""miName=""rgName=""tmiName=""trgName=""az sql midb copy start --name $dbName --resource-group $rgName --managed-instance $miName --dest-rg $trgName --dest-mi $tmiName az sql midb copy list --name $dbName --resource-group $rgName --managed-instance $miNameaz sql midb copy complete --name $dbName --resource-group $rgName --managed-instance $miName --dest-rg $trgName --dest-mi $tmiName az sql midb copy list --name $dbName --resource-group $rgName --managed-instance $miName

下面是另一个说明如何启动和取消数据库移动的示例。

dbName=""miName=""rgName=""tmiName=""trgName=""az sql midb move start --name $dbName --resource-group $rgName --managed-instance $miName --dest-rg $trgName --dest-mi $tmiName az sql midb move list --name $dbName --resource-group $rgName --managed-instance $miNameaz sql midb move cancel --name $dbName --resource-group $rgName --managed-instance $miName --dest-rg $trgName --dest-mi $tmiName az sql midb move list --name $dbName --resource-group $rgName --managed-instance $miName

复制和移动操作的性能

数据库复制和移动操作都有两个阶段。 第一个是初始种子设定,第二个是将更改从源数据库复制到目标数据库。 通常,初始种子设定是操作要求更高的阶段。 完成初始种子设定所需的时间取决于数据的大小以及活动复制或移动操作的数量。 源和目标 Azure SQL 托管实例上发生的工作负载强度以及源和目标之间的网络速度也会影响种子设定速度。 在最佳情况下,使用建议的全局 VNet 对等互连建立源和目标之间的连接时,种子设定速度高达每小时 360 GB。 可通过 DMV sys.dm_hadr_physical_seeding_stats 监视种子设定过程及其速度。

SELECT 	role_desc,	transfer_rate_bytes_per_second,	transferred_size_bytes,	database_size_bytes,	start_time_utc,	estimate_time_complete_utc,	end_time_utc,	local_physical_seeding_idFROM	sys.dm_hadr_physical_seeding_stats;

限制

考虑复制和移动功能的以下限制:

相关内容

更多与数据库复制和移动相关的文档。

原创文章,作者:筱凯,如若转载,请注明出处:https://www.jingyueyun.com/ask/914.html

(0)
筱凯筱凯
上一篇 2024 年 7 月 15 日
下一篇 2024 年 7 月 15 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,500M大带宽限量抢购  >>点击进入