Direkt zum Hauptinhalt

Beispieldaten

Wer gerade keine ordentliche Datenbank samt Testdaten zur Hand hat, kann z. B. die AdventureWorks Beispiele von Microsoft herunterladen und in den eigenen Microsoft SQL Server wiederherstellen.

Die .bak Dateien können hier heruntergeladen werden: https://learn.microsoft.com/en-us/sql/samples/adventureworks-install-configure?view=sql-server-ver16&tabs=ssms#download-backup-files 

Zuerst wird eine Docker Compose Datei erstellt, welche die Konfiguration des SQL-Servers vornimmt.

services:
  sql:
    image: mcr.microsoft.com/mssql/server:2022-latest
    container_name: sql
    environment:
      - ACCEPT_EULA=Y
      - MSSQL_SA_PASSWORD=EinNichtSoTolles08.15Passort
      - MSSQL_BACKUP_DIR=/var/opt/mssql/backup
      - MSSQL_LOG_DIR=/var/opt/mssql/log
    volumes:
      - /pfad/zu/sql/data:/var/opt/mssql/data
      - /pfad/zu/sql/log:/var/opt/mssql/log
      - /pfad/zu/sql/backup:/var/opt/mssql/backup

Nun werden die 3 Ordner für die Daten, Logs und Backups erstellt. Mit dem folgenden Skript werden auch direkt die Rechte angepasst (bitte den Pfad in der Variable anpassen).

cd /pfad/zu/sql/
mkdir data log backup
sudo chown -R 10001 data log backup

Um die Docker Compose Konfiguration auszuführen, kann am besten in das Verzeichnis der YAML Datei gewechselt werden. Danach wird je nach nach gewählter Installation sudo docker-compose up -d oder sudo docker compose up -d (keine Bindestrich zwischen docker und compose) eingegeben, um die Standard Konfiguration docker-compose.yml zu starten. Compose erstellt dann die gewünschten Container mit den angegeben Optionen. Sollten die Container bereits mit dieser Compose Konfiguration erstellt worden sein, so werden die Container in dieser neu erstellt, dessen Konfiguration geändert wurde.

Während der SQL-Server startet, kann die bak-Datei der AdventureWorks in den Ordner /pfad/zu/sql/backup heruntergeladen werden. Eine Übersicht mit allen verfügbaren Sicherungsdateien inklusive Downloads gibt es hier: AdventureWorks-Beispieldatenbanken

Wer es automatisieren möchte, kann es auch mittels folgender Bash-Zeile herunterladen.

cd /pfad/zu/sql/backup
wget https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2022.bak

Sobald der SQL-Server gestartet und bereit ist, kann das Backup mit folgendem Befehl eingespielt werden.

sudo docker exec -it sql /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P 'EinNichtSoTolles08.15Passort' \
   -Q 'RESTORE DATABASE AdventureWorks2022 FROM DISK = "/var/opt/mssql/backup/AdventureWorks2022.bak" WITH MOVE "AdventureWorks2022" TO "/var/opt/mssql/data/AdventureWorks2022.mdf", MOVE "AdventureWorks2022_Log" TO "/var/opt/mssql/data/AdventureWorks2022.ldf"'

Nun steht eine SQL-Server Instanz samt AdventureWorks2022 Datenbank zum Spielen bereit.