Azure Data Studio 中的 Azure SQL Migration 扩展:从 SQL Server 到 Azure SQL 的端到端迁移实战指南
发布时间:2026/9/28 17:31:24来源:尧图企业网站定制
数据库客户端桌面应用数据分析【免费下载链接】azuredatastudioAzure Data Studio is a data management and development tool with connectivity to popular cloud and on-premises databases. Azure Data Studio supports Windows, macOS, and Linux, with immediate capability to connect to Azure SQL and SQL Server. Browse the extension library for more database support options including MySQL, PostgreSQL, and MongoDB.项目地址https://gitcode.com/gh_mirrors/az/azuredatastudio点击查看免费下载Azure SQL Migration 扩展是 Azure Data Studio 内置的数据库迁移工具它把迁移就绪评估、SKU 推荐、数据迁移执行整合进一个向导式的图形化流程中帮助用户将本地 SQL Server或云中虚拟机上的 SQL Server平滑迁往 Azure SQL Managed Instance、SQL Server on Azure Virtual Machine 与 Azure SQL Database。读完本文你将掌握该扩展的安装方式、迁移前置条件、评估与 SKU 推荐机制、三种 Azure SQL 目标平台的选型差异、在线/离线两种迁移模式以及它在当前仓库中的底层实现结构后端服务、状态机与自托管集成运行时脚本从而可以直接上手规划并执行一次完整的数据库上云迁移。一、扩展核心能力总览根据 extensions/sql-migration/README.md该扩展为 Azure Data Studio 带来了一套简化、统一的评估—推荐—迁移体验具体包含六大能力端到端响应式界面提供从迁移就绪评估、SKU 推荐基于性能数据到最终将数据库迁往 Azure SQL 的完整迁移体验增强的评估机制可评估 SQL Server 实例识别哪些数据库已经具备迁往不同 Azure SQL 目标平台的条件SKU 推荐引擎从本地源 SQL Server 实例收集性能数据基于你的 Azure SQL 目标平台生成恰到好处right-sized的 SKU 推荐在满足源数据库性能要求的同时尽可能降低成本可靠的 Azure 服务编排由 Azure Database Migration ServiceDMS负责协调数据移动活动保障迁移过程的顺畅在线/离线两种迁移模式在线迁移需要最少停机时间与离线迁移迁移全程存在停机窗口以适应不同业务需求自托管集成运行时SHIR的灵活配置可创建并配置自托管集成运行时用自己的计算资源访问本地环境中的源 SQL Server 与备份文件。从源码看扩展的主入口在 extensions/sql-migration/src/main.ts激活时会先初始化迁移服务提供者migrationServiceProvider异步启动后端迁移服务ServiceClient.startService随后注册仪表板控件DashboardWidget并通过遥测报告器收集使用数据。二、安装与启动在 Azure Data Studio 中打开扩展市场marketplace搜索并安装最新版本的Azure SQL Migration扩展然后启动迁移向导即可。README 中展示了完整的迁移演示动画实际体验如下图所示从扩展的清单文件 extensions/sql-migration/package.json 可以看到发布方为Microsoft当前版本1.5.9要求 Azure Data Studio 版本 1.44.1依赖扩展Microsoft.mssql即必须先安装 mssql 扩展才能获得 SQL Server 连接能力通过sqlmigration.start命令启动迁移向导同时提供sqlmigration.newsupportrequest新建支持请求、sqlmigration.sendfeedback发送反馈、sqlmigration.openNotebooks打开迁移笔记本等命令在 SQL Server 连接页connectionProvider MSSQL !mssql:iscloud mssql:engineedition ! 8上自动显示迁移仪表板标签dashboard.tabs也就是说本地 SQL Server 连接会直接看到迁移入口。扩展还暴露了一个可配置项azureRecommendation.dataCollectionPathazureRecommendation.dataCollectionPath默认值为空字符串用于指定性能数据采集结果在本地磁盘上的保存路径供后续导入评估使用。三、开始迁移前需要准备什么README 明确列出了开始 Azure SQL 迁移所需的前置条件缺一不可前置条件说明Azure 账户评估与 SKU 推荐功能不强制要求 Azure 账户但实际执行数据迁移必须登录 Azure源数据库运行在本地、Azure 虚拟机上的 SQL Server或任意云私有/公有中虚拟机上的 SQL Server 数据库目标平台一个 Azure SQL Managed Instance、SQL Server on Azure Virtual Machine或 Azure SQL Database用于承接待迁移数据库备份位置网络文件共享network file share或 Azure Blob Storage 容器Azure SQL Database 目标无需提供备份位置结合迁移向导的源码extensions/sql-migration/src/wizard向导还会进一步询问源 SQL Server 实例的基础设施类型本地物理机/云虚拟机、该实例是否已纳入 AzureArc 跟踪、源认证方式Windows 集成认证或 SQL 认证等细节这些信息会被记录在迁移状态模型中作为后续创建 Azure SQL Server 实例资源用于在门户中跟踪迁移过程不产生额外费用的依据。四、评估与 SKU 推荐Preview迁移就绪评估会对源 SQL Server 数据库逐一检查输出迁移就绪结论Ready / Ready with warnings / Not ready以及阻塞性发现blocking issues并区分实例级与数据库级的发现汇总。在 extensions/sql-migration/src/constants/strings.ts 中可以看到完整的评估语义阻塞问题会直接阻止迁移成功This is a blocking issue that will prevent the database migration from succeeding.且评估结果会强调 TDE透明数据加密场景——被 TDE 加密的数据库需要先迁移证书才能迁移。SKU 推荐基于源实例的真实性能数据进行。推荐引擎支持两种性能数据来源PerformanceDataSourceOptionsCollectData在线采集 /OpenExisting导入已有数据采集周期、目标百分位、扩展因子scaling factor等参数均可调整若没有任何 SKU 能满足源性能特征扩展会给出无推荐结果并提示调整目标平台、推荐参数或推荐模型。状态机还内置了性能数据采集的运行参数每 10 分钟刷新一次推荐结果、每 30 秒查询一次性能数据、每 60 秒查询一次静态数据、共采集 19 轮性能数据迭代见 extensions/sql-migration/src/models/stateMachine.ts。五、Azure SQL 目标平台选型扩展支持将数据库迁移到以下三种 Azure SQL 目标Azure SQL Managed Instance完全托管的 PaaS 实例提供与 SQL Server 几乎 100% 的兼容性适合企业工作负载与大规模迁移SQL Server on Azure Virtual MachinesIaaS 形态把 SQL Server 搬到 Azure VM 上适合需要完整实例级控制权、且希望使用现有 SQL Server 授权的场景Azure SQL Database弹性、按需伸缩的单库 PaaS 服务适合需要持续优化成本、并接受一定应用改造的现代化场景。在迁移向导的目标选择页用户需要依次选择 Azure 账户、租户、订阅、区域、资源组与目标服务器实例源码中对应模型字段覆盖了_targetManagedInstancesMI、_targetSqlVirtualMachinesVM与_targetSqlDatabaseServers单库三类目标。向导还会根据所选目标自动过滤可迁移数据库状态机里分别维护_miDbs、_vmDbs、_sqldbDbs不同目标平台对应不同数据库子集。六、迁移模式在线与离线README 给出了两种迁移模式的定义二者都基于备份文件恢复原理区别在于停机窗口在线迁移Online迁移期间源 SQL Server 数据库仍可进行读写活动数据库备份完整备份 日志备份被持续恢复到 Azure SQL 目标上应用停机时间仅限迁移结束时的**切换cutover**阶段。状态机中迁移状态枚举包含UploadingFullBackup、UploadingLogBackup、Restoring、ReadyForCutover、Completing等完整刻画了在线迁移的流水线切换前扩展还会弹出确认对话框confirmCutoverDialog。注意到 Azure SQL Database 的在线迁移目前尚未支持。离线迁移Offline迁移开始后源 SQL Server 数据库不再接受写入备份文件在 Azure SQL 目标上直接恢复应用停机时间从迁移开始一直持续到迁移完成。此外迁移发起后可随时查看迁移列表状态、复制迁移信息、取消迁移、删除迁移、重试迁移对应sqlmigration.copy.migration、sqlmigration.cancel.migration、sqlmigration.delete.migration、sqlmigration.retry.migration命令并支持保存并关闭后从上次进度恢复会话SaveAndClose入口这些都极大地提升了长周期迁移的可管理性。七、底层实现后端迁移服务与自托管集成运行时1. 后端服务如何工作扩展的评估与 SKU 推荐逻辑由后端服务Microsoft.SqlTools.Migration执行该服务并非内置在扩展中而是按需下载。配置文件 extensions/sql-migration/config.json 定义了下载地址模板https://github.com/Microsoft/sqltoolsservice/releases/download/{#version#}/microsoft.sqltools.migration-{#fileName#}当前服务版本5.0.20241024.1按平台区分的二进制包Windows_86win-x86-net8.0.zip、Windowswin-x64-net8.0.zip、OSXosx-x64-net8.0.tar.gz、Linuxlinux-x64-net8.0.tar.gz安装目录./migrationService/{#platform#}/{#version#}可执行文件MicrosoftSqlToolsMigration/MicrosoftSqlToolsMigration.exe下载重试策略最多重试 3 次指数退避超时 1 秒起、最大 300 秒。下载、解压、启动的完整流程实现在 extensions/sql-migration/src/service/serviceClient.ts 中downloadBinaries使用microsoft/ads-service-downloader的ServerProvider完成获取与安装支持 HTTP 代理与 strictSSL 配置随后以 stdio 传输启动服务并传入--locale界面语言、--log-file、--tracing-level由 mssql 配置的tracingLevel决定默认 Critical等启动参数。2. 使用本地后端服务进行开发调试仓库自带的 extensions/sql-migration/DEVELOPER_GUIDE.md 给出了两种在本地运行迁移服务的方式供扩展开发者使用方式一设置环境变量。克隆 sqltoolsservice 仓库并dotnet publish -r platform发布src/Microsoft.SqlTools.Migration项目然后在启动 Azure Data Studio 的同一终端设置ADS_MIGRATIONSERVICE环境变量指向 publish 目录。扩展启动时会优先检测该路径下是否存在迁移服务可执行文件见serviceClient.ts中对env[ADS_MIGRATIONSERVICE]的处理命中后弹出正在使用本地迁移服务通知否则回退到下载的二进制。修改服务代码后重新发布并重启 Azure Data Studio 即可生效。方式二手动替换二进制。关闭 Azure Data Studio将 publish 目录整体复制到src/extensions/sql-migration/下的migrationService/platform/version/目录再从仓库根目录启动 Azure Data Studio。3. 自托管集成运行时SHIR的自动化配置在线迁移需要 SHIR 作为数据搬运代理访问本地 SQL Server 与备份共享。仓库提供了 PowerShell 自动化脚本 extensions/sql-migration/scripts/SHIR-auto-configuration.ps1其功能为自动检测本机是否已安装集成运行时Get-InstalledShirVersion若未安装则下载最新 IR 安装包aka.ms/downloadLatestIR并以管理员权限静默安装再通过 DMS 提供的身份验证密钥AuthKey1/AuthKey2把本机节点注册到 Azure Database Migration Service同时记录完整日志到~/shir/shir-时间戳.log并用互斥锁防止脚本并发执行。4. 运行时日志与排障开发/排障时可打开命令面板CtrlP执行Developer: Open Extensions Logs Folder进入Microsoft.sql-migration目录查看三类日志文件MicrosoftSqlToolsMigration迁移服务自身的运行日志SqlAssessmentReport-时间戳每次运行评估时生成的评估报告SqlAssessmentsLogs评估的运行时日志目录。八、扩展还提供的自动化笔记本除了图形向导扩展还内置了两本 PowerShell 笔记本位于 extensions/sql-migration/notebooksInline_Migration_Notebook.ipynb一套脚本化的完整迁移步骤包括检查 Az PowerShell 模块、输入参数、连接 Azure 账户、校验参数、创建迁移控制器、下载/安装/注册 ADF 自托管集成运行时、启动 MI 在线迁移、监控迁移进度、发起迁移切换、校验迁移后数据库状态以及取消迁移 / 删除迁移控制器等附录操作SQL_Assessment_Notebook.ipynb以脚本方式执行数据库迁移就绪评估。对于熟悉 PowerShell 自动化的团队这些笔记本提供了不依赖图形界面的可审计迁移路径。九、反馈、遥测与合规信息反馈与问题可以通过 Azure 社区论坛Azure Database Migration Service 分区提交改进建议与 bug若迁移受意外问题影响可在 Azure 门户开立支持工单获取协助遥测扩展默认收集遥测数据用于帮助改进产品如定位启动缓慢问题、排定新功能优先级可在 Azure Data Studio 中按照禁用遥测上报文档关闭隐私与许可隐私声明见官方隐私政策链接代码基于 MIT 许可证见仓库根目录 LICENSE.txt版权归 Microsoft Corporation 所有。十、小结Azure SQL Migration 扩展把评估 → SKU 推荐 → 备份迁移 → 在线切换这条完整链路收拢到 Azure Data Studio 之中对于需要最少停机的关键业务可选择在线迁移配合 SHIR 与切换流程对于允许停机的场景离线迁移更简单直接。通过阅读本仓库源码你还可以进一步了解其状态机模型extensions/sql-migration/src/models/stateMachine.ts、服务客户端extensions/sql-migration/src/service/serviceClient.ts与向导页面extensions/sql-migration/src/wizard的完整实现为二次开发或排障提供依据。赞分享数据库客户端桌面应用数据分析【免费下载链接】azuredatastudioAzure Data Studio is a data management and development tool with connectivity to popular cloud and on-premises databases. Azure Data Studio supports Windows, macOS, and Linux, with immediate capability to connect to Azure SQL and SQL Server. Browse the extension library for more database support options including MySQL, PostgreSQL, and MongoDB.项目地址https://gitcode.com/gh_mirrors/az/azuredatastudio点击查看免费下载相关推荐Azure Data Studio SQL Bindings 扩展实战为 C Azure Functions 打造 Azure SQL 输入/输出绑定Azure Data Studio SQL Bindings 扩展实战为 C Azure Functions 打造 Azure SQL 输入/输出绑定 SQL数据库客户端桌面应用数据分析Azure Data Studio 数据导入导出功能轻松迁移 SQL Server 与 Azure SQL 数据Azure Data Studio 数据导入导出功能轻松迁移 SQL Server 与 Azure SQL 数据 你是否还在为 SQL Server 与 Az数据库客户端桌面应用数据分析Azure Data Studio 的 SQL Server Agent 扩展作业管理与排查实战指南Azure Data Studio 的 SQL Server Agent 扩展作业管理与排查实战指南 Microsoft SQL Server Agent f数据库客户端桌面应用数据分析上一篇Apache Kylin企业级应用案例千亿数据场景下的最佳实践下一篇解决黑苹果配置难题OpCore Simplify自动化EFI生成工具完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考