Skip to content
Go back

Containerben futó SQL Server migrálása

Containerben futó SQL Server migrálása

Eljött az idő a helyben, konténerben futtatott SQL Serverem újabb verzióra való migrálására. Szerencsére ez nem nagy dolog: gyorsan meg lehet csinálni.

Kiindulás

Én eddig SQL Server 2019-et használtam, ezt fogjuk migrálni.

sqlserver150.png

A docker compose fájlom így nézett ki:

version: '3.9'
services:
  sqlserver:
    image: mcr.microsoft.com/mssql/server:2019-latest
    cpus: 2.0
    mem_limit: 4G
    container_name: sqllocal
    environment:
      - SA_PASSWORD=yourPassword
      - ACCEPT_EULA=Y
    ports:
      - "1433:1433"
    volumes:
      - C:\work\SQL\data:/var/opt/mssql/data
      - C:\work\SQL\backup:/var/opt/mssql/backup
    network_mode: bridge

Mivel a data mappám eleve hozzá van csatolva (bind mount) a Windows fájlrendszerem egyik könyvtárához, ezért viszonylag könnyű dolgom van.

Migrálás

Elsőként (és talán ez a legfontosabb) készítettem egy biztonsági mentést a teljes C:\work\SQL mappáról arra az esetre, ha bármi probléma történne. Ezután átírtam a docker compose fájlomat, hogy az SQL Server 2022 latest image-t használja:

version: '3.9'
services:
  sqlserver:
    image: mcr.microsoft.com/mssql/server:2022-latest
    cpus: 2.0
    mem_limit: 4G
    container_name: sqllocal
    environment:
      - SA_PASSWORD=yourPassword
      - ACCEPT_EULA=Y
    ports:
      - "1433:1433"
    volumes:
      - C:\work\SQL\data:/var/opt/mssql/data
      - C:\work\SQL\backup:/var/opt/mssql/backup
    network_mode: bridge

A következő lépésben már indíthattam és nézhettem, mi történik. A terminálban a compose.yml mappájába navigáltam, majd kiadtam az alábbi parancsot (a down csak akkor kell, ha még fut a container):

docker compose down
docker compose up -d

composeup-terminal-output.png

A konténer logjában különböző upgrade üzenetek jelennek meg, majd amikor végzett a migrációval, látható volt, hogy készen áll a kapcsolatok fogadására.

containerlog-output.png

Végül ellenőriztem, hogy tudok kapcsolódni a szerverhez és minden ugyanúgy működik, mint eddig.

sqlserver160.png

Amit még érdemes megemlíteni

dbpropertieswindow.png


Share this post on:

Next Post
ILogger és xUnit output összekötése egyszerűen