5 fallgropar vid uppgradering till SQL 2017 och hur du undviker dem

Oopps! Upgrade your browser pretty please. Oopps! Upgrade your browser pretty please.

Det finns många goda skäl att uppgradera till nyaste versionen av SQL Server – version 2017 som Microsoft släppte förra året. Men en uppgradering är en inte helt bagatellartad historia. Eftersom databasen är en kritisk komponent i IT-miljön så är det viktigt att undvika misstag vid uppdateringen. Det kan nämligen orsaka både kostnader och stress i onödan.

Här är några vanliga fallgropar att undvika i samband med en uppgradering:

1. Uppgradera inte för sent! Då måste du ”mellanlanda” i en äldre version

Den första fallgropen är att vänta för länge med uppgraderingen. Då blir uppgraderingen ”större” och du måste mellanlanda i en annan version innan ni gör den slutliga uppgraderingen.
SQL Server 2017 kan köra databaser i kompatibilitetsläge 100 (SQL Server 2008 och uppåt). Det betyder att du, om du kör äldre versioner än SQL Server 2008 (t ex SQL 2005), först måste gå via en instans med till exempel SQL 2008, för att sedan från den uppgradera till SQL 2017.

2. Kontrollera att dina applikationer stödjer den nya versionen

En annan fallgrop är att vara ”för snabb” med att uppgradera. Ibland har kringliggande applikationer inte kommit ikapp med stöd för den nya versionen av SQL Server.
Ta till exempel Dynamics AX 2012, Dynamics CRM 2016 och Dynamics Navision 2018. Dessa stödjer bara upp till SQL 2016. Så kör du dessa applikationer så får du vänta ett tag till innan du uppgraderar till SQL Server 2017.
Ett tips är att kolla med applikationsleverantörerna och få deras uttryckliga stöd vid en uppgradering.

3. Undvik onödigt långa driftstopp

En tredje fallgrop är att köra en ”in place upgrade” istället för att installera den nya versionen av SQL Server på en egen maskin och migrera över dit.
Även om SQL Server stödjer uppgradering ”i drift” så rekommenderas det inte i en skarp produktionsmiljö. Det säger sig självt att ett driftstopp blir onödigt långt, ifall något skulle gå fel.
Så ta för vana att alltid göra uppgraderingen i två steg:

1. Installera först den nya SQL Server versionen på en egen maskin.

2. Gör därefter en migrering.

4. Se över funktioner som är på väg bort

Ibland försvinner funktioner i nya versioner av SQL Server. Till exempel så kommer mirroring-funktionen att försvinna framöver.
Om ni använder funktioner som inte stöds av den nyare versionen av SQL Server så kan du få stora problem vid en uppgradering. Då kan nämligen applikationer sluta att fungera eftersom de är byggda för att använda funktioner i databasen som inte längre finns.
Konsekvenserna är stora, för det är inte trivialt att ”backa” en uppgradering. Har du till exempel uppgraderat från SQL 2016 till 2017 kan du inte bara ”rulla tillbaka” den uppgraderingen.
Situationen går ofta att lösa men det är inte helt enkelt och kan skapa mycket merjobb. Ett alternativ är att akut ersätta de gamla funktionerna med nya. Men det är inte att rekommendera.

Det är bättre att
1. först ta reda på vilka funktioner ni använder som eventuellt inte stöds av den nyare versionen

2. säkerställa att alla applikationer som använder dessa kan utvecklas för att vara kompatibla med den nya versionen av SQL Server

3. först därefter uppgradera databasen

Ett tips för att ta reda på vilka funktioner som kan försvinna är att logga ”deprecated features” med hjälp av Profiler och Extended Events. Här finns mer information: Deprecated Database Engine Features in SQL Server 2017.

5. Behöver du de nya funktionerna?

Många applikationer använder inte all den kraft som finns i de nyaste versionerna av SQL Server. Om dina applikationer bara ser databasen som ett ställe att spara data på, då missar du en hel del bra funktionalitet och betalar i onödan. Du kan vinna på att utnyttja befintlig funktionalitet, istället för att betala för ännu mer funktionalitet som du inte kommer att kunna dra nytta av.
Tipset är därför att säkerställa användningen av outnyttjade funktioner i den version ni redan har, innan ni uppgraderar till en ny.