Net-Base Revista

27.08.2026

Actualització de PostgreSQL sense temps d'inactivitat: Blue/Green, replicació i pla de reversió per a bases de dades ERP en producció

Com actualitzar PostgreSQL en entorns ERP productius sense temps d'inactivitat: enfocament Blue/Green, variants de replicació, disseny de cutover i un pla de revertiment robust — amb atenció a l'explotació, les interfícies i la consistència de dades.

27.08.2026

Del tema de la revista a la pràctica del projecte

Pàgines de serveis i tècniques pertinents per a l'article

Una actualització de PostgreSQL sense temps d’inactivitat sona a primera vista com una promesa del món cloud. En la realitat d’una base de dades ERP productiva és més aviat una disciplina: cal fer que la consistència de dades, el comportament de les interfícies, els processaments per lots, l’informe, els permisos i els processos d’operació funcionin conjuntament de manera que el canvi de versió sigui només un moment de commutació controlada. Cal entendre que «sense temps d’inactivitat» rarament és absolut. A la pràctica vol dir: cap interrupció perceptible per als usuaris, cap rollback no planificat, cap bloqueig de hores i, sobretot, una via de retrocés que realment funcioni.

Aquest article situa els camins d’actualització típics per a PostgreSQL en entorns ERP —amb Blue/Green, replicació (física i lògica) i un pla de retrocés que no només existeix sobre el paper. El focus es posa deliberadament en l’operació i les decisions: quina arquitectura cal? On són els riscos? Quins treballs previs requereixen temps? I com eviteu que una actualització fracassi per temes secundaris com controladors, cadenes de processos o una sobirania de dades poc clara?

Per què les bases de dades ERP són especialment delicades en les actualitzacions

Els sistemes ERP estan orientats a OLTP (Online Transaction Processing), és a dir, optimitzats per moltes transaccions curtes: escriure comprovants, registrar moviments d’estoc, calcular preus, comptabilitzar pagaments. Aquestes transaccions es basen en expectatives clares: la latència ha de ser estable, els bloquejos (locks) no han d’escalar i el sistema ha de ser previsible en pics de càrrega.

Una actualització de PostgreSQL afecta precisament aquesta estabilitat —encara que l’aplicació romangui inalterada. Entre les causes hi ha, entre altres:

  • Canvis en l’optimitzador de consultes (planificador): les consultes poden triar de sobte altres plans d’execució. Això no és „equivocat“, però sota càrrega pot generar nous punts crítics.
  • Canvis de paràmetres i valors per defecte: valors de configuració o el seu comportament per defecte canvien entre versions majors. Això afecta, per exemple, Autovacuum, WAL (Write-Ahead Log, el registre de transaccions) o la memòria de treball.
  • Temes de controladors i de protocol: versions d’ODBC/JDBC/Npgsql, paràmetres SSL/TLS, autenticació (per exemple SCRAM vs. MD5) i cadenes de certificats sovint són bloquejos ocults.
  • Ecosistema d’interfícies: ERP rarament significa „només una aplicació“. Reporting, EDI, webservices, ETL/BI, gestió de documents i integracions per lots accedeixen a la base de dades —directa o indirectament.

La conseqüència: una actualització no és només un canvi de base de dades. És un llançament coordinat que abasta aplicació, operació i sistemes adjacents. Per això Blue/Green i la replicació són tan valuosos: desvinculen el canvi tècnic del risc d’una finestra de manteniment prolongada.

Definir objectius amb claredat: «sense temps d’inactivitat» no vol dir «sense commutació»

Abans d’escollir l’arquitectura, val la pena una definició clara d’objectius al llarg d’indicadors operatius:

  • RTO (Recovery Time Objective): Amb quina rapidesa ha de tornar a ser la base de dades ERP accessible i estable després d’una fallada?
  • RPO (Recovery Point Objective): Quantes dades (interval de temps) es poden perdre en el pitjor cas? En migracions reals amb zero downtime l’objectiu sovint és RPO≈0.
  • Finestra de manteniment: Hi ha una finestra „petita“ (per exemple, pocs minuts) per a un cutover, o ninguna? En ERP, un canvi sol ser possible si és planificable (evitar canvis en el relleu de torns o en el canvi de mes).
  • Acceptació de fases de només lectura: De vegades és acceptable des del punt de vista funcional una breu fase «llegir sí, escriure no» si no es perden els apunts comptables.
  • Aquests objectius determinen si podeu treballar amb replicació més Cutover o si necessiteu mecanismes addicionals per desacoblar l’escriptura (p. ex. encolament a les interfícies). Qui aquí sigui ambigu, pagarà més tard amb improvisacions durant el Go-live.

    Blue/Green für PostgreSQL: Prinzip, Nutzen, typische Stolpersteine

    Blue/Green significa: existeixen dues entorns complets en paral·lel. „Blue“ és la producció, „Green“ és la nova versió. L’avantatge decisiu no és només la possibilitat d’intercanviar, sinó la possibilitat de provar en condicions realistes: Green es pot validar amb dades properes a producció, interfícies reals i monitoratge real abans que els usuaris canviïn.

    Per a PostgreSQL en el context ERP, Blue/Green inclou típicament:

    • un clúster PostgreSQL separat (Green) en hosts/VMs nous o en instàncies separades
    • paràmetres de xarxa i seguretat idèntics (Firewall, TLS, resolució DNS, comptes de servei)
    • una presa de dades definida (còpia inicial + delta)
    • un mecanisme de Cutover (canvi DNS/VIP, canvi del connection string, proxy)

    Què aporta operativament Blue/Green

    A la pràctica són tres punts els que marquen la diferència:

    • El retorn és ràpid: En cas d’error, es torna enrere en lloc d’intentar reparar una actualització «a la inversa».
    • Reducció de risc mitjançant validació prèvia: Green pot rebre comprovacions de rendiment i funcionalitat, incloent la càrrega típica d’un ERP (execucions batch, impressió, onades d’apunts comptables).
    • Separació neta del risc de base de dades i aplicació: Quan Green funciona, moltes incògnites ja estan resoltes (controladors, autenticació, extensions, paràmetres).

    Els patrons d’error més freqüents de Blue/Green

    Blue/Green rarament falla per la idea, sinó pels detalls:

    • Dependències incompletes: eines de reporting o integracions accedeixen «de manera directa» a l’host antic (IP, alias, certificate pinning). Durant el Cutover es queden bloquejades.
    • Ownership poc clara de les interfícies: ningú se sent responsable que tots els consumidors canviïn o, com a mínim, siguin provats.
    • Manca de validació de dades: «Les dades estan replicades» no vol dir que tot sigui correcte des del punt de vista funcional (p. ex. seqüències/identitats, segells temporals, lògica de llibres auxiliars).

    Replikation als Upgrade-Werkzeug: physisch vs. logisch

    Schematische Darstellung von physischer und logischer Replikation zwischen zwei Datenbankknoten
    La replicació física treballa a nivell de WAL, la replicació lògica transmet els canvis de taules – important per a actualitzacions majors.

    Per a una actualització de PostgreSQL sense temps d’inactivitat, la replicació sol ser el mecanisme central per mantenir les dades en paral·lel. PostgreSQL ofereix diversos enfocaments amb diferents compensacions. Important: «replicació» no és automàticament «alta disponibilitat». Per a actualitzacions, utilitzeu la replicació com a pont de migració.

    Replicació física (Streaming Replication): ràpida, pròxima a la màquina

    La replicació física opera a nivell de WAL: l’standby rep el registre de transaccions i l’aplica. Això és rendible i estable, però té un inconvenient central per a actualitzacions majors: normalment el primary i l’standby han de corresponre a la mateixa versió major. Per tant, per a un salt de versió, per exemple de PostgreSQL 13 a 16, la replicació física ajuda més dins d’una versió (HA, manteniment) i no com a camí directe d’actualització major.

    Un benefici pràctic en el projecte d’actualització s’obté, però, si utilitzeu la replicació física com a xarxa de seguretat al sistema Blue: podeu assegurar abans del Cutover que la producció existent és redundant mentre construïu el Green en paral·lel.

    Replicació lògica: aplicació de deltes via publicacions/subscriptions

    La replicació lògica transmet canvis a nivell de taula (INSERT/UPDATE/DELETE) i per això és adequada per a actualitzacions majors, perquè el publisher i el subscriber poden tenir versions majors diferents (respectant la compatibilitat corresponent). Per a bases de dades ERP sovint és la via més pràctica per aconseguir una finestra d’interrupció mínima.

    Característiques típiques que haureu de planificar:

    • Snapshot inicial + canvis continus: El conjunt de dades es copia inicialment i després s’apliquen els canvis.
    • El DDL no s’inclou automàticament: els canvis d’esquema (DDL, és a dir, taules/columnes/índexs) no es repliquen com els canvis de dades. Per a actualitzacions això està bé, perquè l’esquema normalment es manté igual, però les Extensions, rols i permisos cal migrar-los de manera conscient.
    • Temes de seqüències/identity: les seqüències (p. ex. per a números de document) són crítiques en ERP. Segons la configuració, cal assegurar que els estats de seqüència es transfereixen de manera consistent i que després del Cutover continuïn correctament.
    • Absència de conflictes: durant la fase de replicació només s’hauria d’escriure en una banda. Altrament apareixeran conflictes que en una operació ERP són difícils de resoldre.

    El camí d’actualització en la pràctica: un model d’actuació robust

    L'equip d'explotació planifica els passos de Cutover per a una commutació de base de dades amb Runbook i comprovacions d'estat
    El Cutover funciona quan els passos, punts de comprovació i criteris d’aturada s’han assajat com un Runbook.

    Independentement de l’eina concreta, una actualització amb downtime minimitzat en entorns ERP normalment es desenvolupa en etapes clares. Una estructura pràctica és:

    1) Anàlisi prèvia: Què cal traslladar realment?

    Aquí no es tracta de «Instal·la PostgreSQL X», sinó de dependències:

    • Extensions (p. ex. per a cerca de text complet, tasques programades (jobs), tipus de dades especials): quines estan activament en producció i quines existeixen per motius històrics?
    • Autenticació i rols: rols locals, connexió LDAP/AD, SCRAM, autenticació per certificat. L’exportació de rols i permisos és un pas de treball propi.
    • Tasques i execucions batch: L’scheduling s’executa externament (p. ex. mitjançant un servidor de tasques) o a la base de dades (p. ex. mitjançant extensions)? Quines tasques són crítiques per al cutover (processament nocturn, facturació, MRP)?
    • Paisatge de consumidors: Qui llegeix/escriu? ERP-Backend, portals web, serveis d’integració, BI/ETL, connexions amb socis, DMS, monitoratge.

    Un artefacte senzill però efectiu és una Application-Map: base de dades al centre, fletxes cap a tots els sistemes incloent-hi el propietari i el mètode de commutació (DNS, configuració, secret, proxy). Això evita que el cutover fracassi per lectors „oblidats“ que de sobte provoquin un timeout.

    2) Green aufbauen: nicht nur Datenbank, sondern Betriebsfähigkeit

    Green només té sentit quan és „operativament real“. Això inclou:

    • Monitoring (mètriques, logs, alarmes): la mateixa visibilitat que en Blue, si no el go-live serà a cegues.
    • Backup/RESTore: les còpies de seguretat al Green han de funcionar, inclòs el test de RESTauració (com a mínim per mostreig). Només així queda clar que, en cas d’incidència, no perdreu el doble.
    • Paritat de seguretat: configuració TLS, xifrat, cadena de certificats, regles HBA (Host-Based Authentication), tallafocs. „Endurir més tard“ es venja en el moment del canvi.
    • Base de rendiment: latència d’emmagatzematge, IOPS, CPU, RAM. Una actualització és un bon moment per corregir classes d’emmagatzematge desfavorables o perfils de VM obsolets.

    3) Datenübernahme: initiale Kopie und Delta-Phase

    Per a grans bases de dades ERP, la còpia inicial sovint és l’etapa més llarga. No cal que estigui dins la finestra de manteniment si la desacopleu correctament. El decisiu és que la fase delta (replicació) funcioni de manera estable i estigui monitoritzada: retard, errors, canvis pendents.

    Operativament important: definiu llindars a partir dels quals plantegeu el cutover. Si Green va constantment endarrerit, canviar és possible, però transferireu el problema al sistema en producció.

    4) Validierung: fachlich und technisch, ohne Perfektionismus

    La validació no és un projecte de proves de mesos, però és més que un „SELECT COUNT(*)“. En entorns ERP funcionen bé les següents comprovacions:

    • Mostreigs a taules crítiques: partides obertes, estocs, caps/posicions de documents, taules de determinació de preus, deutor/acreedor.
    • Comparacions d’agregats: sumes sobre períodes definits (ingressos, quantitats), per detectar ràpidament divergències importants.
    • Indicadors tècnics: estat d’índexs i estadístiques, activitat d’autovacuum, retard de replicació, límits de connexió, latències de consultes.

    És important decidir què necessita realment l’acceptació. Una actualització no és un release funcional. Voleu demostrar: mateixes dades, mateix comportament, rendiment estable. Per això n’hi ha prou amb punts de comprovació fiables i reproduïbles.

    5) Cutover: der Umschaltmoment muss wie ein Runbook funktionieren

    El cutover en si rara vegada és complex, però és crític pel temps. Un bon runbook no només descriu passos, sinó també punts de comprovació i criteris d’abort. Components típics:

    • Controlar l’aturada d’escriptura: o bé mitjançant el mode de manteniment de l’aplicació o mitjançant un bloqueig tècnic (p. ex. tancar connexions per a rols d’escriptura). Objectiu: cap nova operació d’escriptura a Blue en la darrera fase.
    • Portar la replicació „a zero“: esperar fins que Green tingui tots els canvis (RPO≈0).
    • Commutació de l’aplicació: Connection-Strings, DNS, VIP, regla de proxy. Decisiu: consistent per a tots els components, no només per al backend ERP.
    • Proves ràpides (smoke tests): login, obrir dades mestres, registrar un document, informe típic, ping d’interfícies. Curtes, però significatives.

    Pla de retrocés (Rollback) sense il·lusions: què podeu revertir realment

    Schematische Umschaltung zwischen Blue- und Green-Datenbank mit Rückschaltpfad
    El rollback és sense conflictes només fins a fases clarament definides: després, la consistència de les dades esdevé la qüestió principal.

    El pla de retrocés és la part que preferiríeu „no necessitar“. Precisament per això ha de ser concret. En configu­racions Blue/Green, el retrocés és en essència un canvi de nou a Blue. Però: tan aviat com, després del Cutover, es produeixin escrits productius a Green, „tornar enrere“ es converteix en un problema tècnic si Blue, mentrestant, no ha rebut també tots els escrits.

    Variants de rollback i les seves conseqüències

    • Rollback immediat abans d’escrits productius: cas ideal. Si, abans d’habilitar els usuaris, detecteu que alguna cosa no funciona fonamentalment, podeu canviar enrere sense conflictes de dades.
    • Rollback després de pocs escrits: possible, però només amb una estratègia clara: o bé compensar manualment (a nivell funcional) o bé una contrareplicació temporal/assumpció de deltes (tècnic), cosa que rarament és indolora en processos ERP.
    • No rollback, sinó „fix forward“: si Green ja està escrivint en producció i l’estat de dades allà és la nova „Single Source of Truth“, tornar enrere sovint és més perillós que una estabilització dirigida cap endavant. Això ha d’acceptar-se prèviament com una opció.

    Per això un pla de retrocés sòlid especifica explícitament:

    • fins a quan el rollback és „segur“ (finestra temporal o fase del Runbook)
    • quins criteris d’atur s’apliquen (p. ex., fallada en el smoke-test, errors d’interfície, sumes no plausibles)
    • com es gestionen la comunicació i les aprovacions (qui decideix, qui s’informa)

    Més important que el rollback: l’operació d’emergència per a les interfícies

    En entorns ERP, les interfícies són la causa més freqüent de situacions d’estrès després d’un Cutover. Si les connexions amb partners o els serveis d’integració interns deixen de lliurar, necessiteu una operació d’emergència: búfers intermedis (Queues), regles de reinici, estratègies de retry clares. El „retry“ ha de ser idempotent (repetible sense duplicar assentaments). Això no és una funció de la base de dades, sinó disseny d’aplicació i d’integració — però determina si realment podeu fer un Upgrade sense aturades.

    Rendiment i estabilitat després de l’Upgrade: per què les primeres 48 hores són decisives

    Molts equips consideren l’Upgrade com „fet“ tan bon punt s’ha completat el Cutover. A la pràctica comença llavors la fase en què els perfils de càrrega, el comportament de la cache i Autovacuum només s’estabilitzen. Mesures típiques que han demostrat la seva eficàcia:

    • Monitoratge intensiu durant les primeres 48 hores: latències de consultes, bloquejos, temps d’espera d’I/O, volum de WAL, execucions d’Autovacuum.
    • Detectar regressions de pla: Consultes individuals que abans estaven «ok» poden dominar després de l’actualització. Aquí ajuden les llistes de consultes principals i un procés d’escalat clar sobre qui pot afinar (DBA vs. equip d’aplicacions).
    • Monitorar separadament Reporting/ETL: Les eines amb predomini de lectura solen ser les primeres a donar problemes (consultes llargues, nous plans). Les Read Replicas poden ajudar, però han d’encaixar en el concepte global.

    Per a la direcció de TI és important: planifiqueu aquesta estabilització com a part del Change. Una actualització sense Downtime no és «cap esforç», sinó esforç en el moment correcte i amb una forma de risc controlada.

    Decisions arquitectòniques típiques al voltant de l’ERP: DNS, Connection Strings, Proxies

    El Cutover serà més net com més clar sigui el punt de commutació. Variants freqüents:

    • DNS-Alias (p. ex. db-erp.prod): senzill, però la TTL (Time To Live) i el caching de client poden allargar els temps de commutació. Per a alguns drivers el caching DNS pot ser sorprenentment persistent.
    • IP virtual / Load Balancer: la commutació és tècnicament ràpida, però cal un concepte clar de health checks; si no, enrutareu cap a estats inestables.
    • Connection-String per configuració/secret: fàcil de controlar si disposeu d’una distribució central de configuració. Risc: no tots els components aplicaran la nova configuració al mateix temps.
    • DB-Proxy: pot ajudar a centralitzar la commutació, però afegeix complexitat i un nou servei crític a la cadena.

    Per al software empresarial madur sovint és realista una combinació: serveis centrals es commuten per configuració, «components antics» per DNS. És important que ho reflectiu i proveu al Runbook – incloses les tasques «oblidades» en un vell servidor d’aplicacions.

    Seguretat i compliment: l’actualització com a oportunitat, però no com a escenari secundari descontrolat

    Les actualitzacions de PostgreSQL són una bona ocasió per tancar vulnerabilitats: mètodes d’autenticació obsolets, rols massa amplis, comparticions de xarxa poc clares. Al mateix temps, la seguretat no ha de convertir-se en un scope creep descontrolat.

    Enfocament pragmàtic:

    • Paritat de seguretat per al Cutover: Green ha de ser com a mínim tan segur com Blue, millor amb petites i clares millores (p. ex. TLS per defecte, SCRAM en lloc de MD5, regles HBA més RESTrictives).
    • Fent grans reformes després: Refactorització de rols, segmentació estricta de xarxa o rotació exhaustiva de secrets són valuosos, però millor com a paquet de Change propi després de la estabilització.

    Valorar l’esforç de manera realista: on els projectes perden temps a la pràctica

    Per a la planificació i la comunicació ajuda una estructura d’esforç honesta. Per experiència, els principals consumidors de temps no són «instal·lar PostgreSQL», sinó:

    • Inventari de consumers: trobar tots els lectors i escriptors, aclarir els responsables, definir la via de commutació.
    • Dades de prova i entorn de proves: dades properes a producció (respectant la protecció de dades) i una càrrega realista són determinants; si no, fareu proves que no reflecteixen el problema.
    • Runbooks i aprovacions: Qui pot fer què durant la finestra de manteniment? Qui decideix sobre el rollback? Qui comunica? Sense claredat sorgeixen retards en el moment crític.
    • Temes de drivers/TLS: petites incompatibilitats poden generar grans símptomes (desconnexions esporàdiques, errors d’autenticació, timeouts).

    Si gestioneu aquests punts des del principi com a paquets de treball separats, l’«actualització» es convertirà en un projecte controlable en lloc d’un cap de setmana nerviós.

    Conclusió: l’actualització de PostgreSQL sense temps d’inactivitat és, sobretot, un disseny operatiu

    Una actualització de PostgreSQL sense temps d’inactivitat no s’aconsegueix amb un sol truc, sinó amb una arquitectura que faci manejable el tall i la reversió. Blue/Green crea la separació necessària, la replicació proporciona el pont de dades i un pla de reversió realista evita que l’equip hagi d’escollir entre pèrdua de dades i una interrupció de diverses hores en cas d’error.

    Si inventarieu acuradament el paisatge de consumidors, desplegueu Green com a entorn operatiu (monitorització, còpies de seguretat, seguretat), superviseu la presa de dades i assajeu el cutover com a runbook amb criteris d’abort, el salt de versió es convertirà en un canvi controlat — també en bases de dades ERP de producció amb moltes interfícies.

    Si desitgeu preparar estructuradament l’actualització de la vostra base de dades ERP i considerar conjuntament l’arquitectura, les interfícies i el pla de reversió, parli amb nosaltres:

    Per a aquest tema també són importants el Blue/Green Deployment i el pla de cutover. L’article situa aquests aspectes de manera clara i mostra què és rellevant en l’operativa quotidiana.

    Parli d’un projecte o d’una iniciativa de modernització amb Net-Base.

    Pas següent

    Quan d'un tema se'ndevé un projecte real, s'han de considerar aviat i de manera conjunta l'arquitectura, els actius existents i l'operació.

    No només donem suport en qüestions puntuals, sinó també quan, a partir de fragments de codi font, temes de sistemes heredats o idees de portal, ha de sorgir un projecte empresarial sòlid.

    • L'estat actual, la visió objectiu i els riscos tècnics s'avaluen conjuntament.
    • REST, accés a dades, portals i desplegament no es posposaran com a efectes retardats.
    • Veu aviat quin camí és viable des del punt de vista econòmic i operatiu.

    Comparteix la publicació

    Comparteix aquesta publicació directament

    LinkedIn, X, XING, Facebook, WhatsApp i correu electrònic estan disponibles immediatament. Per Instagram preparem l'enllaç i un text curt immediatament.

    Correu electrònic

    Instagram s'obre en una pestanya nova. L'enllaç i el text curt es copien prèviament al porta-retalls.