Redundans och hög tillgänglighet
Vid datainsamling är ett avbrott inte bara en olägenhet — det är en lucka i tidsserien som inte alltid går att fylla i efterhand. I DataPortia™ byggs feltåligheten på tre separata nivåer: för OPC UA-anslutningen, för databasen och för applikationen. Varje nivå konfigureras separat och varje nivå kostar hårdvara.
- 3
- nivåer OPC UA, databas, applikation
- 15–30 s
- omkopplingstid Omkoppling på applikationsnivå
- 2 000+
- värden / s Skrivgenomströmning
- 8 GB
- RAM / server Minimikrav
Förlorar jag data om servern kraschar?
Det beror på vad som kraschar. Om databasen försvinner en stund uppstår ingen lucka alls i tidsserien: DataPortia buffrar värdena i minnet och skriver dem i efterhand när anslutningen återkommer. Om DataPortia-servern själv kraschar avbryts insamlingen under den tid det tar innan reservservern tar över.
Minnesbufferten rymmer högst 120 000 poster per anslutning — cirka 10 minuter vid full belastning med en sekunds intervall och 200 mätpunkter. För larm och händelser är bufferten som standard 50 000 händelser. Ett databasavbrott som är längre än så börjar lämna luckor.
Närmare: så fungerar den luckbaserade historikimporten
En lucka som uppstått vid omkoppling på applikationsnivå går att fylla i efterhand. Historikimporten läser värdena från automationssystemets eget OPC UA-historikregister. Läsningen är luckbaserad: den hämtar bara de perioder som saknas och hoppar över de redan importerade, så samma data dubbleras inte. Detta förutsätter att automationssystemet självt lagrar historik — DataPortia kan inte läsa värden som inte finns sparade någonstans. Hur importen konfigureras beskrivs på sidan OPC UA-datainsamling.
Vad omfattar redundansen i DataPortia?
Redundansen omfattar tre separata nivåer. På OPC UA-nivån kan varje anslutning ges ett redundant serverpar som det växlas till automatiskt. På databasnivån replikerar PostgreSQL data till en annan maskin med streaming replication, och omkopplingen kan automatiseras med DataPortias egen DPFC-kontroller. På applikationsnivån väntar en andra DataPortia-server i standby och tar över insamlingen på 15–30 sekunder om den aktiva slutar svara. Nivåerna är oberoende av varandra: du kan ta i bruk en, två eller alla tre.
Tabell: vad varje nivå skyddar mot
| Nivå | Mekanism | Vad den skyddar mot |
|---|---|---|
| OPC UA-anslutning | Redundant serverpar per anslutning, automatisk omkoppling | Fel i automationssystemets OPC UA-server eller nätavbrott |
| Databas | Fysisk streaming replication i PostgreSQL; automatisk omkoppling med DPFC, pg_auto_failover eller Patroni | Disk-, maskin- eller operativsystemfel på databasservern |
| Applikation | Aktiv-passiv-konfiguration, omkopplingstid 15–30 s. Kräver licens för HA-tillägget | Krasch på DataPortia-servern eller planerat underhållsstopp |
Termer: redundant serverpar, streaming replication, aktiv-passiv
- Redundant serverpar
- Två OPC UA-serveradresser bakom samma anslutning. Om den primära inte svarar flyttas anslutningen till den andra utan åtgärder från användaren.
- Streaming replication
- PostgreSQLs egen metod där transaktionsloggen överförs som en kontinuerlig ström till en annan databasserver.
- Aktiv-passiv
- Bara den ena DataPortia-servern samlar in data åt gången. Servern i standby visar användargränssnittet normalt, men dess OPC UA-datainsamling och larmprenumerationer är avstängda tills den tar över.
- DPFC
- DataPortia Failover Controller. Atorcoms eget separata program som övervakar PostgreSQL-paret och sköter omkopplingen automatiskt — även på Windows.
Vad händer när OPC UA-servern inte svarar?
Varje OPC UA-anslutning kan ges två serveradresser. När den primära slutar svara flyttar DataPortia anslutningen till reservadressen automatiskt och fortsätter läsa prenumerationerna därifrån utan åtgärder från användaren. Konfigurationen görs per anslutning, så alla anslutningar behöver inte dubbleras. Omkopplingen kräver inga ändringar i automationssystemet.
Närmare: vad denna nivå skyddar mot och vad den inte gör
Nivån skyddar mot fel i automationsänden: en kraschad OPC UA-server, en utbytt processtation eller en bruten nätverksväg. Den skyddar inte mot fel i DataPortia självt — för det behövs ett par på applikationsnivå. Ett redundant serverpar förutsätter att automationssystemet verkligen har en andra OPC UA-server: DataPortia skapar ingen sådan utan använder den som finns. Hur anslutningarna konfigureras beskrivs på sidan OPC UA-datainsamling.

Hur skyddas databasen mot serverfel?
DataPortia lagrar data i PostgreSQL 18 och TimescaleDB. Feltåligheten sköts med PostgreSQLs egen fysiska streaming replication, där data skrivs kontinuerligt till en andra databasserver. TimescaleDB kräver uttryckligen fysisk replikering — logisk replikering stöder inte alla dess interna strukturer. Replikeringen är kontinuerlig, inte en schemalagd säkerhetskopia.
Båda databasnoderna måste ha exakt samma version av PostgreSQL 18 och TimescaleDB. Fysisk replikering fungerar inte mellan olika versioner. Dessutom måste max_connections höjas till minst 150, eftersom två DataPortia-instanser tillsammans reserverar cirka 120 anslutningar.
Närmare: standardteknik och dimensionering av replikeringslänken
Databasnivån är etablerad PostgreSQL-teknik, ingen produktspecifik trimning. Det är en fördel: klustret hanteras med bekanta verktyg, och en databaskunnig person underhåller det utan särskild utbildning. Å andra sidan ligger failover-logiken på databassidans ansvar — DataPortia fungerar tillsammans med den men ersätter den inte.
Dimensionera replikeringslänken efter skrivmängden: genomströmningen är 2 000+ värden per sekund, alltså som mest 172 miljoner rader per dygn. Komprimering och lagringstider behandlas på sidan OPC UA-datainsamling; genom replikeringen går i vilket fall som helst en färsk, okomprimerad skrivström.
Vad är DataPortia Failover Controller?
DPFC är Atorcoms eget separata program som övervakar PostgreSQL-paret och sköter omkopplingen automatiskt. Den mest väsentliga skillnaden mot färdiga verktyg är plattformen: pg_auto_failover och Patroni är Linuxcentrerade och stöder inte Windows, så i en Windowsmiljö var automatisk databasomkoppling tidigare inget alternativ alls. DPFC för in den även där.
| Alternativ | Plattform | Omkoppling |
|---|---|---|
| Skriptad replikering | Windows och Linux | Manuellt promote-kommando |
| pg_auto_failover eller Patroni | Endast Linux | Automatisk |
| DataPortia Failover Controller | Windows och Linux | Automatisk |
Närmare: varför en vittnesnod och vad den inte löser
DPFC körs som en separat process, inte inuti DataPortia. Skälet är enkelt: när den primära databasen är nere är DataPortia självt antingen nere eller på väg att krascha — den komponent vars uppgift är att märka det kan inte bo inuti det program som kraschar.
Den rekommenderade konfigurationen är tre DPFC-processer: en på vardera databasnoden och en på en separat vittnesnod som avgör vilken nod som är primär. En lätt maskin räcker som vittnesnod. Om vittnesnoden är nere sker ingen automatisk omkoppling — databaserna själva fungerar normalt och omkopplingen kan göras för hand. Samma begränsning gäller pg_auto_failovers egen monitor.
Hur länge varar avbrottet när DataPortia-servern kraschar?
Det beror på hur den kraschar. Om DataPortia-processen kraschar men maskinen blir stående stänger operativsystemet dess databassessioner och ledarlåset frigörs genast — omkopplingen tar cirka 15–30 sekunder. Om hela maskinen dör vid ett ström- eller nätavbrott märker PostgreSQL den döda sessionen först via TCP keepalive-mekanismen, och med standardinställningarna kan det ta betydligt längre.
Snabb omkoppling också vid ett hårt fel kräver att keepalive-inställningarna trimmas i filen postgresql.conf. Utan det gäller den utlovade omkopplingstiden bara en ren krasch. Inställningarna gås igenom vid idrifttagningen.
Närmare: underhållsstopp, databasens failover-tid och tidsstämplar
Samma mekanism tjänar planerat underhåll: den aktiva servern kan köras ner och insamlingen flyttas till reservmaskinen, så uppdateringar av operativsystemet och omstarter avbryter inte längre insamlingen i timmar. Omkopplingstiden gäller endast applikationsnivån — databasens failover-tid beror på klustrets egen konfiguration.
Omkopplingen initierar anslutningarna på samma sätt som en normal start: bara de anslutningar där Anslut vid start är påslaget upprättas automatiskt på noden i standby. I produktionsanslutningar måste den här inställningen vara påslagen, annars fungerar inte hög tillgänglighet.
Larm och händelser lagras med automationsserverns ursprungliga tidsstämpel med millisekundnoggrannhet, så material som samlats in efter omkopplingen hamnar på rätt plats i tidslinjen och omkopplingsögonblicket förvränger inte händelsernas ordningsföljd. Mer om ämnet på sidan larm och händelser.
Behöver jag två servrar?
Nej, om rapporteringen tål ett avbrott på några timmar. En server räcker i de flesta installationer, och de redundanta serverparen på OPC UA-nivån fungerar också i en konfiguration med en enda server. En andra server behövs först när datainsamlingen måste fortsätta även över ett fel eller underhåll på DataPortia-maskinen. Redundans på applikations- och databasnivå förutsätter en andra maskin.
Minimikraven gäller varje server som programvaran körs på: 8 GB RAM (rekommendation 16–32 GB) och 100 GB SSD.
Närmare: vad ett avbrott kostar
Antalet servrar är framför allt en fråga om vad ett avbrott kostar. Om tidsserien ingår i myndighetsrapportering eller fakturering är en lucka dyrare än en andra maskin. Om data styr underhållet och månadsuppföljningen är en server och omsorgsfull säkerhetskopiering rätt dimensionering. Konfigurationen gås igenom i samband med idrifttagningen, så antalet servrar behöver du inte avgöra ensam.
Vad kräver hög tillgänglighet vid idrifttagningen?
Hög tillgänglighet är ingen kryssruta i inställningarna. Den kräver minst en extra server, konfiguration av PostgreSQL-replikeringen, nätverksplanering och ett beslut om vilka anslutningar som är redundanta. Alla tre nivåerna konfigureras separat, och de bör också testas separat före produktionsanvändning. Inget av detta är exotiskt, men inget av det sker heller av sig självt när programvaran installeras.
Gräns 01
Omkoppling på applikationsnivå lämnar en lucka
Ett kort databasavbrott lämnar ingen lucka — minnesbufferten täcker det. En kraschad applikationsserver lämnar en lucka.
Gräns 02
Automationsänden avgör
Ett redundant serverpar förutsätter en andra OPC UA-server i automationssystemet.
Gräns 03
Databasen är ett arbete för sig
Ett failover-kluster är PostgreSQL-kunnande, inte en inställningssida i DataPortia.
Närmare: underhållets arbetsmängd
Om miljön redan har PostgreSQL-kunnande eller ett färdigt kluster lägger sig DataPortia ovanpå det. Om inte, räkna också med underhållets arbetsmängd — en konfiguration med två servrar är bestående mer att förvalta än en med en.
Vanliga frågor om redundans
Redundans är en konfigurationsfråga som dimensioneras efter hur långt avbrott som är acceptabelt, inte på samma sätt för alla som standard. Nedan korta svar på de frågor som återkommer när hög tillgänglighet diskuteras: behövs en annan programvaruversion, går redundansen att lägga till i efterhand, vad kostar den och går konfigurationen att testa före köp.
Kräver hög tillgänglighet en annan programvaruversion?
Nej. Funktionerna finns i samma programvara, och konfigurationen gås igenom i samband med idrifttagningen.
Går redundansen att lägga till senare?
Redundans är en konfigurationsfråga, så den går att bygga också ovanpå en befintlig installation. I praktiken innebär det en ny server och en omplanering av databasnivån, så berätta hellre om planen tidigt än sent.
Fungerar DataPortia tillsammans med pg_auto_failover eller Patroni?
Ja. Databasnivån bygger på PostgreSQLs egen streaming replication, så både pg_auto_failover och Patroni duger. De fungerar dock bara på Linux. I en Windowsmiljö görs den automatiska omkopplingen med DataPortias egen DPFC-kontroller — alternativet är skriptad replikering och ett promote-kommando som ges för hand.
Förloras larm under omkopplingen?
Vid ett databasavbrott nej: larm- och händelseprenumerationerna buffrar som standard 50 000 händelser i minnet och tömmer bufferten när anslutningen återkommer. När applikationsservern kraschar samlas händelser under omkopplingen inte in. Insamlade larm behåller automationsserverns ursprungliga millisekundtidsstämpel. DataPortia är ett rapporterande system: den primära hanteringen av larm hör till automationssystemet, inte till rapporteringsprogramvaran.
Vad kostar hög tillgänglighet?
Tre poster: extra hårdvara, konfigurationsarbete och licenser. Redundans på applikationsnivå kräver en separat licens för HA-tillägget, som licensieras per installation — en licens täcker hela paret. Utöver det är baslicensen hårdvarubunden, så varje server behöver sin egen baslicens — eller så används en floating-licens, som är avsedd just för detta. Berätta om din miljö, så räknar jag ut helheten.
Går konfigurationen att testa före köp?
Delvis. Testperioden är 30 dagar utan förbindelse, men HA-tillägget ingår inte i testperioden — redundansbrytaren går alltså inte att slå på i testversionen. Datainsamlingen, rapporteringen och allt annat går att testa normalt, och konfigurationen för hög tillgänglighet går jag igenom med dig separat.
Om datainsamlingen måste fortsätta även när något går sönder, gå igenom miljön före installationen: hur många OPC UA-servrar finns tillgängliga, vad körs redan på databassidan och hur långt avbrott som är acceptabelt.
Övriga delområden: rapportering, integrationer och översikt över DataPortia.