Bitrix og uppfæra MariaDB í nýjustu stöðugu útgáfuna

Góðan daginn, kæru Khabrovítar! Leyfðu mér að kynna mig, Alexander. Kerfisstjóri á einu litlu en stoltu VEF-stúdíói. Við viljum endilega að allt virki hratt, örugglega og með ferskum hugbúnaði. Til að gera þetta hækkuðum við meira að segja nagios + PhantomJS búntinn á skrifstofutölvunni og á 30 mínútna fresti athugum við hleðsluhraða síðunnar. Samkvæmt þjónustuskilmálum fylgjumst við einnig með 1C-Bitrix uppfærslum og setjum þær upp reglulega. Og svo einn daginn, eftir næstu uppfærslu, sjáum við skilaboð á stjórnborðinu um að síðan sumarið 2019 hættir 1C-Bitrix að virka með MySQL 5.5 og þarf að uppfæra. Strákarnir frá ISPSystem eru myndarlegir og auka reglulega virkni spjaldsins, sem sérstakar þakkir til þeirra. En í þetta skiptið var ekki hægt að smella á allt með músinni. En hvað gerðist og hversu mörg grá hár eru núna í skegginu mínu er að finna undir skurðinum.

Það var aðeins möguleiki á að setja upp „val DBMS miðlara“ sem er settur upp í Docker ílátinu. Auðvitað skil ég að Docker er mjög sparsamur með fjármagn, en sama hversu frábært það virkar, kostnaðurinn verður samt > 0. Og hér erum við sem sagt að berjast á tíundu sekúndna og fínstilla allar síður við innganginn áður en samningur er birtur og undirritaður. Svo ekki mitt val.
Allt í lagi, hvað er í skjölunum? Taktu öryggisafrit af öllu, bættu við skrá með tengli á MariaDB geymsluna á yum.repos.d, síðan

rpm -e --nodeps MariaDB-server MariaDB-client MariaDB-common

Yum mun í kjölfarið sverja þá staðreynd að einhver hafi fjarlægt pakkana án hans vitundar. En fyrst - láttu hann sverja, það er allt í lagi. Og í öðru lagi, ef þú eyðir í gegnum yum, þá reynir það að rífa, ásamt MariaDB, allt sem tengist því með ósjálfstæði, og þetta er PHP og ISPManager og PHPmyadmin. Svo við munum takast á við villurnar síðar.


yum clean all
yum update
yum install MariaDB-server MariaDB-client MariaDB-common

Almennt séð var allt sett upp og byrjað. Það skemmtilega er að botnarnir voru teknir upp og ekki þurfti að endurheimta þá úr sorphaugum. Ég skoðaði síðurnar - þær virka og fljótt. Ég fór á nokkur stjórnborð til að ganga úr skugga um að ekkert detti af og sagði upp áskrift hjá leikstjóranum að allt væri í lagi. Á innan við 30 mínútum kom í ljós að það var ekki einu sinni í lagi ...

Þegar ég reyndi að fara á stjórnborðið og bæta við að breyta einhverju í innihaldinu féllu skilaboð út

MySQL Query Error: INSERT INTO b_iblock_element_property (ID, IBLOCK_ELEMENT_ID, IBLOCK_PROPERTY_ID, VAL UE, VALUE_NUM) SELECT 10555 ,2201 ,P.ID ,'3607' ,3607.0000 FR OM b_iblock_property P WHERE ID = 184 [[1062] Duplicate entry '10555' for key 'PRIMARY']

Þar sem efnið á síðunni er bætt við af starfsmönnum okkar vissu viðskiptavinirnir enn ekki neitt og voru ekki enn farnir að rífa okkur í sundur. En það var tímaspursmál því það þarf að uppfæra upplýsingarnar á síðunum og margir viðskiptavinir fylgjast mjög vel með.

Af texta villunnar getum við ályktað að Bitrix sé að reyna að bæta við nýrri skrá í gagnagrunninn, en tilgreinir sama aðallykil og greinin sem verið er að breyta hafði. Svo það er ástæða til að gruna að vandamálið eigi sér stað á hlið Bitrix. Farðu á heimasíðuna þeirra og hafðu samband við þjónustudeild. Næstum strax fáum við svarið „erfitt vandamál. Gaf það til yfirverkfræðinga - bíddu ... "

Ég þurfti að bíða frekar lengi (allt samtalið átti sér stað frá 25.06.2019 til 9.07.2019) og niðurstaðan var skilaboðin „þetta vandamál er ekki tengt rekstri Bitrix CMS, en er tengt við rekstur gagnagrunnsins sjálfs í mariadb 10.4.6 og því miður, með hlið síðunnar sem þetta vandamál til að leysa möguleikann vantar, verður nauðsynlegt að flytja yfir í gömlu útgáfuna af MariaDB.

Sigldi ... Ég hugsaði um lækkun í upphafi sögunnar, en hér svart á hvítuað ekki megi lækka. Sameina sorp og endurdreifa á nýuppsettum netþjóni. Þeir. það er gott að ég uppfærði ekki alla serverana í einu. Þeir. „aðeins“ hundrað síður (taugahlátur :-)). Þeir sögðu einnig til stuðnings: „Til að leysa vandamálið þegar þú notar MariaDB 10.4.6 gagnagrunninn þarftu að hafa samband við MariaDB tæknilega aðstoðina um að viðskiptin muni ekki eyða skrá úr gagnagrunninum ef beiðni er lögð fram:

$DB->Query("DELETE FROM ".$strTable." WHERE ID = ".$res["ID"]);
$results = $DB->Query("SELECT * FROM ".$strTable." WHERE ID = ".$res["ID"]);”

Vonin glitraði í nokkra klukkutíma frá því að við byrjuðum að eiga samskipti við MariaDB stuðning, en svo fékk ég bréf þar sem mér var mjög rétt tilkynnt að ég væri ekki viðskiptalegur notandi og því myndi enginn markvisst leysa vandamál mitt, en það er spjallborð á heimasíðu þeirra og þú getur reynt að leita að valkostum þar ... ég mun ekki leiðast þig með smáatriðum. Það eru engir möguleikar þar.
UM! Við höfum keypt leyfi fyrir ISP!
Halló, stuðningur? Krakkar, hjálp!
- Því miður, við styðjum ekki þrjóta sem breyta innfæddum útgáfum af DBMS. Ef þú vilt, þá er möguleiki með annan netþjón í docker.
- En hvernig munu notendur og gagnagrunnar komast þangað? Til hafnarverkamanns?
- Jæja, þú dregur þá þangað með höndunum ...
- Já! Og ekki gleyma því að portið fyrir mysql mun breytast og þú þarft að fara í gegnum og endurskrifa allar stillingar.
Ok takk, ég ætla að hugsa málið...
Ég hugsaði og ákvað að rífa 10.4 með handföngum og setja upp 10.2 sem engin vandamál voru með á öðrum serverum.

Ferlið var ekki mikið frábrugðið uppfærsluferlinu. Aðeins það var nauðsynlegt að breyta 10.4 í 10.2 í hlekknum á geymsluna, endurstilla og endurbúa skyndiminni fyrir yum. Jæja, enn eitt „smámálið“: eftir að 10.4 hefur verið fjarlægt förum við í /var/lib/mysql og eyðum öllu þaðan. Án þessa skrefs, eftir að 10.2 hefur verið sett upp, mun þjónustan stöðugt hrynja og þú munt sjá

Не удалось подключиться к базе данных '' Lost connection to MySQL server at 'reading initial communication packet', system error: 104 "Connection reset by peer"

Eða

Lost connection to MySQL server at 'handshake: reading inital communication packet', system error: 104

Áður en ég flutti gagnagrunnana inn, setti ég fyrst mysql rót lykilorðið sem var tilgreint í ISP stillingum og flutti inn mysql gagnagrunninn. Jæja, þar sem það eru nú þegar notendur og réttindi flytjum við einfaldlega inn alla notendagagnagrunna í röð með rótarreikningnum.

Forskriftartexti fyrir gagnagrunnsdump:

#!/bin/bash
echo 'show databases' | mysql -u root --password="ПаРоЛь_РУТА" --skip-column-names | grep -v information_schema | xargs -I {} -t bash -c 'mysqldump -u root --password="ПаРоЛь_РУТА" {} | gzip > /BACK/back-$(hostname)-{}-$(date +%Y-%m-%d-%H.%M.%S).sql.gz'

Áður en þú flytur inn gagnagrunna þarftu að pakka þeim upp. Svo keyrðu bara skipunina

gunzip /BACK/*.gz

Og það síðasta: af einhverjum ástæðum eru bandstrik leyfð í gagnagrunnsnöfnum (ef þú býrð til þau með ISPmanager). En þegar þú býrð til eða reynir að hlaða upp dumpi í gagnagrunn sem hefur bandstrik í nafninu færðu skilaboð um að setningafræði fyrirspurnarinnar sé röng.

Lestu til enda allra blessana. Ég biðst afsökunar á líklegast ekki biluðum kommum - þær eru í vandræðum. Ef það eru óskir um tillögu sem lýst er í meginatriðum - skrifaðu persónulega því í athugasemdunum er ég hræddur um að missa af einhverju. Og ekki blóta of mikið - þetta er fyrsta greinin mín 🙂

UPD1:

Ég gleymdi næstum að nefna: á meðan ég var að reyna að finna lausn á vandamálinu án þess að lækka MariaDB, varð ég einhvern veginn að uppfæra upplýsingarnar. Hann var uppfærður svona: allur gagnagrunnurinn er breytt úr InnoDB í MyISAM, infa er uppfærður og síðan breytt aftur í InooDB.
UPD2:

Fékk nýlega bréf frá 1C-Bitrix með eftirfarandi innihaldi:

Endurskoðunarbeiðni lokið
"Eftir að hafa uppfært mariadb í 10.4.6, kom upp villa við vistun infoblock frumefnisins"
Eining: iblock, útgáfa: óþekkt
Lausn: hafnað

Svo í augnablikinu er greinilega ómögulegt að uppfæra í 10.4 🙁

Heimild: www.habr.com

Bæta við athugasemd