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
{{@48#bkmrk-Compose-Run}}
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.