Bitrix un MariaDB atjaunināŔana uz jaunāko stabilo versiju

Laba diena, dārgie habrovieÅ”i! Ä»aujiet man iepazÄ«stināt ar sevi, Aleksandr. Vienas mazas, bet lepnas WEB-studijas sistēmas administrators. Mēs patieŔām vēlamies, lai viss darbotos ātri, droÅ”i un ar jaunu programmatÅ«ru. Lai to izdarÄ«tu, mēs pat paaugstinājām nagios + PhantomJS komplektu biroja datorā un ik pēc 30 minÅ«tēm pārbaudām lapas ielādes ātrumu. Saskaņā ar pakalpojumu sniegÅ”anas noteikumiem mēs arÄ« uzraugām un regulāri instalējam 1C-Bitrix atjauninājumus. Un tad kādu dienu, pēc nākamā atjauninājuma, mēs redzam ziņojumu administratora panelÄ«, kurā teikts, ka kopÅ” 2019. gada vasaras 1C-Bitrix pārtrauc darbu ar MySQL 5.5 un ir jāatjaunina. ISPSystem puiÅ”i ir izskatÄ«gi un regulāri paplaÅ”ina paneļa funkcionalitāti, par ko viņiem Ä«paÅ”s paldies. Taču Å”oreiz nebija iespējams visu noklikŔķināt ar peli. Bet kas notika un cik sirmu matiņu tagad ir manā bārdā, var atrast zem griezuma.

Bija tikai iespēja instalēt ā€œalternatÄ«vu DBVS serveriā€, kas ir instalēts Docker konteinerā. Protams, es saprotu, ka Docker ir ļoti taupÄ«gs ar resursiem, taču, lai cik lieliski tas strādātu, pieskaitāmās izmaksas joprojām bÅ«s > 0. Un te nu mēs it kā cÄ«nāmies sekunžu desmitdaļās un optimizējam visas vietnes pie ieejas pirms publicÄ“Å”anas un lÄ«guma parakstÄ«Å”anas. Tātad nav mana izvēle.
Labi, kas ir dokumentācijā? Dublējiet visu, pievienojiet failu ar saiti uz MariaDB repozitoriju uz yum.repos.d, pēc tam

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

Pēc tam Yum zvēr par to, ka kāds bez viņa ziņas ir izņēmis iepakojumus. Bet pirmkārt ā€“ lai viņŔ zvēr, viss ir kārtÄ«bā. Un, otrkārt, ja jÅ«s veicat dzÄ“Å”anu, izmantojot yum, tad tas kopā ar MariaDB mēģina nojaukt visu, kas ar to saistÄ«ts ar atkarÄ«bām, un tas ir PHP un ISPManager un PHPmyadmin. Tāpēc ar kļūdām tiksim galā vēlāk.


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

Kopumā viss tika izveidots un sākts. PatÄ«kami ir tas, ka bāzes tika paņemtas un nebija nepiecieÅ”ams tās atjaunot no izgāztuvēm. Es pārbaudÄ«ju vietnes - tās darbojas un ātri. Aizgāju uz pāris admin paneļiem, lai pārliecinātos, ka nekas nenokrÄ«t un atrakstÄ«jos direktorei, ka viss kārtÄ«bā. Nepilnu 30 minÅ«Å”u laikā izrādÄ«jās, ka tas nemaz nav kārtÄ«bā ...

Kad mēģināju pāriet uz admin paneli un pievienot kaut ko rediģēt saturā, izkrita ziņojums

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']

Tā kā vietnes saturu pievieno mÅ«su darbinieki, klienti joprojām neko nezināja un vēl nebija sākuÅ”i mÅ«s plosÄ«t. Bet tas bija laika jautājums, jo informācija vietnēs ir jāatjaunina, un daudzi klienti tam ļoti rÅ«pÄ«gi seko.

No kļūdas teksta varam secināt, ka Bitrix mēģina datubāzei pievienot jaunu ierakstu, vienlaikus norādot to paÅ”u primāro atslēgu, kāda bija rediģētajam rakstam. Tāpēc ir pamats aizdomām, ka problēma rodas Bitrix pusē. Dodieties uz viņu vietni un sazinieties ar atbalsta dienestu. GandrÄ«z uzreiz mēs saņemam atbildi ā€œsarežģīta problēma. Iedeva vecākajiem inženieriem - pagaidiet ... "

Man bija jāgaida diezgan ilgi (viss dialogs notika no 25.06.2019. lÄ«dz 9.07.2019.) un rezultāts bija ziņojums ā€œÅ”Ä« problēma nav saistÄ«ta ar Bitrix CMS darbÄ«bu, bet ir saistÄ«ta uz paÅ”as datu bāzes darbÄ«bu mariadb 10.4.6 un diemžēl ar vietnes pusi Ŕīs problēmas risināŔanas iespējas trÅ«kst, bÅ«s nepiecieÅ”ams migrēt uz MariaDB veco versiju.

Saied ... Stāsta sākumā domāju par pazemināŔanu, bet Å”eit melnā un baltā krāsāka nevar bÅ«t pazemināŔanas. Apvienojiet izgāztuves un atkārtoti izvietojiet tās tikko instalētā serverÄ«. Tie. labi, ka neatjaunināju visus serverus uzreiz. Tie. ā€œtikaiā€ simts vietņu (nervu smiekli :-)). Viņi arÄ« teica atbalstam: "Lai atrisinātu problēmu, izmantojot MariaDB 10.4.6 datu bāzi, jums bÅ«s jāsazinās ar MariaDB tehnisko atbalstu, ka darÄ«jums neizdzēsÄ«s ierakstu no datu bāzes, ja tiek veikts pieprasÄ«jums:

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

CerÄ«ba pavÄ«dēja pāris stundas no brīža, kad sākām sazināties ar MariaDB atbalstu, bet tad saņēmu vēstuli, kurā ārkārtÄ«gi korekti tiku informēts, ka neesmu komerciāls lietotājs un tāpēc neviens mērÄ·tiecÄ«gi manu problēmu nerisinās, taču ir forums viņu tÄ«mekļa vietnē, un jÅ«s varat mēģināt meklēt iespējas turā€¦ Es jÅ«s nenogurdināŔu ar detaļām. Tur nav variantu.
PAR! Esam iegādājuŔies ISP licenci!
Sveiki, atbalsts? PuiŔi, palīdziet!
- Atvainojiet, mēs neatbalstām ļaundarus, kuri maina DBVS sākotnējās versijas. Ja vēlaties, dockerā ir iespēja ar alternatīvu serveri.
ā€“ Bet kā lietotāji un datu bāzes tur nokļūs? Uz doku?
- Nu, tu velciet tos tur ar rokām ...
- Jā! Un neaizmirstiet, ka mysql ports mainīsies un jums būs jāiet cauri un jāpārraksta visas konfigurācijas.
Labi, paldies, padomāŔu...
Padomāju un nolēmu nojaukt 10.4 ar rokturiem un uzinstalēt 10.2 ar kuru nebija nekādu problēmu citos serveros.

Process daudz neatŔķīrās no jaunināŔanas procesa. Tikai bija nepiecieÅ”ams mainÄ«t 10.4 uz 10.2 saitē uz repozitoriju, atiestatÄ«t un atkārtoti izveidot keÅ”atmiņu yum. Nu, vēl viens ā€œsÄ«kumsā€: pēc 10.4 noņemÅ”anas mēs ejam uz /var/lib/mysql un izdzÄ“Å”am visu no turienes. Bez Ŕīs darbÄ«bas pēc 10.2 instalÄ“Å”anas pakalpojums pastāvÄ«gi avarēsies, un jÅ«s redzēsit

ŠŠµ уŠ“Š°Š»Š¾ŃŃŒ ŠæŠ¾Š“ŠŗŠ»ŃŽŃ‡Šøться Šŗ Š±Š°Š·Šµ Š“Š°Š½Š½Ń‹Ń… '' Lost connection to MySQL server at 'reading initial communication packet', system error: 104 "Connection reset by peer"

Vai

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

Pirms datu bāzu importÄ“Å”anas es vispirms iestatÄ«ju mysql root paroli, kas tika norādÄ«ta ISP konfigurācijās, un importēju mysql datu bāzes dump. Nu, tad, tā kā lietotāji un tiesÄ«bas jau ir, mēs vienkārÅ”i importējam visas lietotāju datu bāzes pēc kārtas ar root kontu.

Skripta teksts datu bāzes izdrukai:

#!/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'

Pirms datu bāzu importÄ“Å”anas tās ir jāizpako. Tāpēc vienkārÅ”i palaidiet komandu

gunzip /BACK/*.gz

Un pēdējā lieta: kādu iemeslu dēļ datu bāzes nosaukumos ir atļautas defises (ja tās izveidojat, izmantojot ISPmanager). Bet, veidojot vai mēģinot augÅ”upielādēt izdruku datu bāzē, kuras nosaukumā ir defise, tiek parādÄ«ts ziņojums, ka vaicājuma sintakse ir nepareiza.

Izlasiet lÄ«dz beigām visas svētÄ«bas. Atvainojos par, visticamāk, neatstarpinātajiem komatiem - viņiem ir problēmas. Ja ir vēlmes pēc bÅ«tÄ«bā aprakstÄ«ta piedāvājuma - rakstiet personÄ«gi, jo komentāros baidos kaut ko palaist garām. Un nevajag pārāk daudz lamāties - Å”is ir mans pirmais raksts šŸ™‚

UPD1:

Es gandrÄ«z aizmirsu pieminēt: kamēr es mēģināju atrast problēmas risinājumu, nepazeminot MariaDB, man bija kaut kā jāatjaunina informācija. Tas tika atjaunināts Ŕādi: visa datu bāze tiek pārveidota no InnoDB uz MyISAM, infa tiek atjaunināta un pēc tam pārveidota atpakaļ uz InooDB.
UPD2:

Tikko saņēmu vēstuli no 1C-Bitrix ar Ŕādu saturu:

PārskatīŔanas pieprasījums ir pabeigts
"Pēc mariadb atjaunināŔanas uz 10.4.6, saglabājot informācijas bloka elementu, radās kļūda"
Modulis: iblock, versija: nezināma
Risinājums: noraidīts

Tātad pagaidām Ŕķiet, ka nav iespējams atjaunināt uz 10.4 šŸ™

Avots: www.habr.com

Pievieno komentāru