Bitrix اور ماریا ڈی بی کو تازہ ترین مستحکم ورژن میں اپ ڈیٹ کرنا

اچھا دن، پیارے خبررویتس! مجھے اپنا تعارف کروانے دو، الیگزینڈر۔ ایک چھوٹے لیکن قابل فخر ویب اسٹوڈیو کا سسٹم ایڈمنسٹریٹر۔ ہم واقعی چاہتے ہیں کہ ہر چیز تیزی سے، محفوظ طریقے سے اور تازہ سافٹ ویئر کے ساتھ کام کرے۔ ایسا کرنے کے لیے، ہم نے انٹرا آفس کمپیوٹر پر nagios + PhantomJS بنڈل بھی اٹھایا اور ہر 30 منٹ میں ہم صفحہ لوڈ ہونے کی رفتار کو چیک کرتے ہیں۔ سروس کی شرائط کے مطابق، ہم 1C-Bitrix اپ ڈیٹس کی نگرانی بھی کرتے ہیں اور انہیں باقاعدگی سے انسٹال کرتے ہیں۔ اور پھر ایک دن، اگلی اپ ڈیٹ کے بعد، ہمیں ایڈمن پینل میں ایک پیغام نظر آتا ہے جس میں کہا گیا ہے کہ 2019 کے موسم گرما سے، 1C-Bitrix MySQL 5.5 کے ساتھ کام کرنا بند کر دیتا ہے اور اسے اپ ڈیٹ کرنے کی ضرورت ہے۔ ISPSystem کے لڑکے خوبصورت ہیں اور باقاعدگی سے پینل کی فعالیت کو بڑھاتے رہتے ہیں، جس کے لیے ان کا خصوصی شکریہ۔ لیکن اس بار ماؤس سے ہر چیز پر کلک کرنا ممکن نہیں تھا۔ لیکن کیا ہوا اور اب میری داڑھی میں کتنے سفید بال ہیں کٹ کے نیچے مل سکتے ہیں۔

"متبادل DBMS سرور" کو انسٹال کرنے کا صرف ایک آپشن تھا جو ڈوکر کنٹینر میں انسٹال ہوتا ہے۔ بلاشبہ، میں سمجھتا ہوں کہ ڈوکر وسائل کے ساتھ بہت سستی ہے، لیکن اس سے کوئی فرق نہیں پڑتا ہے کہ یہ کتنا اچھا کام کرتا ہے، اوور ہیڈ اب بھی> 0 ہوگا۔ اور ہم یہاں ہیں، جیسا کہ یہ تھا، دسویں سیکنڈ میں لڑ رہے ہیں اور کسی معاہدے کو شائع کرنے اور اس پر دستخط کرنے سے پہلے داخلی راستے پر موجود تمام سائٹس کو بہتر بنا رہے ہیں۔ تو میری مرضی نہیں۔
ٹھیک ہے، دستاویزات میں کیا ہے؟ ہر چیز کا بیک اپ لیں، yum.repos.d میں ماریا ڈی بی ریپوزٹری کے لنک کے ساتھ ایک فائل شامل کریں، پھر

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

یم بعد میں اس حقیقت کی قسم کھائے گا کہ کسی نے اس کے علم کے بغیر پیکجوں کو ہٹا دیا ہے۔ لیکن پہلے - اسے قسم کھانے دو، یہ ٹھیک ہے۔ اور دوسری بات، اگر آپ یم کے ذریعے ڈیلیٹ کرتے ہیں، تو یہ ماریا ڈی بی کے ساتھ ساتھ، ہر اس چیز کو جو انحصار کے ذریعے اس سے متعلق ہے، کو ختم کرنے کی کوشش کرتا ہے، اور یہ 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 کی طرف سے ہوتا ہے. ان کی ویب سائٹ پر جائیں اور سپورٹ سے رابطہ کریں۔ تقریباً فوراً ہی ہمیں جواب ملتا ہے "مشکل مسئلہ۔ اسے سینئر انجینئرز کو دیا - انتظار کرو..."

مجھے کافی دیر انتظار کرنا پڑا (پورا مکالمہ 25.06.2019/9.07.2019/10.4.6 سے XNUMX/XNUMX/XNUMX تک ہوا) اور نتیجہ یہ نکلا کہ "یہ مسئلہ Bitrix CMS کے آپریشن سے متعلق نہیں ہے، بلکہ اس کا تعلق ہے۔ mariadb XNUMX میں خود ڈیٹا بیس کے آپریشن کے لیے اور بدقسمتی سے، اس مسئلے کو حل کرنے کے لیے سائٹ کے ایک حصے کے ساتھ غائب ہے، اسے MariaDB کے پرانے ورژن میں منتقل کرنا ضروری ہوگا۔

سیلڈ ... میں نے کہانی کے آغاز میں نیچے کی سطح کے بارے میں سوچا، لیکن یہاں سیاہ اور سفید میںکہ کوئی کمی نہیں ہو سکتی۔ ڈمپس کو ضم کریں اور تازہ انسٹال کردہ سرور پر دوبارہ تعینات کریں۔ وہ. یہ اچھا ہے کہ میں نے ایک ساتھ تمام سرورز کو اپ ڈیٹ نہیں کیا۔ وہ. "صرف" ایک سو سائٹس (گھبراہٹ :-))۔ انہوں نے حمایت میں یہ بھی کہا: "ماریا ڈی بی 10.4.6 ڈیٹا بیس استعمال کرتے وقت مسئلہ کو حل کرنے کے لیے، آپ کو ماریا ڈی بی تکنیکی معاونت سے رابطہ کرنا ہوگا کہ اگر کوئی درخواست کی جاتی ہے تو لین دین ڈیٹا بیس سے ریکارڈ کو حذف نہیں کرے گا:

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

جس لمحے سے ہم نے ماریا ڈی بی سپورٹ کے ساتھ بات چیت شروع کی اس لمحے سے چند گھنٹوں کے لیے امید کی چمک دمک گئی، لیکن پھر مجھے ایک خط موصول ہوا جس میں مجھے انتہائی درست طریقے سے بتایا گیا تھا کہ میں تجارتی صارف نہیں ہوں اور اس لیے کوئی بھی جان بوجھ کر میرے مسئلے کو حل نہیں کرے گا، لیکن وہاں موجود ہے۔ ان کی ویب سائٹ پر ایک فورم ہے اور آپ وہاں آپشنز تلاش کرنے کی کوشش کر سکتے ہیں … میں آپ کو تفصیلات سے تنگ نہیں کروں گا۔ وہاں کوئی اختیارات نہیں ہیں۔
کے بارے میں! ہم نے ISP کے لیے لائسنس خریدا ہے!
ہیلو، حمایت؟ لوگ، مدد!
- معذرت، ہم ان ٹھگوں کی حمایت نہیں کرتے جو DBMS کے مقامی ورژن کو تبدیل کرتے ہیں۔ اگر آپ چاہتے ہیں تو، ڈوکر میں متبادل سرور کے ساتھ ایک آپشن موجود ہے۔
- لیکن صارفین اور ڈیٹا بیس وہاں کیسے پہنچیں گے؟ ڈاکر کو؟
- ٹھیک ہے، آپ انہیں اپنے ہاتھوں سے وہاں گھسیٹیں...
- جی ہاں! اور یہ نہ بھولیں کہ mysql کے لیے پورٹ بدل جائے گا اور آپ کو تمام کنفیگرز کو دوبارہ لکھنے کی ضرورت ہوگی۔
ٹھیک ہے شکریہ، میں اس کے بارے میں سوچوں گا...
میں نے سوچا اور فیصلہ کیا کہ ہینڈلز کے ساتھ 10.4 کو مسمار کر کے 10.2 انسٹال کروں جس کے ساتھ دوسرے سرورز پر کوئی مسئلہ نہیں تھا۔

یہ عمل اپ گریڈ کے عمل سے زیادہ مختلف نہیں تھا۔ صرف ریپوزٹری کے لنک میں 10.4 سے 10.2 کو تبدیل کرنا، یم کے لیے کیشے کو دوبارہ ترتیب دینا اور دوبارہ بنانا ضروری تھا۔ ٹھیک ہے، ایک اور "چھوٹی بات": 10.4 کو ہٹانے کے بعد، ہم /var/lib/mysql پر جاتے ہیں اور وہاں سے ہر چیز کو حذف کر دیتے ہیں۔ اس قدم کے بغیر، 10.2 انسٹال کرنے کے بعد، سروس مسلسل کریش ہو جائے گی اور آپ دیکھیں گے۔

Не удалось подключиться к базе данных '' 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

ڈیٹا بیس کو درآمد کرنے سے پہلے، میں نے سب سے پہلے mysql روٹ پاس ورڈ سیٹ کیا جو ISP کنفیگرز میں بیان کیا گیا تھا اور mysql ڈیٹا بیس ڈمپ کو درآمد کیا تھا۔ ٹھیک ہے، پھر، چونکہ پہلے سے ہی صارفین اور حقوق موجود ہیں، اس لیے ہم روٹ اکاؤنٹ کے ساتھ لگاتار تمام صارف ڈیٹا بیس درآمد کرتے ہیں۔

ڈیٹا بیس ڈمپ کے لیے اسکرپٹ کا متن:

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

میں ذکر کرنا تقریباً بھول گیا: جب میں ماریا ڈی بی کو ڈاؤن گریڈ کیے بغیر مسئلے کا حل تلاش کرنے کی کوشش کر رہا تھا، مجھے کسی نہ کسی طرح معلومات کو اپ ڈیٹ کرنا پڑا۔ اسے اس طرح اپ ڈیٹ کیا گیا تھا: پورا ڈیٹا بیس InnoDB سے MyISAM میں تبدیل ہوتا ہے، infa کو اپ ڈیٹ کیا جاتا ہے اور پھر واپس InooDB میں تبدیل کیا جاتا ہے۔
UPD2:

ابھی 1C-Bitrix سے درج ذیل مواد کے ساتھ ایک خط موصول ہوا:

نظرثانی کی درخواست مکمل ہو گئی۔
"mariadb کو 10.4.6 پر اپ ڈیٹ کرنے کے بعد، infoblock عنصر کو محفوظ کرتے وقت ایک خرابی پیش آگئی"
ماڈیول: iblock، ورژن: نامعلوم
حل: مسترد

تو فی الحال، بظاہر 10.4 🙁 پر اپ ڈیٹ کرنا ناممکن ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں