Nice brief: BizTalk is a database-heavy integration platform. the SQL tier is the backbone of your BizTalk environment — design it well and BizTalk runs smoothly; design it poorly and you’ll be firefighting IO and locking issues forever. below I walk you through a production-minded install approach for BizTalk Server 2020 (with platform alignment/CU notes), then show two deployment patterns:

  1. Single (unclustered) SQL Server instance using striped storage for throughput
  2. Clustered SQL Server (high availability) — Failover Cluster Instance (FCI) or Availability scenario

I also cover the important SQL configuration details (tempdb, file layout, autogrowth, trace flags, backups, maintenance) and give concrete small / medium / large sizing recommendations. Sources (Microsoft docs and best-practice guidance) are cited inline.


Quick compatibility & “what SQL to use” note (important)

  • BizTalk Server 2020 originally lists SQL Server 2019 / 2017 / 2016 SP3 as supported. To use newer SQL Server platform alignment (like SQL Server 2022) you must apply the BizTalk 2020 Platform Alignment / CU that adds support for Windows Server 2022 and SQL Server 2022. Test any combination in a lab and ensure you’re on the appropriate BizTalk CU for support. (Microsoft Learn, BizTalk musings)
  • For the SQL itself: as of mid-2025 the mainstream, production-ready major SQL Server release you should choose for BizTalk is SQL Server 2022 (keep it patched to the latest cumulative update). Avoid untested preview/major releases for production BizTalk. Check Microsoft build/CU pages for the current cumulative update before install. (Microsoft Learn, SANDRO PEREIRA BIZTALK BLOG)

Prerequisites — quick checklist (BizTalk + SQL)

  • Windows Server OS supported by the BizTalk CU you plan to use (if you want SQL Server 2022 / Windows Server 2022 support, install BizTalk 2020 CU that enables platform alignment). (BizTalk musings)
  • SQL Server edition: Enterprise (or Standard where features suffice) — see HA choices below. Keep the SQL instance(s) patched. (Microsoft Learn)
  • Service accounts: separate low-privilege service accounts for SQL Engine, SQL Agent, BizTalk services, and SSO Master Secret service.
  • Windows and SQL Server collation: BizTalk supports most case-sensitive and case-insensitive collations but not binary collations — follow BizTalk docs. (Art2link Corporation)
  • Backups, monitoring (SQL Agent jobs), and maintenance plan in place before going live. BizTalk relies on SQL Agent jobs for cleanup — ensure Agent runs. (Microsoft Learn)

The install flows (high level)

A — Unclustered SQL Server (single instance) — using stripe sets for IO

This pattern suits small → medium installations where you want high throughput from a single SQL instance without clustering.

When to use

  • Simpler environment, single SQL instance is acceptable.
  • You need good I/O throughput and can use LUN/physical disks or Windows Storage Spaces to create striped volumes (stripe sets / RAID 0 across spindles or RAID10 for redundancy + striping).
  • Easier to maintain than clusters; lower infra complexity.

Steps (concise)

  1. Provision Windows Server for SQL (separate from BizTalk servers). Ensure OS patch level matches BizTalk CU compatibility if you’ve chosen SQL Server 2022. (BizTalk musings)
  2. Create storage layout: allocate separate volumes for:
    • OS and binaries (C:)
    • SQL DATA (user DBs and BizTalk data files) — ideally on a striped set across multiple disks or on vSAN/Storage Spaces with good performance
    • SQL LOG (separate spindles or vdisk) — transaction log should be on its own fault-tolerant volume
    • TempDB (separate high-IO volume)
    • Backup location (separate, large capacity)
      (Important: striping/RAID choices affect redundancy. pure RAID-0 (striping) gives throughput but no redundancy — prefer RAID10 or mirrored + stripe for production.)
  3. Install SQL Server (the version supported by your BizTalk CU — e.g., SQL Server 2022). During setup:
    • Enable Instant File Initialization (SQL service account has “Perform volume maintenance tasks”).
    • Set max server memory to leave room for OS and BizTalk local services.
    • Configure tempdb files at install or immediately after. (Microsoft Learn)
  4. Pre-configure SQL for BizTalk per Microsoft guidance (see next section for details). (Microsoft Learn)
  5. Install BizTalk Server pointing its DB creation to this SQL instance. Run BizTalk Configuration — create BizTalk databases across your data filegroups (you can separate bts_* databases across files/filegroups if desired). (Microsoft Learn)

Notes about stripe sets

  • “Striped sets” here means configuring storage to stripe I/O across multiple physical spindles or virtual disks to increase throughput. In Windows you can use Storage Spaces, or your SAN’s RAID configuration. For production, use RAID10 (mirrored stripes) or mirrored + striping rather than pure RAID0. No single-disk stripe is recommended in production. (This is an infrastructure design decision — verify with your storage team.)

B — Clustered SQL Server (high availability)

This pattern suits medium → large / mission-critical BizTalk groups.

HA approaches and BizTalk compatibility

  • Failover Cluster Instance (FCI) (Windows Server Failover Cluster + shared storage) — the instance fails over as one unit; provides instance-level redundancy and is a common approach for BizTalk DB high availability. BizTalk docs show clustering BizTalk DBs with FCI is a supported approach. (Microsoft Learn)
  • Availability Groups (AG) + WSFC — AGs provide DB-level high availability and readable secondaries; more flexible for DR and read-scale. BizTalk historically recommended FCIs and log shipping; AGs can be used carefully but test for BizTalk-specific needs (some BizTalk features and SSO clustering patterns historically used shared disks). Check the BizTalk HA guidance for the pattern you choose. (Microsoft Learn)

Steps (concise)

  1. Build WSFC nodes (at least 2) on Windows Server version supported by BizTalk (CU alignment if necessary).
  2. Prepare shared storage for FCI (or for AG you need synchronous/asynchronous replicas + networking). For FCI you need shared disk array accessible from all cluster nodes. (Microsoft Learn)
  3. Install SQL Server Failover Cluster Instance (follow SQL FCI best practices). Configure tempdb, file locations on shared storage as appropriate. (Microsoft Learn)
  4. Install BizTalk and point databases to the clustered SQL instance (use the FCI virtual name). Consider clustering the SSO Master Secret Server as recommended by BizTalk docs if necessary. (Microsoft Learn)

SQL Server detailed configuration for BizTalk (the important bits)

Below are the most important SQL recommendations you must do before/just-after installing BizTalk databases.

1) Storage & file layout (strong effect on performance)

  • Separate volumes for DATA, LOG, TEMPDB, BACKUPS. Avoid mixing logs and data on the same virtual disk. Place TempDB on fastest storage available. (Microsoft Learn)
  • Stripe data files across multiple disks for throughput — production: prefer RAID10 (striping + mirroring) instead of pure RAID0. (Consult storage team.)
  • Make multiple data files for large BizTalk databases if you have heavy IO (you can split large databases into multiple files/filegroups for parallel IO).

2) TempDB configuration (critical)

  • Create multiple tempdb data files of equal size. Microsoft/BizTalk guidance: split tempdb into multiple data files of equal size on each SQL instance used by BizTalk; start with multiple files and monitor. For servers with up to 8 logical processors, many DBAs start with 1 file per core up to 8; for bigger servers start with 8 and monitor (add in groups of 4 if needed). Ensure all tempdb files are identical size and growth settings. (Microsoft Learn)
  • Trace flags / server settings: Historically TF 1117/1118 were referenced; current best practice is to follow Microsoft engine recommendations and ensure tempdb pre-sized, equal size files, and appropriate autogrowth settings. Monitor for page latch contention and tune file count accordingly. (sqlskills.com)

3) Autogrowth & instant file initialization

  • Pre-size DB data and log files (autoshrink off). Avoid frequent small autogrowth events — set sensible fixed growth (MB) values.
  • Enable Instant File Initialization for the SQL service account (permission: Perform volume maintenance tasks) so data files grow faster and reduce fragmentation. (Log files cannot use instant file init.) (Microsoft Learn)

4) SQL Server instance settings

  • max server memory — leave memory for OS and BizTalk host processes; don’t give SQL everything. Exact value depends on total RAM and other services on the box.
  • max degree of parallelism (MAXDOP) — follow SQL Server best practices for NUMA/Cores; typical recommendation: set to 8 or less depending on core count and workload; follow Microsoft/SQL tuning guidance.
  • cost threshold for parallelism — adjust away from defaults if necessary.

5) Maintenance & BizTalk jobs

  • BizTalk creates several SQL Agent jobs (MessageBox_Message_Manage, DTA Purge & Archive, etc.). Ensure SQL Server Agent is running; schedule index maintenance, integrity checks and proper transaction log backups (full/diff/log). BizTalk DBs can grow quickly; make regular maintenance part of your plan. (Microsoft Learn)

6) Backups and log shipping / DR

  • Full backups and transaction log backups must be scheduled. For high availability you can use FCI (shared storage), or AGs / log shipping depending on RTO/RPO needs. BizTalk documentation covers clustering and HA choices — follow the recommended patterns and test restores. (Microsoft Learn)

Recommended SQL sizing (small / medium / large) — pragmatic guidance

These are practical recommendations — adjust to your BizTalk message volume, message size, adapters used, and custom pipelines. Use these as starting points for capacity planning and load testing.

Small — development / small production (non-HA)

  • CPUs: 8 vCPU (or 4 physical cores)
  • RAM: 32–64 GB
  • Storage: fast SSDs; DATA on striped volume; LOG on separate SSD; TempDB on separate vdisk.
  • TempDB: 4–8 files (equal size) depending on vCPU count (start with 4 if <8 logical cores). (Microsoft Learn, House of Brick)
  • SQL edition: Standard (if you don’t need AGs/FCI advanced features).
  • Use daily full backups and 15–30 minute log backups (shorter if business requires).
  • Good for: light BizTalk traffic, testing, small EDI volumes.

Medium — production (recommended baseline)

  • CPUs: 12–24 vCPU (or 6–12 physical cores)
  • RAM: 64–128 GB
  • Storage: enterprise SSDs, RAID10 or SAN LUNs with sufficient IOPS. Separate volumes for DATA / LOG / TEMPDB / BACKUP.
  • TempDB: start with 8 files (equal size) and monitor; pre-size to avoid auto growth. (Microsoft Learn, House of Brick)
  • SQL edition: Enterprise preferred for larger workloads and advanced HA; Standard may work but check feature needs.
  • AG vs FCI: choose based on DR / read-scale needs — FCI for simple instance failover; AG for DB-level failover and readable secondaries. Test BizTalk on chosen HA model. (Microsoft Learn)

Large — high throughput, mission critical

  • CPUs: 24+ vCPU (or many physical cores across NUMA)
  • RAM: 128 GB+ (size per workload)
  • Storage: high performance NVMe or enterprise SAN with guaranteed IOPS/latency; RAID10 or equivalent. Consider tiered storage for archives.
  • TempDB: start with 8 files, scale up carefully (monitor latch waits) — ensure files are equal size and on fastest storage. Consider multiple tempdb drives if IO demands. (Microsoft Learn, House of Brick)
  • SQL edition: Enterprise (for scalability and HA/DR options). Use FCI + AG or AG replicas for read scale and DR, depending on your architecture.
  • Backups: frequent transaction log backups (e.g., 5-15 minutes) and tested restore procedures, automated backup copy to offsite/secondary region.

A short practical checklist to run before installing BizTalk (SQL admin checklist)

  • Patch SQL Server to the recommended CU; ensure compatibility with BizTalk CU. (Microsoft Learn, BizTalk musings)
  • Pre-create and pre-size tempdb with equal files; set autogrowth to a sensible MB value. (Microsoft Learn)
  • Configure max server memory leaving OS and BizTalk host memory.
  • Set instant file initialization for SQL service account. (Microsoft Learn)
  • Ensure SQL Agent is enabled and you have a maintenance plan for backups, index rebuilds/reorganize, and DBCC CHECKDB. (Microsoft Learn)
  • Validate that BizTalk service accounts have correct permissions for install and runtime (use least privilege where possible). (Microsoft Learn)

Common pitfalls & gotchas

  • Using unsupported SQL/OS combos: If you don’t apply the BizTalk CU that enables SQL Server 2022 / Windows Server 2022, the combination may be unsupported — confirm support matrix before going into production. (Microsoft Learn, BizTalk musings)
  • Putting logs and data on same physical spindles — causes log waits and poor recovery performance.
  • TempDB misconfiguration — single tempdb file or unequal sizes create allocation contention. Pre-size and use multiple equal files. (Microsoft Learn)
  • Choosing RAID0 (striping without redundancy) in production — fast but risky. Use RAID10 or mirrored stripe sets in production.
  • Neglecting SQL Agent — BizTalk relies on built-in SQL Agent jobs for cleanup; if SQL Agent is down DBs will grow unexpectedly. (Microsoft Learn)

Example: concise install flow (unclustered + stripe) — step list

  1. Provision Windows Server for SQL and BizTalk per OS compatibility (apply BizTalk CU if you plan SQL 2022). (BizTalk musings)
  2. Create storage: RAID10 for data (striped), RAID1 for logs, dedicated tempdb volume.
  3. Install SQL Server (SQL 2022 recommended), configure service accounts, enable instant file init, set max server memory. (Microsoft Learn)
  4. Configure tempdb: 8 equal files on tempdb volume, appropriate autogrowth. (Microsoft Learn)
  5. Create maintenance jobs (backups, index maintenance, integrity checks). (Microsoft Learn)
  6. Install BizTalk Server and run the configuration wizard, point DB creation to the SQL instance. (Microsoft Learn)

Closing summary (TL;DR)

  • Use BizTalk 2020 with the BizTalk 2020 CU that gives you platform alignment if you plan to run on Windows Server 2022 / SQL Server 2022. Don’t just assume newest SQL works — confirm CU and support. (BizTalk musings, Microsoft Learn)
  • For single-instance installations, striped volumes (or Storage Spaces) + separated log/tempdb/backup volumes give great IO; prefer RAID10 for production over pure stripe.
  • For HA, use SQL FCI (shared storage) or Availability Groups appropriately — BizTalk docs describe clustering patterns and options; choose and test the pattern that matches your DR/RTO requirements. (Microsoft Learn)
  • Configure SQL with good tempdb sizing (multiple equal files), instant file initialization, reasonable autogrowth and maintenance jobs. These steps yield the biggest operational benefits. (Microsoft Learn)

Views: 32

How to install BizTalk Server 2020 together with the current SQL Server — two flavours: unclustered (with stripe sets) and clustered — plus detailed SQL guidance and size recommendations

Johannes Rest


.NET Architekt und Entwickler


Beitragsnavigation


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert