将专用 SQL 池(以前称为 SQL DW)升级到 Azure 硬件和存储体系结构的最新代系。
现在可以在 Azure 门户中针对受支持的区域来无缝升级到专用 SQL 池(以前称为 SQL DW)“计算优化第 2 代”层级。 如果你的区域不支持自助升级,则可以升级到受支持的区域,或者等待你的区域支持自助升级。 请立即升级来利用最新一代 Azure 硬件和增强的存储体系结构,包括更快的性能、更高的可伸缩性以及无限的列式存储。
重要
此升级适用于受支持的区域中的“计算优化第 1 代”层级专用 SQL 池(以前称为 SQL DW)。
检查你的区域是否支持从第 1 代到第 2 代迁移。 请注意自动迁移日期。 为了避免与自动化流程发生冲突,请在自动化流程开始日期之前计划手动迁移。
如果你所在的区域尚不受支持,请继续检查你的区域是否已添加到受支持的区域中,或者使用还原来升级到受支持的区域。
如果你的区域受支持,请通过 Azure 门户进行升级
通过使用以下映射,根据“计算优化第 1 代”层级的当前性能级别为专用 SQL 池(以前称为 SQL DW)选择建议的性能级别:
“计算优化第 1 代”层级 “计算优化第 2 代”层级 DW100 DW100c DW200 DW200c DW300 DW300c DW400 DW400c DW500 DW500c DW600 DW500c DW1000 DW1000c DW1200 DW1000c DW1500 DW1500c DW2000 DW2000c DW3000 DW3000c DW6000 DW6000c
备注
建议的性能级别不是直接转换。 例如,我们建议从 DW600 转换到 DW500c。
- 通过 Azure 门户从第 1 代迁移到第 2 代是永久性的。 无法通过任何流程返回到第 1 代。
- 专用 SQL 池(以前称为 SQL DW)必须处于运行状态才能迁移到第 2 代
备注
建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
- 登录到 Azure 门户。
- 请确保专用 SQL 池(以前称为 SQL DW)处于运行状态 - 它必须处于运行状态才能迁移到第 2 代
如果要升级的“计算优化第 1 代”层级专用 SQL 池(以前称为 SQL DW)已暂停,请恢复专用 SQL 池(以前称为 SQL DW)。
做好停机几分钟的准备。
识别任何对计算优化第 1 代性能级别的代码引用,并将其修改为等效的计算优化第 2 代性能级别。 下面是升级前需要更新代码引用的两个示例:
原始 Gen1 PowerShell 命令:
Set-AzSqlDatabase -ResourceGroupName "myResourceGroup" -DatabaseName "mySampleDataWarehouse" -ServerName "mynewserver-20171113" -RequestedServiceObjectiveName "DW300"
修改为:
Set-AzSqlDatabase -ResourceGroupName "myResourceGroup" -DatabaseName "mySampleDataWarehouse" -ServerName "mynewserver-20171113" -RequestedServiceObjectiveName "DW300c"
备注
-RequestedServiceObjectiveName“DW300”更改为 - RequestedServiceObjectiveName“DW300c”
原始 Gen1 T-SQL 命令:
ALTER DATABASE mySampleDataWarehouse MODIFY (SERVICE_OBJECTIVE = 'DW300') ;
修改为:
ALTER DATABASE mySampleDataWarehouse MODIFY (SERVICE_OBJECTIVE = 'DW300c') ;
备注
SERVICE_OBJECTIVE = “DW300”更改为 SERVICE_OBJECTIVE = “DW300c”
在 Azure 门户中,转到“计算优化第 1 代”层级专用 SQL 池(以前称为 SQL DW)。 如果要升级的“计算优化第 1 代”层级专用 SQL 池(以前称为 SQL DW)已暂停,请恢复专用 SQL 池。
在“任务”选项卡下选择“升级到第 2 代”卡:
备注
如果在“任务”选项卡下未看到“升级到第 2 代”卡,则你的订阅类型在当前区域中受到限制。 请联系 Azure 支持批准你的订阅。
在升级之前,请确保工作负荷已完成运行并处于静止状态。 在专用 SQL 池(以前称为 SQL DW)作为“计算优化第 2 代”层级专用 SQL 池(以前称为 SQL DW)恢复联机状态之前,将会停机几分钟。
选择“升级”。
通过在 Azure 门户中检查状态来监视升级。 你可能会看到一条消息横幅,指示“此数据仓库正在升级到第 2 代”。
升级过程的第一个步骤将经历缩放操作(“升级 - 脱机”),其中,所有会话都将终止并且连接将会断开。
升级过程的第二个步骤是数据迁移(“升级 - 联机”)。 数据迁移是一个联机缓慢执行的后台进程。 此进程使用本地 SSD 缓存,缓慢地将列式数据从旧的存储体系结构移动到新的存储体系结构。 在此期间,专用 SQL 池(以前称为 SQL DW)将会处于联机状态,以便进行查询和加载。 你的数据将可供查询,无论它是否已迁移。 数据迁移以可变速率进行,具体取决于数据大小、性能级别和列存储段的数目。
可选建议:在缩放操作完成后,你可以加速执行数据迁移后台进程。 可以通过在所有主列存储表(你会在更大的 SLO 和资源类中对其进行查询)上运行 ALTER INDEX ...REBUILD 来强制进行数据移动。 此操作是脱机操作,它会将其他查询降级或阻止它们,但与缓慢执行的后台进程(可能需要数小时才能完成,具体取决于表的数量和大小)相比,其完成速度更快。 但是,一旦完成,数据迁移将更快,因为新的增强的存储体系结构具有高质量的行组。
备注
Alter Index rebuild 是一项脱机操作,在重新生成完成之前,这些表将不可用。
以下查询会生成加快数据迁移时所需的 ALTER INDEX ... REBUILD
命令:
SELECT 'ALTER INDEX [' + idx.NAME + '] ON ['
+ Schema_name(tbl.schema_id) + '].['
+ Object_name(idx.object_id) + '] REBUILD ' + ( CASE
WHEN (
(SELECT Count(*)
FROM sys.partitions
part2
WHERE part2.index_id
= idx.index_id
AND
idx.object_id =
part2.object_id)
> 1 ) THEN
' PARTITION = '
+ Cast(part.partition_number AS NVARCHAR(256))
ELSE ''
END ) + '; SELECT ''[' +
idx.NAME + '] ON [' + Schema_name(tbl.schema_id) + '].[' +
Object_name(idx.object_id) + '] ' + (
CASE
WHEN ( (SELECT Count(*)
FROM sys.partitions
part2
WHERE
part2.index_id =
idx.index_id
AND idx.object_id
= part2.object_id) > 1 ) THEN
' PARTITION = '
+ Cast(part.partition_number AS NVARCHAR(256))
+ ' completed'';'
ELSE ' completed'';'
END )
FROM sys.indexes idx
INNER JOIN sys.tables tbl
ON idx.object_id = tbl.object_id
LEFT OUTER JOIN sys.partitions part
ON idx.index_id = part.index_id
AND idx.object_id = part.object_id
WHERE idx.type_desc = 'CLUSTERED COLUMNSTORE';
- 登录到 Azure 门户。
- 导航到需要为其创建还原点的专用 SQL 池(以前称为 SQL DW)。
- 在“概述”页的工具栏中,选择“+ 新建还原点”。
- 为还原点指定一个名称。
登录到 Azure 门户。
导航到需要从中还原的专用 SQL 池(以前称为 SQL DW)。
在“概述”部分的工具栏中,选择“还原”。
选择“自动还原点”或“用户定义的还原点”。 对于用户定义的还原点,请“选择用户定义的还原点”或“新建用户定义的还原点”。 对于服务器,请选择“新建”,然后在支持第 2 代的地理区域中选择一台服务器。
备注
建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
若要恢复数据库,请使用 Restore-AzSqlDatabase cmdlet。
备注
可以执行到第 2 代的异地还原! 若要执行此操作,请将一个第 2 代 ServiceObjectiveName(例如 DW1000c)指定为可选参数。
- 打开 Windows PowerShell。
- 连接到 Azure 帐户,并列出与帐户关联的所有订阅。
- 选择包含要还原的数据库的订阅。
- 获取要恢复的数据库。
- 为数据库创建恢复请求,指定一个第 2 代 ServiceObjectiveName。
- 验证异地还原的数据库的状态。
Connect-AzAccount
Get-AzSubscription
Select-AzSubscription -SubscriptionName "<Subscription_name>"
# Get the database you want to recover
$GeoBackup = Get-AzSqlDatabaseGeoBackup -ResourceGroupName "<YourResourceGroupName>" -ServerName "<YourServerName>" -DatabaseName "<YourDatabaseName>"
# Recover database
$GeoRestoredDatabase = Restore-AzSqlDatabase –FromGeoBackup -ResourceGroupName "<YourResourceGroupName>" -ServerName "<YourTargetServer>" -TargetDatabaseName "<NewDatabaseName>" –ResourceId $GeoBackup.ResourceID -ServiceObjectiveName "<YourTargetServiceLevel>" -RequestedServiceObjectiveName "DW300c"
# Verify that the geo-restored database is online
$GeoRestoredDatabase.status
备注
若要在完成还原后配置数据库,请参阅 Configure your database after recovery(在恢复后配置数据库)。
如果源数据库启用了 TDE,则已恢复的数据库会启用 TDE。
如果专用 SQL 池遇到任何问题,请联系 Azure 支持部门。
升级后的专用 SQL 池(以前称为 SQL DW)会处于联机状态。 若要利用增强的体系结构,请详细了解资源类。