本笔记聚焦 Azure SQL Database、Azure SQL Managed Instance、SQL Server on Azure VM 三大服务,涵盖架构定位、迁移选型、高可用与灾难恢复等核心技术点。参考 Microsoft Learn 官方文档整理。
本质:IaaS 模式下的完整 SQL Server 部署
Azure VM ↓ Windows / Linux ↓ SQL Server 数据库引擎
核心特点
用户运维职责
操作系统管理 SQL Server 配置 补丁更新 备份策略 高可用搭建 故障恢复 监控告警
适用场景
本质:PaaS 模式下的 SQL Server 实例级服务
SQL Server 实例 │ ├─ ERP 数据库 ├─ CRM 数据库 └─ OA 数据库
核心特点
支持的实例级功能
SQL Server 代理 (SQL Agent) 链接服务器 (Linked Server) 跨数据库查询 分布式事务 (MS DTC) 数据库邮件 (Database Mail)
适用场景
本质:PaaS 模式下的单数据库服务
独立数据库单元
核心特点
不强调的功能
SQL Agent(需使用弹性作业替代) Linked Server 跨数据库事务
适用场景
物理服务器 (Server) │ ├─ SQL 实例 A (Instance) │ ├─ ERP 数据库 │ ├─ CRM 数据库 │ └─ OA 数据库 │ ├─ SQL 实例 B (Instance) │ └─ 测试数据库 │ └─ SQL 实例 C (Instance) └─ BI 数据库
| 层级 | 中文名称 | 说明 |
|---|---|---|
| Database | 数据库 | 单个数据存储单元 |
| Instance | SQL 实例 | 一组数据库 + 实例级功能组件 |
| Server | 服务器 | 承载实例的操作系统服务器 |
Managed Instance 管理的是 SQL 实例,而非 Windows Server
| 服务类型 | 交付内容 | 管理粒度 |
|---|---|---|
| Azure SQL Database | 给你一个数据库 | 库级 |
| Azure SQL Managed Instance | 给你一个 SQL 实例 | 实例级 |
| SQL Server on Azure VM | 给你一台完整服务器 | 服务器级 |
核心特征:多模块共享数据库,以数据库为中心
ERP_DB CRM_DB OA_DB ↖ ↑ ↗ 应用服务层
典型跨库查询
SELECT * FROM CRM_DB.dbo.Customer
最佳匹配服务:Managed Instance / SQL VM
核心特征:一个服务对应一个数据库,服务自治
订单服务 → 订单库 库存服务 → 库存库 支付服务 → 支付库
正确架构
订单服务 ↓ API 调用 库存服务 ↓ 库存数据库
最佳匹配服务:Azure SQL Database
传统业务上云优先顺序:
Managed Instance (PaaS) ↓ 不兼容时降级 SQL VM (IaaS)
原则:优先使用 PaaS 降低运维负担,遇到兼容性问题再考虑 IaaS
| 目标服务 | 迁移本质 | 常用方法 | 兼容性 |
|---|---|---|---|
| SQL VM | 搬服务器 | Backup/Restore、Always On、日志传送、整机迁移 | 最高 |
| Managed Instance | 搬数据库实例 | Azure DMS、备份到 URL、从 URL 还原 | 较高(需兼容性评估) |
迁移到 Managed Instance 前,建议使用 DMA(数据迁移助手)进行兼容性评估。
| 服务类型 | 连接地址格式 | 连接后可见 | 体验 |
|---|---|---|---|
| Azure SQL Database | server.database.windows.net | 单个数据库 | 连接即指定库 |
| Managed Instance | my-mi.xxx.database.windows.net | 实例下所有数据库 | 与本地 SQL Server 一致 |
| SQL VM | ServerName 或 ServerName\InstanceName | 完整实例 | 与本地完全一致 |
| 服务类型 | 伸缩方式 | 停机影响 | 管理方 |
|---|---|---|---|
| SQL VM | 修改虚拟机规格 | 需要停机重启 | 用户自行管理 |
| Managed Instance | 调整 vCore 数量与存储大小 | 在线调整,业务感知弱 | Azure 自动完成 |
| Azure SQL Database | 调整服务层级与计算大小 | 在线调整,短暂连接重定向 | Azure 自动完成 |
常见误区:HA ≠ DR,二者解决的故障场景不同
平台层高可用 系统补丁更新 自动备份策略 节点故障自动恢复 平台基础设施维护
是否启用可用区冗余 是否配置故障转移组 是否需要跨区域容灾 备份保留周期策略
跨区域容灾需要部署额外资源,通常会产生额外费用。
Windows / Linux 操作系统 ↓ SQL Server 实例 ↓ ERP_DB CRM_DB OA_DB
SQL Server 实例 / | \ ERP_DB CRM_DB OA_DB
ERP_DB CRM_DB OrderDB InventoryDB ↓ ↓ ↓ ↓ 服务A 服务B 服务C 服务D
全新云应用 → Azure SQL Database 传统业务迁移 → Managed Instance 特殊兼容需求 → SQL VM
服务器坏了 → HA(默认自带) 可用区坏了 → Zone Redundancy 整个区域坏了 → Failover Group
Database = 一个库 Instance = 一组数据库 + 实例级功能 Server = 操作系统级服务器
本文作者:Ariesnices
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!