用途:让应用的数据库连接在本地 Azure SQL Database 容器(Private Preview,非 SQL Server 镜像)上可靠,并无需改动即可用于云端 Azure SQL Database。核心是连接池加瞬时故障重试。
主要能力:说明连接池配置(保持开启、设置 Max Pool Size 上限、少量 Min Pool Size 预热、一个连接串对应一个池、用完释放连接);说明重试策略(仅重试瞬时错误,如 40501、40613、49918/49919/49920、4060、10928、10929、40197、233 及连接超时和断管;指数退避加抖动、限制尝试次数;非幂等写入需用客户端生成键、MERGE 或可整体重跑的事务保证幂等;优先用框架重试策略,如 EF Core 的 EnableRetryOnFailure)。
使用方式:镜像为 sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest,需先 docker login 该私有预览仓库;非 x64 主机加 --platform linux/amd64。必需环境变量 ACCEPT_EULA=Y 和复杂 MSSQL_SA_PASSWORD,引擎监听 1433。引擎不自动建库,需先在 master 连接执行 CREATE DATABASE appdb,不要用 USE 切换(会返回 Msg 40508),应在连接串中指定 Database=appdb。应用只读一个环境变量 SQL_CONNECTION_STRING,连接串使用 User Id= / Password= / Database= 和 TrustServerCertificate=true,sqlcmd 用 -C。
适用场景:本地开发时按云端行为构建连接池与重试,实现本地到云端一致性。
限制:容器不携带云端限流遥测,sys.dm_db_resource_stats 与 sys.dm_user_db_resource_governance 在此引擎不存在,无法本地触发限流故障;不要用 mcr.microsoft.com/mssql/server 镜像;不要新增环境变量;不要对非瞬时错误重试。各语言(.NET、Node、Python)的可复制配置见 references/retry-snippets.md。