01 它是干嘛的
Azure SQL 是一种「托管数据库」:你只管存数据、写查询,装系统、打补丁、备份、故障切换这些脏活都由平台负责。它是关系型数据库(用表格的行与列组织数据)的云端版本,兼容大量既有用法。
02 为什么会有它
在托管数据库之前:养一个数据库,一半精力花在修它
数据库几乎是所有业务系统的心脏,但它极其娇贵。自己维护一套数据库,意味着要装软件、调参数、每天备份、定期打补丁,还要防着磁盘写满、内存不够、半夜宕机。为了「数据不能丢、服务不能停」,通常还得再准备一台备机做同步,出故障时手动切换,而故障往往偏偏发生在凌晨。
更现实的问题是「人」。能熟练维护数据库的人不便宜,很多中小团队养不起专岗,只能让本来就很忙的开发顺手照看,结果就是备份没验证过、补丁拖着不打,直到出事才发现。
把数据库托管出去,本质上是一次责任转移:日常的琐碎运维交给平台,团队把精力放回业务。云厂商靠规模化把「备份、监控、故障切换」标准化成产品,对单个企业来说,成本与可靠性反而比自己搭更好。
03 它怎么工作
平台默认替你把数据保存多份并自动备份,主库负责读写、副本随时待命,主库一旦异常就自动切换到副本,应用几乎感觉不到。
托管数据库是怎么做到「数据不丢、服务不停」的
- 1① 创建数据库实例
在云上选定规格与区域,几分钟就能得到一个可访问的数据库,无需自己装系统。
- 2② 数据写入主库
应用把增删改请求发给主库,主库作为唯一权威副本处理所有写入。
- 3③ 同步到多个副本
写入同步复制到其他副本,保证即使一台机器故障,数据也不会丢失。
- 4④ 读取可分担到副本
读多写少的场景把查询分散到副本上,减轻主库压力、提升响应速度。
- 5⑤ 自动备份与故障切换
平台按策略自动备份并可恢复到某个时间点;主库异常时自动切到副本继续服务。
04 谁在用它
网站、App、内部系统的事务数据(订单、用户、库存)存放在托管数据库里。
没有数据库专岗的团队,靠托管省下装库、备份、打补丁的全部精力。
把报表类查询导向副本,避免影响线上交易的响应速度。
把既有的 SQL Server 数据库搬到云上,兼容既有应用与写法,迁移成本低。
利用自动备份在需要时恢复到一个历史时间点,应对误删与逻辑错误。
05 怎么用
会写 SQL、会用管理工具连接数据库就能上手;难的部分平台已经替你做了。
- 01在云控制台创建 Azure SQL 数据库,选择区域与规格档位。
- 02配置防火墙规则,只允许你的应用与办公网络访问。
- 03用管理工具或命令行连接数据库,建表并写入初始数据。
- 04在应用里用连接串访问数据库(务必通过参数绑定传值防注入)。
- 05设定备份保留与恢复策略,并定期做一次恢复演练。
- 06按访问量监控用量,必要时调整规格或增加只读副本分担查询。
-- 建一张订单表
CREATE TABLE orders (
id INT IDENTITY PRIMARY KEY,
customer_id INT NOT NULL,
amount DECIMAL(10, 2) NOT NULL,
created_at DATETIME2 DEFAULT SYSUTCDATETIME()
);
CREATE INDEX idx_orders_customer ON orders(customer_id);
-- 查询务必使用参数绑定,不要把用户输入直接拼进语句
-- SELECT id, amount FROM orders WHERE customer_id = @customerId;避坑提示
- !自动备份不是万能的:误删数据也得靠恢复,定期演练才知道真能不能救回来。
- !数据库不要直接暴露公网,只开放必要的来源地址,并用独立账号按最小权限访问。
- !连接池要合理配置:连接数开太大反而会拖垮数据库,按实际并发调整。
06 关键概念
- 关系型数据库
- 用一张张表格(行与列)组织数据,表和表之间可以建立关联,适合事务型业务。
- 托管数据库
- 云厂商替你负责安装、备份、打补丁与故障切换,你只管用。
- 主从复制
- 一份数据在主库与多个副本之间同步,主库负责写,副本用于读与备用。
- 按时间点恢复
- 把数据库恢复到过去某个时刻的状态,用于应对误删或错误改动。