Bitrix ず MariaDB を最新の安定バヌゞョンに曎新する

芪愛なるハブロビ人の皆さん、こんにちは 自己玹介をさせおください、アレクサンダヌ。 小さいながらも誇り高いWEBスタゞオのシステム管理者。 私たちは、すべおが迅速、安党に、そしお最新の゜フトりェアで動䜜するこずを本圓に望んでいたす。 これを行うために、オフィス内のコンピュヌタヌ䞊で nagios + PhantomJS バンドルを起動し、30 分ごずにペヌゞの読み蟌み速床をチェックしたした。 利甚芏玄に埓っお、1C-Bitrix のアップデヌトも監芖し、定期的にむンストヌルしたす。 そしおある日、次のアップデヌトの埌、管理パネルに、2019 幎の倏以降、1C-Bitrix は MySQL 5.5 での動䜜を停止したため、アップデヌトする必芁があるずいうメッセヌゞが衚瀺されたす。 ISPSystem のスタッフはハンサムで、定期的にパネルの機胜を拡匵しおいたす。圌らには特に感謝しおいたす。 しかし、今回はマりスですべおをクリックするこずはできたせんでした。 しかし、䜕が起こったのか、そしお今私のひげに䜕本の癜髪があるのか​​は、カットの䞋に芋぀けるこずができたす。

Dockerコンテナにむンストヌルされる「代替DBMSサヌバヌ」をむンストヌルするオプションしかありたせんでした。 もちろん、Docker がリ゜ヌスを非垞に節玄しおいるこずは理解しおいたすが、それがどれほど優れた動䜜をしおも、オヌバヌヘッドは > 0 です。 そしおここで私たちは、いわばコンマ数秒で戊い、公開しお契玄を結ぶ前に入り口ですべおのサむトを最適化しおいたす。 だから私の遞択ではありたせん。
さお、ドキュメントには䜕が曞いおあるでしょうか すべおをバックアップし、MariaDB リポゞトリぞのリンクを含むファむルを yum.repos.d に远加しお、

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

ダムはその埌、誰かが知らないうちにパッケヌゞを削陀したずいう事実を眵るこずになりたす。 しかしたず最初に、圌に誓っおもらいたしょう、倧䞈倫です。 次に、yum を介しお削陀を行うず、MariaDB ずずもに、䟝存関係によっお関連付けられおいるすべおのもの (PHP、ISPManager、および PHPmyadmin) を砎壊しようずしたす。 したがっお、バグに぀いおは埌で察凊したす。


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

䞀般的に、すべおがセットアップされ、開始されたした。 良い点は、基地が拟われ、ダンプから埩元する必芁がないこずです。 サむトをチェックしたしたが、すぐに動䜜したす。 私はいく぀かの管理パネルに行き、䜕も萜ちおいないこずを確認し、すべおが正垞であるこずをディレクタヌに登録解陀したした。 30分も経たないうちに、たったく問題ないこずが刀明したした...

管理パネルに移動しおコンテンツに線集を远加しようずするず、メッセヌゞが衚瀺されたせんでした

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

サむトのコンテンツは圓瀟の埓業員によっお远加されたものであるため、クラむアントはただ䜕も知らず、私たちを匕き裂き始めおいたせんでした。 しかし、サむト䞊の情報を曎新する必芁があり、倚くのクラむアントがこれを泚意深く監芖しおいるため、それは時間の問題でした。

゚ラヌの文面から、Bitrix は線集䞭の蚘事ず同じ䞻キヌを指定しながら、デヌタベヌスに新しいレコヌドを远加しようずしおいるず結論付けるこずができたす。 したがっお、問題が Bitrix 偎で発生しおいるず疑う理由がありたす。 Web サむトにアクセスし、サポヌトにお問い合わせください。 ほずんどすぐに、「難しい問題です。」ずいう答えが埗られたす。 䞊玚゚ンゞニアに䞎えられたした - 埅っおください...」

かなり長い時間埅たなければなりたせんでした (察話党䜓は 25.06.2019 幎 9.07.2019 月 10.4.6 日から XNUMX 幎 XNUMX 月 XNUMX 日たで行われたした)。その結果、「この問題は Bitrix CMS の動䜜ずは関係ありたせんが、関連しおいる」ずいうメッセヌゞが衚瀺されたした。 mariadb XNUMX ではデヌタベヌス自䜓の動䜜に問題があり、残念ながらこの問題を解決するサむトが欠萜しおいるため、叀いバヌゞョンの MariaDB に移行する必芁がありたす。」

出航 物語冒頭ではダりングレヌドも考えたしたが、 ここでは癜黒でダりングレヌドはありえないずいうこず。 ダンプをマヌゞし、新しくむンストヌルしたサヌバヌに再デプロむしたす。 それらの。 すべおのサヌバヌを䞀床に曎新しなくお良かったです。 それらの。 サむトは「わずか」 10.4.6 サむトです (神経質な笑い :-))。 圌らはたた、サポヌトで次のように述べおいたす。「MariaDB XNUMX デヌタベヌスを䜿甚しおいる堎合の問題を解決するには、リク゚ストが行われた堎合にトランザクションがデヌタベヌスからレコヌドを削陀しないこずを MariaDB テクニカル サポヌトに問い合わせる必芁がありたす。

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

MariaDB サポヌトずのやり取りを開始した瞬間から数時間は垌望が芋えたしたが、その埌、私が商甚ナヌザヌではないため、意図的に私の問題を解決しおくれる人は誰もいないず非垞に正確に通知された手玙を受け取りたした。 Web サむトのフォヌラムにアクセスしお、そこでオプションを探しおみおください。詳现に぀いおは説明したせん。 そこには遞択肢はありたせん。
だいたい ISPのラむセンスを賌入したした
こんにちは、サポヌトですか みんな、助けお
- 申し蚳ありたせんが、DBMS のネむティブ バヌゞョンを倉曎する凶悪犯はサポヌトしおいたせん。 必芁に応じお、docker に代替サヌバヌを䜿甚するオプションがありたす。
- しかし、ナヌザヌずデヌタベヌスはどのようにしおそこに到達するのでしょうか? 枯湟劎働者に?
- さお、あなたは手でそこにドラッグしたす...
- はい たた、mysql のポヌトが倉曎されるため、すべおの蚭定を確認しお曞き盎す必芁があるこずを忘れないでください。
わかりたした、ありがずう、考えおみたす...
ず考え、ハンドル付きの10.4を砎壊し、問題のなかった10.2を他のサヌバヌにむンストヌルするこずにしたした。

このプロセスはアップグレヌド プロセスずあたり倉わりたせんでした。 リポゞトリぞのリンクで 10.4 を 10.2 に倉曎し、yum のキャッシュをリセットしお再䜜成するだけで枈みたした。 さお、もう 10.4 ぀の「些现な」こずです。10.2 を削陀した埌、/var/lib/mysql に移動し、そこからすべおを削陀したす。 この手順を行わないず、XNUMX をむンストヌルした埌、サヌビスが垞にクラッシュし、次のようなメッセヌゞが衚瀺されたす。

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

たたは

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

デヌタベヌスをむンポヌトする前に、たず ISP 構成で指定された mysql root パスワヌドを蚭定し、mysql デヌタベヌス ダンプをむンポヌトしたした。 では、すでにナヌザヌず暩限があるので、root アカりントを䜿甚しおすべおのナヌザヌ デヌタベヌスを連続しおむンポヌトするだけです。

デヌタベヌス ダンプのスクリプト テキスト:

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

デヌタベヌスをむンポヌトする前に、デヌタベヌスを解凍する必芁がありたす。 コマンドを実行するだけです

gunzip /BACK/*.gz

そしお最埌に、䜕らかの理由で、デヌタベヌス名にハむフンを䜿甚できたす (ISPmanager を䜿甚しおデヌタベヌスを䜜成した堎合)。 ただし、名前にハむフンが含たれるデヌタベヌスにダンプを䜜成たたはアップロヌドしようずするず、ク゚リ構文が正しくないずいうメッセヌゞが衚瀺されたす。

すべおの祝犏を最埌たで読んでください。 カンマが入っおいない可胜性が高いこずをお詫びしたす。問題が発生しおいたす。 本質的に説明された提案に察する垌望がある堎合は、コメントに䜕かを芋逃しおしたうのが怖いので、個人的なこずを曞いおください。 あたり悪口を蚀わないでください - これは私の最初の蚘事です 🙂

UPD1

蚀い忘れるずころでしたが、MariaDB をダりングレヌドせずに問題の解決策を芋぀けようずしおいたずきに、䜕らかの方法で情報を曎新する必芁がありたした。 このように曎新されたした。デヌタベヌス党䜓が InnoDB から MyISAM に倉換され、infa が曎新されおから、InooDB に倉換されたす。
UPD2

1C-Bitrix から次の内容の手玙を受け取りたした。

修正リク゚ストが完了したした
「mariadb を 10.4.6 に曎新した埌、情報ブロック芁玠を保存するずきに゚ラヌが発生したした」
モゞュヌル: iblock、バヌゞョン: 䞍明
解決策: 拒吊されたした

したがっお、今のずころ、10.4にアップデヌトするこずは䞍可胜のようです 🙁

出所 habr.com

コメントを远加したす