Net-Base Tímarit

04.06.2026

Flutningur frá Firebird yfir í MariaDB: Aðferð, gildrur og rekstraröryggi í daglegum rekstri

Flutningur frá Firebird yfir í MariaDB er sjaldan einungis út- og innflutningsverkefni. Ákvarðandi þættir eru SQL-díalektinn, meðhöndlun færsluviðskipta (Transactions), stafasett, gagnagerðir, triggerar og generatorar, frammistaða og vel skilgreindur yfirtökufasi (Cutover). Greinin sýnir hagnýta aðferðafræði fyrir…

04.06.2026

Frá tímaritsþema til verkefnaframkvæmdar

Viðeigandi þjónustu- og tæknisíður fyrir greinina

Þeir sem vilja færa Firebird yfir í MariaDB hafa yfirleitt skýrt markmið: langtímalega vel rekjanlega gagnapall sem fellur að núverandi innviðum, afritunaraðferðum (Backup-Strategien), eftirliti og þekkingu innan IT-teymis. Í framkvæmd er þetta þó sjaldan aðeins bein gagnaafritun. Firebird og MariaDB eru ólík hvað varðar SQL-dialekt, færsluhegðun, gagnategundir, táknmynstureglur (Collations) og þann hátt sem rökréttur kóði er útfærður í gagnagrunninum (Trigger, Stored Procedures, Sequenzen/Generatoren).

Þessi grein lýsir framsetningu sem virkar í fyrirtækjum: með traustri greiningu, stýrðum migrasjónarleiðum, eftirfylgjanlegum prófunarmöguleikum og Cutover sem ógengur rekstur óþarfa. Áherslan er meðvituð á rekstur, stjórnun, gagnagæði og samþættingar – minna á rammaatriði (Framework-Details).

Af hverju fyrirtæki skipta út Firebird – og af hverju MariaDB er oft valin

Firebird er aðlaðandi fyrir mörg vaxin fyrirtækjakerfi: létt, fljótlegt í notkun og oft sjaldan breytilegt í rekstri. Samt koma, eftir skipulagi, ákveðnir drifkraftar fyrir breytingu:

  • Betriebsstandardisierung: MariaDB (MySQL-kompatibel) er í mörgum umhverfum rekin sem staðal gagnagrunnur, með sjálfvirkni, uppfærsluferlum og eftirliti.
  • Plattform- und Tool-Ökosystem: Fjölmörg ETL-tól, BI-tengingar og rekstrarverkfæri eru sérstaklega vel undirbúin fyrir MySQL/MariaDB.
  • Skalierungs- und Hochverfügbarkeitskonzepte: Afritun, proxy-uppsetningar, klasaval og rekstur í gámum (Container-Betrieb) er oft aðlögunarhæfara innan skipulagsins.
  • Personal und Verantwortlichkeiten: Þekking og vaktþjónusta er oft auðveldari að tryggja þegar gagnagrunnurinn passar inn í aðra hluta landslagsins.

Það sem skiptir máli: Flutningur mun aðeins bera árangur ef hann verður ekki bara „einhvern veginn“ virkur, heldur rekstrarhæfur. Til þess þarf skýra rekstrarbreytur, Backup/RESTore-tíma, eftirlit, eftirlitssannaða gagnaintegritet og áætanlegt rollback.

Firebird vs. MariaDB: Tæknilegar mismunir sem í verkefnum skipta raunverulega máli

Áður en hönnun flutnings fer fram er æskilegt að skoða sérstaklega þá mismun sem síðar munu ákvarða tíma og áhættu:

SQL-Dialekt und Funktionen

Firebird hefur sínar eigin syntaxisýrur og nafnavenjur fyrir föll. MariaDB er MySQL-kompatibel en hefur líka sérkenni. Algengar árekstrar eru dagsetninga-/tímaföll, strengjaföll, reglur um casting og hvernig fyrirspurnir eru fínstilltar. Í migrasjón er þetta ekki fræðilegt atriði: hver breytt fyrirspurn getur valdið regressum ef hún er ekki kerfisbundið prófuð.

Transaktionen, Isolation und Nebenläufigkeit

Firebird notar Multiversion Concurrency Control (MVCC): lesendur loka typísk ekki ritunarferlum á sama hátt og í klassískum læsingarlíkönum. MariaDB notar einnig MVCC (yfir InnoDB), en nákvæm hegðun ræðst mikið af isolation level, vísubeiningun og fyrirspurnagerð. Fyrir daglega reksturinn þýðir þetta að eftir migrasjón geta læsingavenjur, tíðni deadlocks og „Long Running Transactions“ breyst.

Zeichensatz, Collation und Sortierung

Algengur áhættuþáttur í verkefnum er samsetning stafsafns (t.d. UTF-8) og raðunar-/samanburðarreglna (Collation). Firebird-verkefni innihalda oft blönduð ástand: gömul gögn í legacy-encodingu sem síðar voru færð yfir, auk forritakóða með eigin umbreytingum. Í MariaDB er hægt að stilla raðunarreglur fyrir gagnagrunn, töflu eða dálk. Rangar stillingar leiða til ranga samanburða, „tvöfaldra“ lykla við röðun sem hunsar hástafi/lágstafi eða óvæntra leitaniðurstaða.

Gagnategundir og nákvæmni

Firebird og MariaDB skilja sig hvað varðar talnagildi, tímatíma, boolean, BLOBs og meðhöndlun sjálfgefna gilda. Sérstaklega viðkvæmt er nákvæmni fyrir peningaupphæðir (Decimal) og tímasetningar. Flutningur verður að skipuleggja gerðarkortlagningu þannig að engar þagnarlegar mismunanir við nákvæmni eða skerðingar (rounding/truncation) eigi sér stað.

Generatoren/Sequenzen, Auto-Increment und Trigger

Firebird notar „Generatoren“ (Sequenzen) oft í samhliða notkun með triggörum til að úthluta aðallyklum. MariaDB vinnur yfirleitt með AUTO_INCREMENT eða SEQUENCE (eftir útgáfu/uppsetningu). Ef forritið hefur hingað til sótt generator-gildi sérstaklega eða trigger-rök byggjast á generatorum, verður þetta að endursmíða nákvæmt eða skipta meðvitað um — þar með talið rétt upphafsgildi og tryggingu um árekstralausni.

Undirbúningur: uppgjör fremur en magatilfinning

Traust flutningur byrjar með uppgjöri sem ekki einungis telur töflur heldur lýsir notkun. Markmiðið er að forðast óvænt atvik á yfirfærsluvikunni.

1) Uppgjör yfir hluti og rökfræði

  • Töflur, Views, Indexar, Constraints
  • Trigger (sérstaklega fyrir audit, staðfestingar, aðallykla)
  • Geymdar aðgerðir (Stored Procedures) og UDFs (User Defined Functions)
  • Generatoren/Sequenzen og notkunarmynstur þeirra
  • Hlutverk/heimildir, eftir atvikum forritsnotendur

Mikilvægt er spurningin: Hvað er hreint gagnageymsla — og hvað er viðskipta­lógík sem liggur í gagnagrunninum? Því meira sem lógík er í Firebird, því meira vinnu krefst flutningurinn til að yfirfæra hana eða meðvitað færa hana í þjónustur/forrit.

2) Gagnaprófun og gagna gæði

Fyrir afritun ætti að liggja fyrir hvort gögnin eru samkvæm. Algengar erfðir eru ógild dagsetningargildi, „0″ í stað NULL, skorinn strengur, ekki-einstakandi lyklar eða sögulega þolanleg brot á takmörkunum. MariaDB er í sumum atriðum strangari, í öðrum umburðarlyndari — hvorugt getur leitt til vandamála. Gagnaprófun greinir reiti með útstæðum gildum, óvæntum encodingum og áberandi hlutdeild NULL-gilda.

3) Álags- og aðgangsmynstur

Fyrir rekstur og afköst skiptir ekki aðeins magnið máli heldur hvernig aðgangur fer fram: Hvaða töflur eru heit svæði (hotspots)? Hvaða skýrslur keyra á nóttunni? Hvaða transaktionir eru langar? Hvaða fyrirspurnir keyra án indexa? Firebird getur fyrirgefið sum mynstur; MariaDB bregst í sumum tilvikum við með læsingum eða miklu IO-álagi. Þessi greining mótar síðar index-hönnun, fyrirspurnaraðlögun og stillingar.

Arkitektúrákvörðun: 1:1-portun eða stjórnuð nútímavæðing?

Við flutning eru til tvö öfgakennd nálganir: „1:1 yfirfærsla“ eða „allt upp frá grunni“. Í reynd er stjórnaður millivegur oftast öruggasta leiðin:

  • 1:1 fyrir gagnastrúktúr þar sem forritið er þétt tengt og breytingar yrðu kostnaðarsamar.
  • Markviss hreinsun á eldri ákvörðunum sem myndu skapa varanlega rekstraráhættu í MariaDB (t.d. of langir VarChar, vantar indexa, óljósar raðunarreglur (Collations)).
  • Aðskiljun við viðmót, þar sem utanaðkomandi kerfi koma við sögu (BI, DWH, ERP/DMS/CRM). Hér er oft skynsamlegt að hafa stöðugt samningslag (Views, API, útflutningstöflur).
  • Für gewachsene Delphi– oder Windows-Client-Server-Anwendungen spielt die Datenzugriffsschicht eine zentrale Rolle. Wenn Sie BDE-Ablösung mit nativer Anbindung nutzen (eine verbreitete Delphi-Datenzugriffsbibliothek), ist die technische Anbindung an MariaDB grundsätzlich gut machbar. Entscheidend ist weniger der Treiber, sondern die Semantik: Transaktionen, Parametertypen, Fehlercodes, BLOB-Handling und die Abfragevarianten, die bislang „funktioniert haben“.

    Dæmigerðar gildrur við skrefið „Flytja Firebird til MariaDB“

    NULL, sjálfgefnar gildi und tómir strengir

    Í eldri forritum eru tómir strengir og NULL oft ekki greinilega aðskilin. Í skýrslum, síum eða einstökum lyklum getur það leitt til annarra niðurstaðna eftir flutninginn. Hér hjálpar skýr ákvörðun fyrir hvern dálk: er NULL leyft? Sjálfgefið gildi? Er í UI/þjónustu alltaf skrifað og lesið samkvæmt því?

    Boolean- und stöðusvið

    Firebird notar oft Smallint(0/1) eða char(‚T’/’F‘)-mynstur. MariaDB hat BOOLEAN als Alias (typisch TINYINT(1)). Für Schnittstellen ist wichtig: Wie werden Werte serialisiert (z. B. in REST-Services)? Eine unklare Konvertierung führt sonst zu „true/false“-Fehlern, die erst im Prozess auffallen.

    BLOBs: skjöl, myndir, E-Mails

    BLOB-reitir eru sjaldan „bara stórir“. Þeir hafa áhrif á afritun, endurheimt, eftirmyndun og frammistöðu. Fyrir MariaDB þarf að skera úr hvort BLOBs eigi að vera í gagnagrunninum eða hvort hlutbundin geymsla (skráarkerfi, S3-samhæft) sé ákjósanlegri til meðallangs tíma. Fyrir sjálfa flutninginn gildir: athugaðu hvort BLOBs eru tvíund eða texta, hvaða kóðanir eiga við og hvernig forritið túlkar innihaldið.

    Auðkenni und lykilgervingu

    Wenn Firebird über Trigger + Generator Primärschlüssel setzt, muss die Zielseite eindeutig regeln, wer die ID vergibt: Datenbank (AUTO_INCREMENT/SEQUENCE) oder Anwendung. Mischformen sind riskant. Außerdem müssen Startwerte nach dem Import korrekt gesetzt werden, sonst drohen Key-Kollisionen bei der ersten Neuanlage nach Cutover.

    Trigger-rökfræði für Audits und Validierung

    Margir kerfi hafa triggara sem halda utan um breytingatíma, notendakenningu eða audit-færslur. MariaDB kann Trigger, aber die Details (Syntax, Timing, Zugriff auf OLD/NEW, Fehlerbehandlung) unterscheiden sich. Gerade Audit-Trigger sind betrieblich relevant: Wenn sie nach Migration still ausfallen, entsteht ein Compliance- und Nachvollziehbarkeitsproblem.

    Stafasettaklandur und „ósýnilegar“ gagnavillur

    Dæmigert: gögn birtast rétt í viðmótinu en eru röðuð rangt í markkerfinu eða finnast ekki í LIKE-leitum. Orsakir eru ósamræmi í collation eða blönduð kóðun. Deshalb: Testen Sie nicht nur „Anzeige“, sondern Suchlogik, Dublettenprüfungen, Import/Export und Integrationen (z. B. CSV/EDI).

    Flutningsstefna: Offline, Online oder Hybrid?

    Val á stefnu ákvarðar verkefnisáætlun. Typisch sind drei Varianten:

    Offline-Migration (klassischer Cutover)

    Forritinu er stöðvað, gögn eru flutt út/inn, danach wird umgeschaltet. Vorteile: einfach, klarer Datenstand. Nachteile: Downtime kann je nach Datenmenge und Validierung lang sein.

    Online-Migration (Parallelbetrieb)

    Firebird bleibt produktiv, MariaDB wird kontinuierlich befüllt (z. B. über Replikations- oder Change-Data-Capture-Mechanismen). Cutover ist kurz. Dafür ist die Komplexität deutlich höher: Konflikte, Reihenfolgen, Transaktionen, Fehlerbehandlung.

    Hybrid (Vorlauf + finaler Delta-Import)

    Í mörgum fyrirtækjum hagkvæmt: Upprunalegur bulk-innflutningur er framkvæmdur áður en farið er að senda aðeins breytingar (Delta), þar til endanlegur Cutover á sér stað. Bragðið er í skýrum skilgreiningum á Delta: Tímapunktar, raðnúmer eða breytingaskrár verða að vera áreiðanlegar.

    ETL und Datenübernahme: Wie Sie Importpfade robust machen

    Við yfirtöku borgar sig skýr ferill í staðinn fyrir „ein Skript und hoffen“. Áreiðanlegt þýðir hér: endurtekanlegt, skrásett, sannprófanlegt.

    Staging-Ansatz statt Direktimport

    Reyndar mynstur er staging-gagnagrunnur (eða eining/Schema), í þann flytjast gögnin fyrst inn hrá. Þar getið þið:

    • Staðla kóðanir (Encodings)
    • Skoða gagnategundir og umbreyta þeim
    • Staðfesta tilvísunarheilindi
    • Gera árekstra vegna afritagagna sýnilega

    Eftir það eru gögnin færð yfir í markmiðsschema. Þetta dregur úr áhættu því villur koma fram snemma og innflutningurinn helst endurtekanlegur.

    Validierung: Checks, die im Betrieb wirklich helfen

    Setjið staðfestingar upp þannig að þær nýtist síðar sem móttaka- og rekstraröryggi. Dæmigerðar prófflokkar:

    • Row Counts fyrir hverja töflu (ekki sem eini sönnunargagn, en sem grunnviðvörun)
    • Summen-/Hash-Checks yfir mikilvægar dálka (t.d. upphæðir, stöður, tímapunktar)
    • Referenzen (einangraðir foreign keys / orphaned foreign keys, jafnvel þótt sögulega án constraints)
    • Stichproben úr faglega viðkvæmum ferlum (pantana, skjala, söguskráa)

    Sérstaklega fyrir ákvörðunartöku: Staðfesting er ekki „nice to have“, heldur sá armur sem minnkar áhættu smám saman vaxandi gagna-villu.

    Performance und Betrieb: Was nach dem Import entscheidet

    Eftir vel heppnaða gagnayfirfærslu hefst tímabilið sem mótar daglegan rekstur: svarflýtir, stöðugleiki, viðhaldsgluggar og sýnileiki í rekstri.

    Index-Design und Abfrageprofile

    Indizes er ekki hægt að flytja 1:1 þar sem optimizer virkar öðruvísi. Skynsamleg nálgun:

    • Byrjið með traustu grunnsetti (Primär-/Fremdschlüssel, dálkar sem oft eru notaðir sem síur)
    • Álagsprófanir með raunsæjum vinnuflæði (ekki aðeins tilbúnar SELECTs)
    • Markviss viðbót við indíce byggð á slow-query-logs og eftirliti

    Þyngdarpunktur: Of margar vísitölur rýra skrifhraða og auka geymslu/IO. Markmiðið er rekstrarlegur málamiðlun, ekki „index fyrir hverja fyrirspurn”.

    Transaktionsgröße und Batch-Verarbeitung

    Mörg eldri ferli vinna með stórar transaksjónir (t.d. næturlegar bókhaldskeyrslur). Í MariaDB getur það valdið Undo/Redo-álagi, læsingum eða löngum endurheimtartímum. Hér hjálpa skýr batch-mörk, idempotent vinnsla (endurtekning án tvírbókunar) og vel staðsettir commit-punktar.

    Backup/RESTore, RPO/RTO und Test der Wiederherstellung

    Fyrir IT-stjórn telst á endanum: Hversu hratt get ég endurheimt og hversu mikið gagna tap er í versta tilfelli? Þetta eru RTO (Recovery Time Objective) og RPO (Recovery Point Objective). Skipuleggið:

    • Regluleg Backups (logical/physical eftir hugmyndafræði)
    • Geymsla og dulkóðun
    • Endurheimtarprófanir í aðskildum umhverfi

    Flutningur telst fyrst rekstrarlega stöðugur þegar endurheimtarferlar hafa ekki aðeins verið skjalfestir heldur líka raunprófaðir.

    Eftirlit, viðvaranir og afkastagetuáætlanir

    MariaDB er auðvelt að fylgjast með, en aðeins ef rétt merki eru valin: fjöldi tenginga, eftirmyndunarstaða (ef notað), Buffer-Pool, Disk IO, Lock-Waits, Slow Queries, Tablespace-vöxtur. Stillið viðvaranarmörk þannig að þau yfirhlaði ekki vaktina með „hávaða“, en greini raunveruleg vandamál snemma.

    Öryggi og aðgangsheimildir: Frá Firebird-hugsun til reksturs með MariaDB

    Við gagnagrunnsflutninga er öryggi oft ekki tekið til greina fyrr en seint. Hugmyndafræði breytist þó: notendastjórnun, hlutverk, host-bundnar heimildir, TLS-tengingar, lykilorðastefna.

    Hagnýt atriði fyrir yfirfærslu:

    • Servicereikningum aðskilja: forrit, reporting, admin, viðhald – aðskildir notendur, lágmarksréttindi.
    • Netsskipting: opnið ekki MariaDB „fyrir alla“; aðgangur yfir skilgreind net og porta.
    • Dulkóðun í flutningi: TLS milli umsóknar og gagnagrunns, sér í lagi við dreifða staðsetningu.
    • Skráning: Haldið aðgangi og stjórnunar aðgerðum rekjanlegum í samræmi við kröfur um compliance.

    Sérstaklega þegar innleiðingar (t.d. gáttir eða REST-þjónustur) tengjast gagnagrunninum, ætti gagnagrunnurinn ekki að verða „sameiginlegur bus“, heldur verði honum beint í gegnum skilgreind viðmót. Það dregur úr hliðhreyfingum í öryggisatvikum.

    Áætlun fyrir skiptingu: Svona verðr úr verkefni stjórnað flutningur

    Skiptingartíminn er ekki sá punktur þar sem „loksins er skipt yfir“, heldur augnablikið þar sem góð undirbúningur skilar sér. Hagnýt skiptingaráætlun inniheldur:

    • Freeze-tímapunktur (frá hvaða tíma gerðar eru engar gagnabreytingar í Firebird)
    • Lokadelta-innflutningur með skráningu og tímamælingu
    • Staðfesting með skýrum viðmiðum (ekki „„lítur vel út““)
    • Skipta forritum (tengistrengir, DNS/Proxy, Secrets)
    • Smoke-prófanir á helstu viðskiptavinnsluferlum
    • Gluggi fyrir rollback-afgreiðslu (til hvers tíma er afturkoma möguleg og hvernig)

    Snyrtilegur rollback þýðir ekki endilega „aftur afrita“. Oftast er hagnýtasta rollback að skipt aftur yfir á Firebird og stöðva MariaDB tímabundið, svo fremi sem engar óafturkræfar fylgikvillar hafi verið virkjaðir innan skiptingarfjöldans. Þetta þarf að vera samræmt skipulagslega (t.d. reikningsnúmer, viðmótsexport).

    Innleiðing og forrit: Hvað breytist í kringum gagnagrunninn

    Gagnagrunnurinn er sjaldan einangraður. Algengar háðnir eru:

    • Reporting (bein SQL-fyrirspurnir, Views, útflutningar)
    • Viðmót við ERP/DMS/CRM (skráa- eða API-grunnur)
    • Batch-verkefni, Windows-þjónustur eða Linux-þjónustur, sem vinna með gögn
    • Gáttir og utanaðkomandi aðgangar (t.d. Viðskiptavinagátt)

    Sérstaklega í uppsöfnuðum kerfum er skynsamlegt að nota tækifærið til að afkoppavæða gagnasöfn: miðlægar Views/útflutningar, skýr REST-endapunktar eða þjónustulög. Þetta er ekki tilgangslaust, heldur bætir viðhaldshæfni og dregur úr beinum SQL-fyrirspurnartengslum, sem myndu aftur verða kostnaðarsöm við næstu flutninga.

    Ef núverandi viðskiptalausn ykkar er innleidd í Delphi er einnig rétt tími til að samræma aðgang að gögnum (t.d. að stilla BDE-Ablosung mit nativer Anbindung rétt, samræma viðskiptaramma og hafa einsleita villumeðhöndlun). Þetta skilar sér beint í rekstraröryggi og bilanaleit.

    Prófunarstefna: Samþykkt án blekkinga

    Flutningur gagnagrunns bregst sjaldan vegna þess að „SELECT“ virkar ekki, heldur vegna þess að jaðartilvik í ferlinu ganga upp á annan hátt. Traust prófunarstefna sameinar:

    • Tækniprófanir: tenging, viðskipti, læsingarhegðun, frammistaða undir álagi.
    • Faglegar enda-til-enda prófanir: dæmigerðar ferlaketjur frá skráningu til úrvinnslu.
    • Regressjónarprófanir fyrir skýrslur: samanburður á summum, hópunum og síunarrökfræði.
    • Rekstrarprófanir: afritun/endurheimt, eftirlit/viðvaranir, endurræsiháttur eftir viðhald.

    Mikilvægt er að skilgreina viðmið fyrir samþykkt: Hvaða lykil­tölur þurfa að koma út eins? Hvaða frávik eru útskýrð (t.d. röðunarniðurstöður við sama collation)? Hver tekur ákvörðun við ágreining? Án þessarar stjórnunar þróast óþarfar endurtekningar rétt fyrir gangsetningu.

    Niðurstaða: Hugsaðu flutning sem rekstrarverkefni – ekki eingöngu gagnagrunnsviðfangsefni

    Að flytja Firebird yfir í MariaDB er vel framkvæmanlegt ef verkefnið er skipulagt sem rekstrar- og samþættingarverkefni. Mestu vandamálin eru sjaldan sjálfur útflutningurinn, heldur gagnategundir, collations, trigger-rökfræði, lykilmyndun, transaktionahegðun og örugg yfirfærslu-kóreógrafía (cutover). Sá sem tekur teljaraskrá, staðfestingar og endurheimtarkjör alvarlega dregur verulega úr verkefnaráhættu og skapar gagnagrunn sem er viðhaldanlegur til lengri tíma.

    Ef þið viljið undirbúa flutninginn kerfisbundið — frá greiningu, prófáætlun til cutover-plans og rekstraryfirfærslu — getið þið haft samband við okkur sérstaklega:

    Í faglegu samhengi gegna einnig Firebird Migration og Mariadb Migration mikilvægu hlutverki þegar samþættingar, gagnastreymi og áframhaldandi þróun þurfa að spila vel saman.

    Ræddu verkefni eða nútímavæðingarverkefni með Net-Base.

    Næsta skref

    Ef efnið verður að raunverulegu verkefni, ætti snemma að skoða kerfisarkitektúr, núverandi kerfi og rekstur í sameiningu.

    Við styðjum ekki aðeins við einstakar spurningar, heldur einnig þegar úr kóðabútum, eldri kerfum eða gáttahugmyndum þarf að verða traust fyrirtækjaverkefni.

    • Núverandi staða, markmynd og tæknileg áhætta eru metin saman.
    • REST, aðgangur að gögnum, gáttir og innleiðing verða ekki flutt til síðari tíma sem afleiðingar.
    • Þú sérð snemma hvaða leið er efnahagslega og rekstrarlega framkvæmanleg.

    Deila færslu

    Deila þessari færslu beint

    LinkedIn, X, XING, Facebook, WhatsApp og tölvupóstur eru strax í boði. Fyrir Instagram undirbúum við tengil og stuttan texta strax.

    Tölvupóstur

    Instagram opnast í nýjum flipa. Tengill og stuttur texti eru afritaðir í klippiborðið á undan.