stackit.guru
DE

SQLServer Flex – Managed MSSQL auf STACKIT

#database
database sqlserver sql

SQLServer Flex – Managed MSSQL auf STACKIT

Viele Unternehmensanwendungen setzen auf Microsoft SQL Server. Mit SQLServer Flex bietet STACKIT einen managed MSSQL-Service, der dir Hochverfügbarkeit, automatisierte Backups und Skalierung abnimmt – ohne dass du dich um Patching oder Infrastruktur kümmern musst.

Was ist SQLServer Flex?

SQLServer Flex ist der managed Microsoft SQL Server-Dienst auf STACKIT:

  • Vollständig verwaltet – STACKIT übernimmt Betrieb, Updates und Sicherheitspatches
  • Hochverfügbarkeit – Automatisches Failover und Replikation für Produktionsworkloads
  • Automatisierte Backups – Tägliche Backups mit konfigurierbarer Aufbewahrungsdauer
  • Flexible Skalierung – CPU, RAM und Storage unabhängig voneinander anpassen
  • DSGVO-konform – Daten bleiben in deutschen Rechenzentren

:::info SQLServer Flex eignet sich besonders für .NET-Anwendungen und bestehende Workloads, die auf T-SQL und MSSQL-Features angewiesen sind. :::

Tutorial: SQLServer Flex einrichten und verbinden

1. Instanz erstellen

stackit sqlserverflex instance create \
  --name my-mssql \
  --project-id your-project-id \
  --flavor-id your-flavor-id \
  --storage-size 20

2. Datenbank und Benutzer anlegen

stackit sqlserverflex database create \
  --instance-id your-instance-id \
  --project-id your-project-id \
  --name appdb

stackit sqlserverflex user create \
  --instance-id your-instance-id \
  --project-id your-project-id \
  --username appadmin \
  --roles "db_owner"

3. Verbindung mit sqlcmd

sqlcmd -S your-mssql-host,1433 \
  -U appadmin \
  -P "your-password" \
  -d appdb \
  -C

4. Tabelle erstellen und Daten einfügen

CREATE TABLE Kunden (
    Id INT IDENTITY(1,1) PRIMARY KEY,
    Name NVARCHAR(100) NOT NULL,
    Email NVARCHAR(255) UNIQUE,
    ErstelltAm DATETIME2 DEFAULT GETDATE()
);

INSERT INTO Kunden (Name, Email)
VALUES
    (N'Max Mustermann', N'max@example.com'),
    (N'Erika Musterfrau', N'erika@example.com');

SELECT * FROM Kunden;

5. Verbindung aus einer .NET-Anwendung

using Microsoft.Data.SqlClient;

var connectionString =
    "Server=your-mssql-host,1433;" +
    "Database=appdb;" +
    "User Id=appadmin;" +
    "Password=your-password;" +
    "Encrypt=True;" +
    "TrustServerCertificate=False;";

await using var connection = new SqlConnection(connectionString);
await connection.OpenAsync();

await using var command = new SqlCommand(
    "SELECT Name, Email FROM Kunden", connection);
await using var reader = await command.ExecuteReaderAsync();

while (await reader.ReadAsync())
{
    Console.WriteLine($"{reader["Name"]}{reader["Email"]}");
}

6. Backup und Wiederherstellung

stackit sqlserverflex backup list \
  --instance-id your-instance-id \
  --project-id your-project-id

stackit sqlserverflex instance restore \
  --instance-id your-instance-id \
  --project-id your-project-id \
  --restore-time "2026-03-25T12:00:00Z"

:::warning Teste regelmäßig deine Wiederherstellungsprozeduren, um im Ernstfall vorbereitet zu sein. :::

Nächste Schritte

  • Konfiguriere IP-Whitelisting, um den Zugriff auf deine Instanz einzuschränken
  • Richte Monitoring für Query-Performance und Ressourcenverbrauch ein
  • Implementiere Connection Pooling in deiner Anwendung für bessere Performance
  • Evaluiere Read-Replicas für leseintensive Workloads