SQL Server
Microsofts relationelle database
Hvad det er
SQL Server, som mange skriver MSSQL eller MS SQL, er et relationelt databasesystem fra Microsoft: et serverprogram, der gemmer data i tabeller, håndhæver reglerne mellem dem og svarer de applikationer, der taler til det på Transact-SQL, eller T-SQL, Microsofts dialekt af SQL. En klient forbinder sig til en instans, altså én kørende kopi af motoren, og arbejder inde i en af de databaser, instansen rummer. På disken består hver database af mindst to filer, én til data og én til transaktionsloggen.
Kernen hedder Database Engine, den tjeneste, der gemmer, behandler og sikrer data. Den installeres på Windows eller Linux, i en Linux-container eller på en virtuel maskine. Linux-understøttelsen begyndte med SQL Server 2017 (14.x) og bruger samme Database Engine som på Windows, og Red Hat Enterprise Linux og Ubuntu er understøttet for hver udgivelse siden. Den samme motor ligger også under flere af Microsofts hostede tjenester, blandt dem Azure SQL Database, Azure SQL Managed Instance og SQL database i Microsoft Fabric.
Udgivelserne får navn efter årstal og et internt versionsnummer: 2017 er 14.x, 2019 er 15.x, 2022 er 16.x, og SQL Server 2025, hvis support begyndte den 18. november 2025, er 17.x. Omkring motoren ligger flere tjenester. Integration Services (SSIS) bygger pakker til udtræk, transformation og indlæsning med data warehousing som mål, og SQL Server Agent kører job efter en tidsplan. Fra og med SQL Server 2025 er rapportering on-premises samlet i Power BI Report Server, og Data Quality Services og Master Data Services udgår af produktet; 2022 og ældre udgivelser beholder dem.
Udgaverne trækker de kommercielle grænser. For SQL Server 2022 hedder de Enterprise, Standard, Web, Express (gratis), Developer og Evaluation. De to sidste har hele Enterprise-funktionssættet, Developer med licens til udviklings- og testsystemer alene og Evaluation i 180 dage. SQL Server 2025 tegner listen om: Web-udgaven slutter med 2022, Developer deles i Enterprise Developer og Standard Developer, og Express vokser.
Hvorfor det betyder noget
Version og udgave afgør tilsammen, hvor stor en server må blive, hvilke funktioner den har, og hvor længe Microsoft bliver ved med at rette den.
Størrelse og funktioner følger udgaven. Express i SQL Server 2022 bruger det mindste af én socket eller fire kerner, højst 1.410 MB hukommelse til sin buffer pool og rummer højst 10 GB i hver database. I SQL Server 2025 hæves Express-loftet til 50 GB med de samme grænser for processor og hukommelse. Standard i 2022 bruger det mindste af fire sockets eller 24 kerner og 128 GB buffer pool; i 2025 bliver det til 32 kerner og 256 GB. Enterprise begrænses alene af styresystemet. SQL Server Agent følger med Enterprise, Standard og, i 2022, Web. Express leveres uden, så en gratis instans, der skal tage backup hver nat, har brug for en planlægger uden for produktet.
Rettelserne følger versionen. Under Microsofts Fixed Lifecycle Policy får hver udgivelse mindst ti års support: fem års mainstream support med opdateringer til funktioner, ydeevne, skalering og sikkerhed og fem års udvidet support med sikkerhedsopdateringer alene. For SQL Server 2019 løb mainstream support fra november 2019 til udgangen af februar 2025, og den udvidede support fortsætter til januar 2030. Microsofts liste over opdateringer viser CU32 fra februar 2025 som den seneste kumulative opdatering til 2019, med sikkerhedsudgivelser lagt oven på siden. SQL Server 2022 har mainstream support til januar 2028 og udvidet support til januar 2033, mens SQL Server 2025 går over i udvidet support i januar 2031 og forlader den i januar 2036.
Produktet når også folk, der aldrig kører det i produktion, fordi data rejser i
dets formater. En .bak-fil er en backup fra SQL Server, og man læser den ved
at gendanne den i en instans, sådan som et af projekterne nedenfor gjorde.
Sådan ser det ud i praksis
Ti databaseservere i en mellemstor teknologivirksomhed var hovedansvaret i en
DevOps-rolle, hvor
PostgreSQL 14 og MS SQL Server 2019 blev installeret og konfigureret på Ubuntu 20.04 LTS.
Backup kørte med pg_dump for PostgreSQL og med SQL Server Agent-job for MS SQL, med retention og offsite-lagring. Prometheus og Grafana overvågede
serverne, og resultatet blev 99,9 % oppetid på tværs af alle ti.
Andre gange er SQL Server kilden, som data skal læses ud af. Interne
analyse-dashboards og Python-API’er brugt af kunder og partnere hentede deres
data fra et fjernt data warehouse bag en IPsec VPN, leveret som komprimerede
arkiver med Parquet-, CSV- og .bak-filer.
Pipelinen gendannede .bak-filerne i en lokal MSSQL Server-instans,
indlæste strukturerede data i staging-skemaer med bcp, psql og SSIS og lod
procedurer i T-SQL og PL/pgSQL rense og berige rækkerne, før de gik videre til
BigQuery. Gendannelsen i SQL Server var dermed ét automatiseret led i seks
pipelines, der erstattede over 3 timers manuelt arbejde med en kørsel på under
20 minutter og synkroniserede dataene dagligt i stedet for ugentligt.
Nogle gange er opgaven at forlade SQL Server. En geografisk kortapplikation byggede på en ældre MSSQL-database uden native geospatial indeksering og blev migreret fra MSSQL til PostgreSQL med PostGIS-udvidelsen. Over 50 millioner spatiale records gik gennem ETL til EPSG:4326, og GiST- og SP-GiST-indeks kom på geometri- og geografikolonnerne, den indeksering, den gamle database manglede. Efter migreringen tog en spatial forespørgsel i gennemsnit under 250 millisekunder, hvor den på MSSQL havde taget 2,5 sekunder, og backendens CPU-belastning faldt med 65 %.
Hvor det går galt
Hvert af disse problemer opstår ved en grænse: mellem versioner, mellem maskiner eller mellem en backup og første gang, den bliver brugt.
En backup rejser fremad i version, og kun fremad. En backup kan gendannes på
den version af SQL Server, der skrev den, eller på en nyere. En database fra en
ældre version opgraderes automatisk under gendannelsen, og den opgradering går
kun én vej. En .bak-fil skrevet af en 2022-server kræver derfor en instans på
2022 eller 2025, og en 2019-instans afviser den. Tjek, hvilken version der skrev
filen, før du bygger den instans, der skal læse den.
Gendannelsen beder om mapper, den nye server mangler. En backup husker, hvor
dens data- og logfiler lå på kildeserveren, og hver version af SQL Server har
sin egen standardsti. På en anden maskine lister man først de logiske filnavne
og placerer derefter hver fil med MOVE:
RESTORE FILELISTONLY
FROM DISK = '/srv/incoming/sales.bak';
RESTORE DATABASE Sales
FROM DISK = '/srv/incoming/sales.bak'
WITH MOVE 'Sales_Data' TO '/srv/mssql/data/Sales.mdf',
MOVE 'Sales_Log' TO '/srv/mssql/data/Sales_log.ldf';
Backupperne hober sig op, og ingen læser en tilbage. Microsofts egen
side om emnet
siger det ligeud: en gendannelsesstrategi har man først, når backupperne er
testet. Gendan en kopi på et testsystem efter en fast plan, og kør
DBCC CHECKDB mod den. Checksummer på backuppen opdager fejl på selve
backupmediet.
En bulk-copy-fil ankommer uden sin tabel. Filer skrevet af bcp indeholder
rækkerne og intet om deres form, hverken skema eller formatinformation. Er
kildetabellen ændret eller væk, kræver en ny import en identisk tabeldefinition
eller en formatfil. Microsoft anbefaler native format (-n) mellem to SQL
Server-instanser og tegnformat (-c), når data skal over i et andet system.
Den gratis udgave løber fuld. Express passer til læring og små applikationer, og 10 GB pr. database i 2022, eller 50 GB i 2025, er en lille ramme for alt, der gemmer historik. Planlæg skiftet til en licenseret udgave, og budgettet til det, før databasen når loftet.
En gammel udgivelse kører videre på sikkerhedssporet alene. En server på SQL Server 2019 virker stadig og får indtil januar 2030 kun sikkerhedsopdateringer. Instanserne i det første projekt ovenfor kørte 2019 fra 2022 til 2024, inden for mainstream support. Fordi backupper gendannes fremad, går vejen væk fra sådan en udgivelse gennem en gendannelse på en nyere instans og derefter en test af alt, der taler med den.
Læs mere
- What is SQL Server? — Microsofts overblik over motoren, hvor den kan installeres, og tjenesterne omkring den.
- SQL Server 2019 lifecycle — start, mainstream support og udvidet support for den udgivelse, praksisafsnittet kørte.
- Editions and supported features of SQL Server 2025 — grænser for processor, hukommelse og databasestørrelse pr. udgave, med noter om ændringerne siden 2022.
- What is SQL Server on Linux? — udgivelsen, Linux-understøttelsen begyndte med, og distributionerne for hver udgivelse.
- RESTORE statements (Transact-SQL)
— den fulde syntaks,
MOVEogFILELISTONLYsamt reglerne for gendannelse på tværs af versioner. - bcp utility — bulkkopiering ind i og ud af Database Engine, dataformater og formatfiler.