Net-Base Žurnalas

04.06.2026

Migracija iš Firebird į MariaDB: eiga, spąstai ir kasdienio eksploatavimo patikimumas

Perėjimas nuo Firebird prie MariaDB retai apsiriboja vien eksportu–importu. Esminiai veiksniai yra SQL dialektas, transakcijos, simbolių rinkiniai, duomenų tipai, trigeriai/generatoriai, našumas ir tvarkingas perėjimas. Straipsnis pateikia pritaikomą praktinį veiksmų planą...

04.06.2026

Nuo žurnalo temos iki projekto įgyvendinimo

Tinkami puslapiai apie paslaugas ir techninę informaciją šiam įrašui

Kas nori perkelti Firebird į MariaDB, paprastai turi aiškų tikslą: ilgalaikė, gerai prižiūrima duomenų platforma, kuri dera su esama infrastruktūra, atsarginių kopijų strategijomis, stebėsena ir IT komandos žiniomis. Praktikoje tai retai būna vien tik duomenų kopija. Firebird ir MariaDB skiriasi SQL dialektu, transakcijų elgsena, duomenų tipais, koduotės bei lyginimo taisyklėmis (Collations) ir tuo, kaip logika įgyvendinama duomenų bazėje (triggeriai, saugomos procedūros, sekos/generatoriai).

Šis straipsnis aprašo metodiką, kuri veikia įmonėse: patikima analizė, kontroliuojamas migracijos kelias, atsekamas testavimas ir perėjimas, kuris neveikia pertekliniu rizikos didinimu. Dėmesys sąmoningai skiriamas eksploatavimui, administravimui, duomenų kokybei ir integracijoms – mažiau dėmesio skiriant framework detalėms.

Kodėl įmonės atsisako Firebird – ir kodėl dažnai pasirenkama MariaDB

Firebird daugelio brandžių verslo taikomųjų programų atveju yra patraukli: kukli, greitai paruošiama, dažnai ilgaamžiška eksploatacijoje. Kartu, priklausomai nuo organizacijos, susidaro tipiški motyvai pakeitimui:

  • Eksploatacijos standartizavimas: MariaDB (suderinama su MySQL) daugelyje aplinkų jau veikia kaip standartinė duomenų bazė, įskaitant automatizavimą, pataisų procesus ir stebėseną.
  • Platformos ir įrankių ekosistema: Daugelis ETL įrankių, BI jungčių ir eksploatacijos priemonių yra ypač gerai paruošti MySQL/MariaDB.
  • Mastelio keitimo ir aukšto prieinamumo sprendimai: Replikacija, proxy sprendimai, klasterių parinktys ir konteinerinė eksploatacija dažnai organizaciniu požiūriu lengviau pritaikomi.
  • Personalas ir atsakomybės: Žinias ir budėjimo pokrypį dažnai lengviau užtikrinti, kai duomenų bazė atitinka likusią architektūrą.

Svarbu: migracija apsimoka tik tada, kai ji ne tik „kažkaip“ veikia, bet tampa eksploatuojama. Tai apima aiškius eksploatacijos parametrus, Backup/RESTore laikus, stebėseną, atsekamą duomenų integralumą ir planuojamą Rollback galimybę.

Firebird vs. MariaDB: Techninės skirtumai, kurie projektuose iš tikrųjų svarbūs

Prieš pradedant pačius migracijos sprendimus verta nukreipti dėmesį į skirtumus, kurie vėliau lems laiką ir riziką:

SQL dialektas ir funkcijos

Firebird naudoja savas sintaksės variacijas ir funkcijų pavadinimus. MariaDB yra MySQL suderinama, tačiau taip pat turi savo ypatumų. Tipiški konfliktai yra datos/laiko funkcijos, eilutės funkcijos, konvertavimo (casting) taisyklės ir užklausų optimizavimo būdai. Migracijos metu tai nėra akademinis klausimas: kiekviena pritaikyta užklausa gali sukelti regresijas, jei ji nėra sistemingai ištestuota.

Transakcijos, izoliacija ir lygiagretumas

Firebird dirba su Multiversion Concurrency Control (MVCC): skaitytojai įprastai neužblokuoja rašytojų taip pat kaip klasikiniuose užrakinimo modeliuose. MariaDB taip pat naudoja MVCC (per InnoDB), tačiau konkretus elgesys labai priklauso nuo izoliacijos lygio, indeksavimo ir užklausų formos. Kasdienėje praktikoje tai reiškia: po migracijos užrakinimo elgsena, Deadlock dažnis ir „Long Running Transactions“ gali pasikeisti.

Zeichensatz, Collation und Sortierung

Dažnas projekto rizikos veiksnys yra simbolių rinkinys (pvz. UTF-8) ir collation (rūšiavimo ir palyginimo taisyklės) derinys. Firebird projektai dažnai būna mišriose būsenose: seni duomenys legacy koduotėse, vėliau pertvarkyti, be to programos kodas su savo konvertavimais. MariaDB leidžia collation konfigūruoti kiekvienai duomenų bazei, lentelei ar stulpeliui. Neteisingos konfigūracijos lemia klaidingus palyginimus, „dublikuotus“ raktus case‑insensitive rūšiavime arba netikėtas rezultatų eilutes.

Duomenų tipai ir tikslumas

Firebird ir MariaDB skiriasi skaitinių tipų, laiko tipų, Boolean, BLOB ir numatytųjų reikšmių valdymu. Ypač kritiškas yra tikslumas piniginių sumų (Decimal) ir laiko žymų atžvilgiu. Migracija turi suplanuoti tipų atitikmenis taip, kad neatsirastų tyliai vykstančių apvalinimų ar sutrumpinimų.

Generatoriai/sekvencijos, AUTO_INCREMENT ir trigeriai

Firebird dažnai naudoja „generatorius“ (sekvencijas) kartu su trigeriais pirminių raktų užtikrinimui. MariaDB paprastai dirba su AUTO_INCREMENT arba SEQUENCE (priklausomai nuo versijos/konfigūracijos). Jei taikymas iki šiol explicit užklausdavo generatoriaus reikšmes arba trigerių logika remiasi generatoriais, tai privalo būti tiksliai atkurtas arba sąmoningai perkonfigūruotas – įskaitant teisingus pradinės reikšmes ir konfliktų nebuvimą.

Paruošimas: inventūra vietoje intuicijos

Tvari migracija prasideda inventūra, kuri ne tik suskaičiuoja lenteles, bet ir atvaizduoja naudojimą. Tikslas – išvengti staigmenų per perjungimo savaitę.

1) Objektų ir logikos inventūra

  • lentelės, vaizdai (views), indeksai, apribojimai (constraints)
  • trigeriai (ypač auditui, validacijoms, pirminių raktų skyrimui)
  • saugomos procedūros (Stored Procedures) ir UDF (vartotojo apibrėžtos funkcijos)
  • generatoriai/sekvencijos ir jų naudojimo modeliai
  • rolės/leidimai, esant reikmei – aplikacijos vartotojai

Svarbu užduoti klausimą: kas yra grynas duomenų saugojimas – o kas yra verslo logika, įdėta į duomenų bazę? Kuo daugiau logikos yra Firebird, tuo daugiau darbo reikės perkėlimo arba sąmoningo perorganizavimo į servisus ar taikomąją programą.

2) Duomenų profilavimas ir duomenų kokybė

Prieš kopijuojant turi būti aišku, ar duomenys yra konsistentūs. Tipiškos senos problemos: neteisingos datos, „0“ vietoje NULL, nukirsti stringai, neunikalūs raktai arba istoriškai toleruoti pažeidimai apribojimams. MariaDB kai kuriose vietose yra griežtesnė, kitose tolerantiškesnė – abu atvejai gali sukelti problemų. Duomenų profilavimas identifikuoja laukus su anomalijomis, netikėtomis koduotėmis ir įtartinomis NULL dalimis.

3) Apkrovos ir prieigos modeliai

Eksploatacijai ir našumui svarbus ne tik duomenų kiekis, bet ir prieiga: kurios lentelės yra hotspotai? kurios ataskaitos vyksta naktimis? kurios transakcijos yra ilgos? kurios užklausos vyksta be indekso? Firebird gali kai kuriuos modelius „atleisti“, MariaDB į tai gali reaguoti užrakinimais arba dideliu IO srautu. Ši analizė vėliau nulems indekso dizainą, užklausų pritaikymus ir parametrus.

Architektūros sprendimas: 1:1 perkėlimas ar kontroliuojama modernizacija?

Migracijos metu yra du kraštutinumai: „perimti 1:1“ arba „viską iš naujo“. Realistiškai kontroliuojamas kompromisas dažniausiai yra mažiausiai rizikingas:

  • 1:1 duomenų struktūroms ten, kur taikymas yra stipriai susietas ir pakeitimai būtų brangūs.
  • Tikslingas išvalymas dėl ankstesnių sprendimų, kurie MariaDB aplinkoje sukeltų ilgalaikę eksploatavimo riziką (pvz. pertekliniai VarChar laukai, trūkstami indeksai, neaiškios collations).
  • Sąsajų atskyrimas, kai tai liečia išorines sistemas (BI, DWH, ERP/DMS/CRM). Čia dažnai praverčia stabilus kontrakto sluoksnis (Views, API, eksportavimo lentelės).
  • Ilgai vystytoms Delphi– arba Windows-kliento-serverio programoms duomenų prieigos sluoksnis atlieka centrinį vaidmenį. Jei naudojate BDE-Ablösung su natyviu prijungimu (plačiai paplitusi Delphi-duomenų prieigos biblioteka), techninis prijungimas prie MariaDB iš esmės gerai įgyvendinamas. Svarbiau ne tvarkyklė, o semantika: Transaktionen, Parametertypen, Fehlercodes, BLOB-Handling ir užklausų variantai, kurie iki šiol „funktioniert haben“.

    Tipinės kliūtys žingsnyje „Firebird nach MariaDB migrieren“

    NULL, numatytosios reikšmės ir tušti eilutės

    Senoje programinėje įrangoje tuščios eilutės ir NULL dažnai nėra aiškiai atskirtos. Ataskaitose, filtruose arba unikaliai identifikuojamuose raktuose tai po migracijos gali sukelti kitokius rezultatus. Čia padeda aiškus nustatymas kiekvienam stulpeliui: ar leidžiamas NULL? numatytoji reikšmė? ar UI/servisas nuosekliai taip rašo ir skaito?

    Boolean ir būsenų laukai

    Firebird dažnai naudoja Smallint(0/1) arba char(‚T’/’F‘) modelį. MariaDB turi BOOLEAN kaip aliasą (įprastai TINYINT(1)). Sąsajoms svarbu: kaip reikšmės serializuojamos (pvz. į REST-Services)? Neaiški konvertacija gali sukelti „true/false“ klaidas, kurios pasimato tik proceso metu.

    BLOBs: Dokumente, Bilder, E-Mails

    BLOB laukai retai būna „tiesiog dideli“. Jie veikia atsargines kopijas, atkūrimą, replikaciją ir našumą. Reikia apsispręsti dėl MariaDB: ar BLOBai liks duomenų bazėje, ar per vidutinį laikotarpį prasmingesnė objektinė saugykla (failų sistema, S3-suderinama). Migracijos metu patikrinkite, ar BLOBai yra dvejiniai ar tekstiniai, kokios koduotės galioja ir kaip programa interpretuoja turinį.

    ID ir raktų generavimas

    Jei Firebird per trigerius + generatorių nustato pirminius raktus, tikslinei pusei būtina aiškiai apibrėžti, kas priskiria ID: duomenų bazė (AUTO_INCREMENT/SEQUENCE) ar programa. Mišrūs sprendimai rizikingi. Be to, pradžios reikšmės turi būti teisingai nustatytos po importo, kitaip pirmojo naujo įrašo sukūrimo po perjungimo metu gresia raktų susidūrimai.

    Trigerių logika audito ir validacijos tikslais

    Daugelis sistemų turi trigerius, kurie fiksuoja pakeitimo laiką, naudotojo identifikatorių arba pildo audito įrašus. MariaDB palaiko trigerius, bet detalės (sintaksė, laikas, prieiga prie OLD/NEW, klaidų tvarkymas) skiriasi. Ypač audito trigeriai yra operaciškai svarbūs: jei jie po migracijos tyliai nebedirbs, kils atitikties ir atsekamumo problema.

    Koduotės konfliktai ir „nematomos“ duomenų klaidos

    Klasika: duomenys programoje atrodo teisingai, bet tikslinei sistemai jie neteisingai rūšiuojami arba LIKE paieškos negrąžina rezultatų. Priežastis — collation neatitikimai arba mišrios koduotės. Todėl: testuokite ne tik „vaizdavimą“, bet ir paieškos logiką, dublikatų tikrinimą, importą/eksportą ir integracijas (pvz., CSV/EDI).

    Migracijos strategija: Offline, Online arba Hybrid?

    Strategijos pasirinkimas lemia projekto planą. Tipiškos yra trys variantai:

    Offline-Migration (klassischer Cutover)

    Programa pristabdyta, duomenys eksportuojami/importuojami, po to atliekamas perjungimas. Privalumai: paprasta, aiškus duomenų būklės momentas. Trūkumai: neveikimo laikas (downtime) gali būti ilgas, priklausomai nuo duomenų apimties ir patikrinimų.

    Online-Migration (Parallelbetrieb)

    Firebird išlieka produktyvus, MariaDB nuolat pildoma (pvz., per replikacijos ar Change-Data-Capture mechanizmus). Galutinis perėjimas trumpas. Tačiau sudėtingumas gerokai didesnis: konfliktai, eiliškumas, transakcijos, klaidų tvarkymas.

    Hibridinis (pradinis įkrovimas + galutinis delta-importas)

    Daugelio įmonių požiūriu praktiška: iš anksto atliekamas pradinio masinio importo etapas, vėliau perduodami tik pakeitimai (deltos), kol įvyksta galutinis perėjimas. Svarbiausia – aiški delta apibrėžtis: laiko žymos, sekos arba pakeitimų žurnalai turi būti patikimi.

    ETL und Datenübernahme: Wie Sie Importpfade robust machen

    Perėmimui verta aiškus procesas, o ne „vienas skriptas ir viltis“. Patikimumas čia reiškia: pakartojamumas, protokoliavimas, patikrinamumas.

    Staging-Ansatz statt Direktimport

    Patikrintas modelis – staging duomenų bazė (arba schema), į kurią duomenys pirmiausia importuojami žali. Ten galite:

    • Koduotes normalizuoti
    • Duomenų tipus patikrinti ir konvertuoti
    • Referencinį vientisumą kontroliuoti
    • Dublikacijų konfliktus padaryti matomus

    Tik po to duomenys perkeliami į tikslinę schemą. Tai sumažina riziką, nes klaidos aptinkamos anksti ir importas lieka pakartojamas.

    Validierung: Checks, die im Betrieb wirklich helfen

    Nustatykite validacijas taip, kad jos vėliau tarnautų kaip priėmimo ir eksploatacijos užtikrinimas. Tipiškos patikros kategorijos:

    • Eilučių skaičiai lentelėje (ne kaip vienintelis įrodymas, bet kaip bazinis signalas)
    • Suma-/hash-patikrinimai kritiniams stulpeliams (pvz., sumos, būklė, laiko žymos)
    • Referencijos (palikti užsieniniai raktai, net jei istoriškai be apribojimo)
    • Atrankos patikros iš funkcinių kritinių procesų (užsakymai, dokumentai, istorijos)

    Ypač sprendimų priėmėjams svarbu: validacija nėra „nice to have“, o priemonė minimalizuoti lėtai kylančios duomenų klaidos riziką.

    Performance und Betrieb: Was nach dem Import entscheidet

    Po sėkmingos duomenų perėmimo prasideda fazė, kuri nulemia kasdienybę: atsakymo laikai, stabilumas, priežiūros langai ir operacijų skaidrumas.

    Index-Design und Abfrageprofile

    Indeksų negalima perkelti 1:1, nes optimizatoriai veikia kitaip. Pagrįstas požiūris:

    • Pradėti nuo gerai aprėpto bazinio rinkinio (pirminiai/užsieniniai raktai, dažnai naudojami filtrų stulpeliai)
    • Krovos testai su realistinais darbo srautais (ne tik sintetinėmis SELECT užklausomis)
    • Tikslingi indekso papildymai pagal lėtų užklausų žurnalus ir monitoringą

    Svarbu: per daug indeksų blogina rašymo našumą ir didina atminties/IO sąnaudas. Tikslas – operacinis kompromisas, o ne „indeksas kiekvienai užklausai“.

    Transaktionsgröße und Batch-Verarbeitung

    Daugelis legacy procesų dirba su didelėmis transakcijomis (pvz., naktiniai apskaitos praeigai). MariaDB tai gali sukelti undo/redo apkrovą, užrakinimus arba ilgą atkūrimo laiką. Čia padeda aiškios partijų ribos, idempotentinis apdorojimas (pakartojamas be dvigubo įrašymo) ir tvarkingai nustatyti commit punktai.

    Backup/RESTore, RPO/RTO und Test der Wiederherstellung

    IT vadovybei galiausiai svarbu: kaip greitai galiu atkurti ir koks yra duomenų praradimas blogiausiu atveju? Tai yra RTO (Recovery Time Objective) ir RPO (Recovery Point Objective). Planuokite:

    • Reguliarias atsargines kopijas (logiškai/fiziškai, priklausomai nuo koncepcijos)
    • Saugojimą ir šifravimą
    • Atkūrimo testus atskiroje aplinkoje

    Migracija laikoma eksploataciškai stabili tik tuomet, kai atkūrimo procesai ne tik dokumentuoti, bet ir praktiškai išbandyti.

    Stebėjimas, įspėjimai ir pajėgumų planavimas

    MariaDB lengva stebėti, bet tik jei pasirenkate tinkamus signalus: prisijungimų skaičius, replikacijos būsena (jei naudojama), buffer pool, disko I/O, užrakinimo laukimai, lėtos užklausos, tablespace augimas. Nustatykite įspėjimų ribas taip, kad jos neapkrautų budėjimo komandos „triukšmu“, bet anksti praneštų apie tikras problemas.

    Saugumas ir teisės: nuo Firebird-mąstysenos prie MariaDB eksploatacijos

    Duomenų bazių migracijų metu saugumas dažnai sprendžiamas per vėlai. Tuo pačiu keičiasi koncepcijos: vartotojų valdymas, vaidmenys, hostais pagrįstos prieigos teisės, TLS jungtys, slaptažodžių politika.

    Praktiški perėjimo punktai:

    • Atskirkite paslaugų paskyras: programa, ataskaitos, administravimas, priežiūra – atskiros paskyros, minimalios teisės.
    • Tinklų segmentavimas: MariaDB neatidaryti „visiems“; prieigos per apibrėžtus tinklus ir portus.
    • Šifravimas tranzitu: TLS tarp taikomosios programos ir duomenų bazės, ypač paskirstytose vietose.
    • Žurnalavimas: Priklausomai nuo atitikties reikalavimų, registruokite prieigas ir administracinius veiksmus, kad juos būtų galima atsekti.

    Ypač kai integracijos (pvz. portalai ar REST-services) jungiasi prie duomenų bazės, duomenų bazė neturėtų tapti „bendru magistralės“ tašku, o turėtų būti pasiekiama per apibrėžtas sąsajas. Tai sumažina šoninį judėjimą saugumo incidente.

    Cutover planavimas: taip projektas virsta kontroliuojamu perėjimu

    Cutover nėra metas, kai „galų gale perjungiama“, o momentas, kai matyti, kad paruošimas atliktas tinkamai. Praktinis Cutover planas turi apimti:

    • Freeze laikas (nuo kada Firebird nebevyksta jokių duomenų pakeitimų)
    • Galutinis delta importas įskaitant žurnalavimą ir laiko matavimą
    • Patikrinimas su aiškiais kriterijais (ne „atrodo gerai“)
    • Programų perjungimas (Connection Strings, DNS/Proxy, Secrets)
    • Smoke Tests svarbiausių verslo procesų
    • Rollback sprendimo langas (iki kada grįžimas galimas ir kaip)

    Švarus rollback nebūtinai reiškia „kopijuoti atgal“. Dažnai praktiškiausias rollback yra perjungti atgal į Firebird ir laikinai sustabdyti MariaDB, jei Cutover lange nebuvo paleisti negrįžtami pasekmių procesai. Tai turi būti organizaciškai suderinta (pvz., dokumentų numeriai, sąsajų eksportai).

    Integracija ir taikomosios programos: kas keičiasi aplink duomenų bazę

    Duomenų bazė retai būna izoliuota. Tipiškos priklausomybės yra:

    • Ataskaitos (tiesioginės SQL užklausos, Views, ekstraktai)
    • Sąsajos į ERP/DMS/CRM (failų arba API pagrindu)
    • Batch darbai, Windows-Services arba Linux-Services, kurie apdoroja duomenis
    • Portalai ir išorinės prieigos (pvz. Kundenportal)

    Ypač brandžiose sistemose verta pasinaudoti proga ir decouplinti duomenų prieigas: centriniai Views/Exports, aiškūs REST galiniai taškai arba servisų sluoksniai. Tai nėra savaiminis tikslas — tai pagerina palaikomumą ir sumažina tiesiogines SQL priklausomybes, kurios kitą kartą migracijos metu vėl bus brangios.

    Jei jūsų esama programa įgyvendinta Delphi, tai taip pat geras metas konsoliduoti duomenų prieigą (pvz. BDE-Ablosung mit nativer Anbindung tvarkingai sukonfigūruoti, nustatyti nuoseklius transakcijų rėmus, vienodą klaidų tvarkymą). Tai tiesiogiai prisideda prie eksploatavimo saugumo ir gedimų paieškos.

    Teststrategie: Abnahme ohne Illusionen

    Duomenų bazės migracija retai žlunga dėl to, kad „SELECT neveikia“, dažniau — dėl to, kad proceso ribinės situacijos elgiasi kitaip. Patikima testavimo strategija apjungia:

    • Techniniai testai: ryšio užmezgimas, transakcijos, užrakinimo elgsena, našumas esant apkrovai.
    • Funkciniai End-to-End testai: tipinės procesų grandinės nuo įvedimo iki analizės.
    • Regresijos testai ataskaitoms: sumų, grupavimo ir filtrų logikos palyginimas.
    • Eksploataciniai testai: atsarginių kopijų / atkūrimo procedūros, monitoringas / įspėjimai, paleidimo elgsena po priežiūros.

    Svarbu aiškiai apibrėžti priėmimo kriterijus: kurios metrikos turi sutapti? Kokie nukrypimai yra paaiškinami (pvz. rūšiavimo tvarka esant vienodai Collation)? Kas sprendžia ginčus? Be tokios valdymo (Governance) struktūros prieš pat Go-live dažnai atsiranda nereikalingos iteracijos.

    Fazit: Migration als Betriebsprojekt denken – nicht als reines Datenbankthema

    Firebird nach MariaDB zu migrieren yra įgyvendinama, jei tai planuojama kaip eksploatacijos ir integracijos projektas. Kritiški punktai retai yra pats eksportas — dažniau tai duomenų tipai, Collations, triggerių logika, raktų generavimas, transakcijų elgsena ir saugi Cutover-Choreografie. Kas rimtai atlieka inventorizaciją, validavimą ir atkūrimo testus, žymiai sumažina projekto rizikas ir sukuria duomenų pamatą, kuris ilgainiui lieka prižiūrimas.

    Jei norite migraciją struktūruotai parengti – nuo analizės per testų koncepciją iki Cutover-Plano ir eksploatacijos perdavimo – galite kreiptis į mus konkrečiai šiai užduočiai:

    Profesinėje srityje taip pat svarbų vaidmenį atlieka Firebird Migration ir Mariadb Migration, kai integracijos, duomenų srautai ir tolesnė plėtra turi veikti sklandžiai.

    Projekt oder Modernisierungsvorhaben mit Net-Base besprechen.

    Sekantis žingsnis

    Kai iš temos tampa realus projektas, architektūrą, esamą aplinką ir eksploatavimą reikėtų anksti nagrinėti kartu.

    Mes padedame ne tik pavienėse užklausose, bet ir tuomet, kai iš šaltinio kodo fragmentų, paveldėtų temų ar portalo idėjų turi tapti patikimas įmonės projektas.

    • Esama padėtis, tikslinis vaizdas ir techninės rizikos vertinami kartu.
    • REST, duomenų prieiga, portalai ir diegimas nebus atidedami į vėlesnes stadijas.
    • Jūs anksti matote, kuris kelias yra ekonomiškai ir įmonės veiklos požiūriu tvarus.

    Pasidalinti įrašu

    Tiesiogiai pasidalinti šiuo įrašu

    LinkedIn, X, XING, Facebook, WhatsApp ir el. paštas yra iš karto prieinami. Instagramui parengiame nuorodą ir trumpą tekstą nedelsiant.

    El. paštas

    Instagram atidaromas naujame skirtuke. Nuoroda ir trumpas tekstas iš anksto nukopijuojami į iškarpinę.