Net-Base Revista

04.06.2026

Migrar de Firebird a MariaDB: procediment, punts crítics i fiabilitat operativa en l'ús diari

Una migració de Firebird a MariaDB rarament és només un tema d'exportació i importació. Determinants són el dialecte SQL, les transaccions, les codificacions de caràcters, els tipus de dades, els triggers/generadors, el rendiment i un cutover net. Aquest article mostra un procediment pràctic per a...

04.06.2026

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

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

Qui vol migrar Firebird a MariaDB sol tenir un objectiu clar: una plataforma de dades gestionable a llarg termini, que encaixi amb la infraestructura existent, les estratègies de còpia de seguretat, el monitoratge i el know-how de l’equip d’IT. En la pràctica, però, rara vegada és una simple còpia de dades. Firebird i MariaDB difereixen en dialecte SQL, comportament de transaccions, tipus de dades, regles de conjunt de caràcters (collations) així com en la manera com es implementa la lògica a la base de dades (triggers, stored procedures, seqüències/generadors).

Aquest article descriu un procediment que funciona a les empreses: amb una anàlisi sòlida, un camí de migració controlat, testabilitat traçable i un cutover que no posi en perill innecessàriament l’operació. El focus està posat deliberadament en l’operació, l’administració, la qualitat de les dades i les integracions – menys en detalls de framework.

Per què les empreses substitueixen Firebird — i per què sovint triïn MariaDB

Firebird és atractiu per a moltes aplicacions empresarials madures: lleuger, ràpid de desplegar, sovint estable en funcionament durant molt de temps. Al mateix temps, segons l’organització es donen factors típics que impulsen la substitució:

  • Estandarització operativa: MariaDB (compatible amb MySQL) ja s’executa com a base de dades estàndard en molts entorns, incloent-hi automatització, processos de patch i monitoratge.
  • Ecosistema de plataformes i eines: Moltes eines ETL, connectors BI i eines d’operació estan especialment madures per a MySQL/MariaDB.
  • Concepcions d’escalabilitat i alta disponibilitat: La replicació, configuracions de proxy, opcions de clúster i l’operació en contenidors sovint són més fàcilment integrables a nivell organitzatiu.
  • Personal i responsabilitats: El know-how i la disponibilitat en règim de guàrdia sovint són més senzills de cobrir quan la base de dades encaixa amb la RESTa del paisatge tecnològic.

És important: una migració només val la pena si no funciona només „d’una manera o altra“, sinó que esdevingui operativa. Això inclou paràmetres operatius clars, temps de còpia de seguretat i RESTauració, monitoratge, integritat de dades rastrejable i un rollback planificable.

Firebird vs. MariaDB: Diferències tècniques que realment importen en projectes

Abans del disseny de migració convé una mirada focalitzada a les diferències que després determinaran el temps i el risc:

Dialecte SQL i funcions

Firebird incorpora variants de sintaxi i noms de funcions propis. MariaDB és compatible amb MySQL, però també té particularitats. Conflictes típics són les funcions de data/temps, funcions de cadena, regles de casting i la manera com s’optimitzen les consultes. En la migració això no és només acadèmic: cada consulta adaptada pot provocar regressions si no es prova de manera sistemàtica.

Transaccions, aïllament i concurrència

Firebird treballa amb un Multiversion Concurrency Control (MVCC): els lectors normalment no bloquegen els escriptors de la mateixa manera que en els models clàssics de locking. MariaDB també utilitza MVCC (mitjançant InnoDB), però el comportament concret depèn molt del nivell d’aïllament, la indexació i la forma de la consulta. A la pràctica això significa: després de la migració el comportament de bloqueig, la freqüència de deadlocks i les „Long Running Transactions“ poden variar.

Conjunt de caràcters, collation i ordenació

Un factor de risc freqüent en projectes és la combinació de joc de caràcters (p. ex. UTF-8) i collation (regles d’ordenació i comparació). Els projectes amb Firebird sovint contenen estats mixtes: dades antigues en codificacions legacy, posteriorment migrades, acompanyades de codi d’aplicació amb les seves pròpies conversions. A MariaDB les collations es poden configurar per base de dades, taula o columna. Configuracions errònies condueixen a comparacions incorrectes, claus „duplicades“ amb ordenació sense distinció entre majúscules i minúscules o llistes de resultats inesperades.

Tipus de dades i precisió

Firebird i MariaDB difereixen en numèrics, tipus de temps, booleans, BLOBs així com en el tractament de valors per defecte. Especialment crític és la precisió en imports monetaris (Decimal) i en marques de temps. Una migració ha de planificar el mapeig de tipus de manera que no es produeixin arrodoniments silenciosos ni truncaments.

Generadors/seqüències, Auto-Increment i triggers

Firebird fa servir generadors (seqüències) sovint en combinació amb triggers per a l’assignació de la clau primària. MariaDB treballa típícament amb AUTO_INCREMENT o SEQUENCE (segons versió/configuració). Si l’aplicació fins ara ha consultat explícitament valors de generador o la lògica dels triggers depèn dels generadors, això cal reproduir-ho acuradament o reestructurar-ho de manera conscient —incloent valors inicials correctes i garantia d’absència de conflictes.

Preparació: inventari en lloc d’intuïció

Una migració sòlida comença amb un inventari que no només compti taules, sinó que reflecteixi la utilització. L’objectiu és evitar sorpreses durant la setmana de canvi.

1) Inventari d’objectes i lògica

  • Taules, vistes, índexs, constraints
  • Triggers (especialment per a audit, validacions, claus primàries)
  • Procediments emmagatzemats i UDFs (funcions definides per l’usuari)
  • Generadors/seqüències i els seus patrons d’ús
  • Rols/permits, si cal usuaris d’aplicació

És important la pregunta: què és pura persistència de dades i què és lògica de negoci embeguda a la base de dades? Com més lògica estigui a Firebird, més feina de migració caldrà per transferir-la o per traslladar-la conscientment a serveis/aplicació.

2) Perfilatge de dades i qualitat

Abans de copiar cal saber si les dades són consistents. Deute heretat típic inclou valors de data invàlids, „0“ en lloc de NULL, cadenes tallades, claus no úniques o infraccions de constraints tolerades històricament. MariaDB és en alguns aspectes més estricte i en altres més tolerant —ambdós casos poden generar problemes. Un perfilatge de dades identifica camps amb valors aberrants, codificacions inesperades i taxes de NULL destacables.

3) Patrons de càrrega i d’accés

Per a l’operació i el rendiment no només compta el volum de dades sinó l’accés: quines taules són hotspots? Quins informes s’executen de nit? Quines transaccions són llargues? Quines consultes s’executen sense índex? Firebird pot perdonar certs patrons; MariaDB pot respondre amb bloqueigs o alta càrrega d’E/S. Aquesta anàlisi determinarà després el disseny d’índexs, els ajustaments de consultes i els paràmetres.

Decisió d’arquitectura: portatge 1:1 o modernització controlada?

En la migració hi ha dos extrems: „prendre-ho 1:1“ o „fer-ho tot de nou“. A la pràctica, un punt intermedi controlat sol ser el menys arriscat:

  • 1:1 per a estructures de dades on l’aplicació està fortament acoblada i els canvis serien costosos.
  • Netejeses dirigides en decisions antigues que a MariaDB comportarien un risc operatiu permanent (p. ex. VarChars excessivament llargs, índexs absents, collations poc clars).
  • Desacoblament a les interfícies, on hi ha sistemes externs afectats (BI, DWH, ERP/DMS/CRM). Aquí sovint és adequada una capa de contracte estable (Views, API, taules d’exportació).
  • Per a aplicacions Delphi– o Windows-client‑servidor existents, la capa d’accés a dades juga un paper central. Si utilitzeu una BDE‑Ablösung amb connexió nativa (una biblioteca d’accés a dades Delphi molt estesa), la connexió tècnica a MariaDB és, en principi, viable. El que és determinant no és tant el driver, sinó la semàntica: transaccions, tipus de paràmetres, codis d’error, manejament de BLOB i les variants de consultes que fins ara han «funcionat».

    Obstacles típics en el pas «Firebird nach MariaDB migrieren»

    NULL, valors predeterminats i cadenes buides

    En aplicacions antigues les cadenes buides i NULL sovint no estan separades de forma neta. En informes, filtres o claus úniques això pot donar lloc a resultats diferents després de la migració. Aquí ajuda una definició clara per columna: s’admet NULL? Valor per defecte? S’escriu i es llegeix de manera consistent a la UI/servei?

    Boolean i camps d’estat

    Firebird sovint utilitza patrons com Smallint(0/1) o char(‚T’/’F‘). MariaDB té BOOLEAN com a alias (tipus habitual TINYINT(1)). Per a les interfícies és important: com es serialitzen els valors (per exemple en REST-services)? Una conversió ambigua pot provocar errors de „true/false“ que només apareixen dins del procés.

    BLOBs: documents, imatges, correus electrònics

    Els camps BLOB rarament són „només grans“. Afecten el backup, el restore, la replicació i el rendiment. Per a MariaDB cal decidir si els BLOBs han de romandre a la base de dades o si a mig termini és més apropiat un emmagatzematge orientat a objectes (sistema de fitxers, compatible amb S3). Per a la migració en si: comprovar si els BLOBs són binaris o textuals, quines codificacions s’apliquen i com interpreta l’aplicació els continguts.

    Identitats i generació de claus

    Si Firebird assigna claus primàries mitjançant triggers + generator, la destinació ha d’establir de manera inequívoca qui assigna la ID: la base de dades (AUTO_INCREMENT/SEQUENCE) o l’aplicació. Les solucions mixtes són arriscades. A més, cal ajustar els valors inicials després de l’import perquè no hi hagi col·lisions de claus en la primera inserció després del cutover.

    Lògica de trigger per a auditories i validació

    Molts sistemes tenen triggers que mantenen marca temporal de canvi, identificador d’usuari o línies d’auditoria. MariaDB suporta triggers, però els detalls (sintaxi, temporització, accés a OLD/NEW, gestió d’errors) poden diferir. Precisament els triggers d’auditoria són operativament rellevants: si deixen de funcionar després de la migració, es crea un problema de compliment i traçabilitat.

    Conflictes d’encoding i errors de dades «invisibles»

    Un clàssic: les dades es veuen correctes a l’aplicació però al sistema de destinació es classifiquen malament o no es troben amb cerques LIKE. La causa són desajustos de collation o encodings mixtes. Per això: proveu no només la „visualització“, sinó la lògica de cerca, la comprovació de duplicats, l’import/export i les integracions (per exemple CSV/EDI).

    Estrategia de migració: Offline, Online o Híbrid?

    La tria de l’estratègia determina el pla de projecte. Són típiques tres variants:

    Migració offline (cutover clàssic)

    L’aplicació s’atura, les dades s’exporten/importen i després es fa el canvi. Avantatges: senzill, estat de dades clar. Inconvenients: el temps d’inactivitat pot ser llarg segons el volum de dades i les validacions.

    Online-Migration (Parallelbetrieb)

    Firebird continua productiu, MariaDB s’omple de manera contínua (p. ex. mitjançant mecanismes de replicació o Change-Data-Capture). El cutover és curt. A canvi, la complexitat és clarament més alta: conflictes, seqüències, transaccions, tractament d’errors.

    Híbrid (preparació prèvia + importació delta final)

    Practicable en moltes empreses: s’executa un import inicial en bloc prèviament, després només es transfereixen els canvis (deltas) fins que es realitza el cutover final. El truc és una definició de delta neta: marques de temps, seqüències o registres de canvis han de ser fiables.

    ETL i presa de dades: Com fer robustos els camins d’importació

    A l’hora de la presa de dades convé un procés clar en lloc d’un «script i esperar». Robúst vol dir aquí: repetible, registrat, verificable.

    Enfocament de staging en lloc d’importació directa

    Un patró provat és una base de dades de staging (o un esquema), on les dades s’importen primer en brut. Allà podeu:

    • normalitzar les codificacions
    • comprovar i convertir tipus
    • controlar la integritat referencial
    • fer visibles els conflictes de duplicats

    Només després es traslladen les dades a l’esquema final. Això redueix el risc perquè els errors es detecten d’hora i l’importació es manté repetible.

    Validació: comprovacions que realment ajuden en l’operació

    Configureu les validacions perquè posteriorment serveixin com a criteri d’acceptació i com a garantia operativa. Categories típiques de comprovació:

    • Nombre de files per taula (no com a prova única, però com a senyal bàsic)
    • Comprovacions de suma/hash sobre columnes crítiques (p. ex. imports, estats, marques de temps)
    • Referències (claus foranes orfes, fins i tot si històricament no hi ha RESTricció)
    • Mostres de processos funcionalment crítics (comandes, documents, històrics)

    Particularment important per a decisors: la validació no és un «nice to have», sinó la palanca per minimitzar el risc d’un error de dades que evolucioni a poc a poc.

    Rendiment i operació: Què determina després de la importació

    Després de la presa de dades comença la fase que marca el dia a dia: temps de resposta, estabilitat, finestres de manteniment i transparència en l’operació.

    Disseny d’índexs i perfils de consulta

    Els índexs no es poden traslladar 1:1 perquè l’optimitzador treballa diferent. Un enfocament raonable:

    • Començar amb un conjunt bàsic ben cobert (clau primària/clau forana, columnes filtrades freqüents)
    • Proves de càrrega amb fluxos de treball realistes (no només SELECTs sintètics)
    • Complementar índexs de manera dirigida a partir de logs de consultes lentes i monitorització

    Important: massa índexs empitjoren la fluïdesa d’escriptura i augmenten consum d’emmagatzematge/IO. L’objectiu és un compromís operacional, no un «índex per a cada consulta».

    Mida de la transacció i processament per lots

    Molts processos legacy treballen amb transaccions grans (p. ex. tancaments nocturns). En MariaDB això pot provocar càrrega d’undo/redo, bloquejos o temps de recuperació llargs. Aquí ajuden límits clars de batch, processament idempotent (repetible sense doble comptabilització) i punts de commit ben situats.

    Còpia de seguretat/RESTauració, RPO/RTO i proves de recuperació

    Per a la direcció d’IT el criteri final és: com de ràpid puc RESTaurar i quin és el pèrdua de dades en el pitjor escenari? Això són RTO (Recovery Time Objective) i RPO (Recovery Point Objective). Planifiqueu:

    • Còpies de seguretat regulars (lògiques/físiques segons el concepte)
    • Retenció i xifrat
    • Proves de RESTauració en un entorn separat

    Una migració només es considera operativament estable quan els processos de restauració no només estan documentats, sinó que s’han provat realment.

    Monitoring, Alarme und Kapazitätsplanung

    MariaDB es pot monitoritzar bé, però només si seleccioneu els senyals adequats: nombre de connexions, estat de replicació (si s’utilitza), buffer-pool, I/O de disc, esperes de bloqueig (Lock-Waits), consultes lentes, creixement del tablespace. Definiu llindars d’alarma de manera que no sobrecarreguin l’equip d’operacions amb «soroll», però que detectin problemes reals de forma precoç.

    Seguretat i permisos: de la mentalitat Firebird a l’operació MariaDB

    En les migracions de bases de dades la seguretat sovint es considera massa tard. Alhora canvien els conceptes: gestió d’usuaris, rols, permisos basats en host, connexions TLS, polítiques de contrasenya.

    Punts pràctics per a la transició:

    • Separar comptes de servei: aplicació, reporting, administració, manteniment – usuaris separats, permisos mínims.
    • Segmentació de xarxa: no obrir MariaDB «per a tothom»; accessos mitjançant xarxes i ports definits.
    • Xifrat en trànsit: TLS entre aplicació i base de dades, especialment en ubicacions distribuïdes.
    • Registre: segons els requisits de compliment, fer traçables els accessos i les accions d’administració.

    Sobretot quan integracions (p. ex. portals o REST-Services) es connecten a la base de dades, aquesta no hauria de convertir-se en un «bus comú», sinó que s’ha d’accedir a través d’interfícies definides. Això redueix els moviments laterals en cas d’incident de seguretat.

    Planificació del Cutover: Així es transforma un projecte en un canvi controlat

    El cutover no és el moment en què «finalment es fa el canvi», sinó l’instant en què es fa visible una bona preparació. Un pla de cutover pràctic inclou:

    • Moment de congelació (a partir de quan no es faran més canvis de dades a Firebird)
    • Importació delta final incloent registre i mesura del temps
    • Verificació amb criteris clars (no «sembla bé»)
    • Canvi de les aplicacions (cadenes de connexió, DNS/Proxy, secrets)
    • Smoke tests dels processos de negoci més importants
    • Finestra de decisió per al rollback (fins quan és possible tornar enrere i com)

    Un rollback net no implica necessàriament «copiar-ho cap enrere». Sovint el rollback més pràctic és tornar a posar Firebird i aturar MariaDB temporalment, sempre que durant la finestra de cutover no s’hagin desencadenat processos posteriors irreversibles. Això ha d’estar coordinat organitzativament (p. ex. números de document, exports d’interfícies).

    Integració i aplicacions: què canvia al voltant de la base de dades

    La base de dades rarament està aïllada. Les dependències típiques són:

    • Reporting (consultes SQL directes, vistes, extrets)
    • Interfícies amb ERP/DMS/CRM (basades en fitxers o API)
    • Batch-Jobs, Windows-Services o Linux-Services que processen dades
    • Portals i accessos externs (p. ex. portal de clients)

    Especialment en sistemes creixents, val la pena aprofitar l’oportunitat per desacoblar els accessos a dades: vistes/exports centrals, punts finals clars REST o capes de servei. Això no és un fi en si mateix, sinó que millora la mantenibilitat i redueix les dependències directes de SQL, que en la següent migració tornaran a ser costoses.

    Si la vostra aplicació existent està implementada en Delphi, també és un bon moment per consolidar l’accés a les dades (p. ex., configurar correctament BDE-Ablosung mit nativer Anbindung, marcs de transacció consistents, maneig d’errors uniforme). Això repercuteix directament en la seguretat operativa i la resolució d’errors.

    Estratègia de proves: acceptació sense il·lusions

    Una migració de base de dades rarament falla perquè «SELECT no funciona», sinó perquè els casos límit en el procés es comporten de manera diferent. Una estratègia de proves robusta combina:

    • Proves tècniques: establiment de connexió, transaccions, comportament de bloqueig, rendiment sota càrrega.
    • Proves funcionals end-to-end: cadenes de procés típiques des de la captura fins a l’avaluació.
    • Proves de regressió per a informes: comparació de sumes, agrupaments i lògica de filtres.
    • Proves operatives: Backup/RESTore, monitoratge/alarmes, comportament de reinici després de manteniment.

    És important definir els criteris d’acceptació: quines mètriques han de ser iguals? Quines desviacions són explicables (p. ex., l’ordre de classificació amb la mateixa collation)? Qui decideix en cas de dubte? Sense aquesta governança sorgeixen bucles innecessaris poc abans del go-live.

    Conclusió: pensar la migració com un projecte operatiu – no com un tema purament de base de dades

    Migrar de Firebird a MariaDB és factible si es planifica com un projecte d’operacions i integració. Els punts crítics rarament són l’exportació en si, sinó els tipus de dades, les collations, la lògica dels triggers, la generació de claus, el comportament de transaccions i la coreografia segura del cutover. Qui pren seriosament l’inventari, la validació i les proves de RESTauració redueix significativament els riscos del projecte i crea una base de dades que es mantindrà sostenible a llarg termini.

    Si voleu preparar la migració de manera estructurada — des de l’anàlisi passant pel concepte de proves fins al pla de cutover i la transferència d’operacions — podeu contactar-nos específicament per a això:

    En l’àmbit funcional també tenen un paper important la migració de Firebird i la migració de MariaDB quan cal que integracions, fluxos de dades i evolució funcionin conjuntament de manera ordenada.

    Parli sobre el projecte o la 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.