ขอให้เป็นวันที่ดี Khabrovites ที่รัก! ให้ฉันแนะนำตัวเอง อเล็กซานเดอร์ ผู้ดูแลระบบของ WEB-studio เล็กๆ แต่ภาคภูมิใจ เราต้องการให้ทุกอย่างทำงานอย่างรวดเร็ว ปลอดภัย และด้วยซอฟต์แวร์ใหม่ ในการทำเช่นนี้ เราได้เพิ่มบันเดิล nagios + PhantomJS บนคอมพิวเตอร์ภายในสำนักงาน และทุกๆ 30 นาที เราจะตรวจสอบความเร็วในการโหลดหน้าเว็บ ตามข้อกำหนดในการให้บริการ เรายังตรวจสอบการอัปเดต 1C-Bitrix และติดตั้งเป็นประจำ และแล้ววันหนึ่ง หลังจากการอัปเดตครั้งถัดไป เราเห็นข้อความในแผงการดูแลระบบที่ระบุว่า ตั้งแต่ฤดูร้อนปี 2019 1C-Bitrix จะหยุดทำงานกับ MySQL 5.5 และจำเป็นต้องอัปเดต พวกจาก ISPSystem หล่อเหลาและขยายฟังก์ชันการทำงานของพาเนลอย่างสม่ำเสมอ ซึ่งต้องขอบคุณพวกเขาเป็นพิเศษ แต่คราวนี้มันเป็นไปไม่ได้ที่จะคลิกทุกอย่างด้วยเมาส์ แต่สิ่งที่เกิดขึ้นและจำนวนผมหงอกในเคราของฉันสามารถพบได้ภายใต้การตัด
มีเพียงตัวเลือกในการติดตั้ง "เซิร์ฟเวอร์ DBMS สำรอง" ที่ติดตั้งในคอนเทนเนอร์ Docker แน่นอน ฉันเข้าใจว่า 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 ไปที่เว็บไซต์และติดต่อฝ่ายสนับสนุน แทบจะทันทีที่เราได้รับคำตอบว่า "ปัญหาที่ยาก มอบให้กับวิศวกรอาวุโส - รอ ... "
ฉันต้องรอค่อนข้างนาน (บทสนทนาทั้งหมดเกิดขึ้นตั้งแต่ 25.06.2019/9.07.2019/10.4.6 ถึง XNUMX/XNUMX/XNUMX) และผลลัพธ์คือข้อความ “ปัญหานี้ไม่เกี่ยวข้องกับการทำงานของ Bitrix CMS แต่เกี่ยวข้อง เพื่อการทำงานของฐานข้อมูลเองใน mariadb XNUMX และน่าเสียดายที่ด้านข้างของไซต์ปัญหานี้ไม่สามารถแก้ไขได้ จึงจำเป็นต้องย้ายไปยัง MariaDB เวอร์ชันเก่า”
แล่นไป... นึกว่าจะลดระดับแต่ต้นเรื่อง แต่.
$DB->Query("DELETE FROM ".$strTable." WHERE ID = ".$res["ID"]);
$results = $DB->Query("SELECT * FROM ".$strTable." WHERE ID = ".$res["ID"]);”
ความหวังริบหรี่สองสามชั่วโมงนับจากวินาทีที่เราเริ่มสื่อสารกับฝ่ายสนับสนุนของ MariaDB แต่จากนั้นฉันได้รับจดหมายซึ่งฉันได้รับแจ้งอย่างถูกต้องอย่างยิ่งว่าฉันไม่ใช่ผู้ใช้เชิงพาณิชย์ ดังนั้นจึงไม่มีใครตั้งใจแก้ปัญหาของฉัน แต่มี ฟอรัมบนเว็บไซต์ของพวกเขาและคุณสามารถลองค้นหาตัวเลือกต่างๆ ที่นั่นได้ … ฉันจะไม่ทำให้คุณเบื่อกับรายละเอียด ไม่มีตัวเลือกที่นั่น
เกี่ยวกับ! เราได้ซื้อใบอนุญาตสำหรับ ISP แล้ว!
สวัสดีสนับสนุน? พวกช่วย!
- ขออภัย เราไม่สนับสนุนอันธพาลที่เปลี่ยนเวอร์ชันดั้งเดิมของ DBMS หากคุณต้องการ มีตัวเลือกสำหรับเซิร์ฟเวอร์สำรองในนักเทียบท่า
- แต่ผู้ใช้และฐานข้อมูลจะไปถึงที่นั่นได้อย่างไร? เพื่อนักเทียบท่า?
- คุณลากพวกเขาไปที่นั่นด้วยมือของคุณ ...
- ใช่! และอย่าลืมว่าพอร์ตสำหรับ mysql จะเปลี่ยนไป และคุณจะต้องผ่านและเขียนการกำหนดค่าใหม่ทั้งหมด
โอเค ขอบคุณ ฉันจะคิดเกี่ยวกับมัน ...
ฉันคิดและตัดสินใจที่จะทำลาย 10.4 ด้วยที่จับและติดตั้ง 10.2 ซึ่งไม่มีปัญหาบนเซิร์ฟเวอร์อื่น
กระบวนการไม่แตกต่างจากกระบวนการอัปเกรดมากนัก จำเป็นต้องเปลี่ยน 10.4 เป็น 10.2 ในลิงก์ไปยังที่เก็บเท่านั้น รีเซ็ตและสร้างแคชใหม่สำหรับ yum อีกหนึ่ง "เรื่องเล็ก": หลังจากลบ 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:
ฉันเกือบลืมพูดถึง: ในขณะที่ฉันพยายามค้นหาวิธีแก้ไขปัญหาโดยไม่ดาวน์เกรด MariaDB ฉันต้องอัปเดตข้อมูลด้วยวิธีใดวิธีหนึ่ง มีการอัปเดตดังนี้: ฐานข้อมูลทั้งหมดถูกแปลงจาก InnoDB เป็น MyISAM, infa ได้รับการอัปเดตแล้วแปลงกลับเป็น InooDB
UPD2:
เพิ่งได้รับจดหมายจาก 1C-Bitrix โดยมีเนื้อหาดังนี้
คำขอแก้ไขเสร็จสมบูรณ์
"หลังจากอัปเดต mariadb เป็น 10.4.6 เกิดข้อผิดพลาดขณะบันทึกองค์ประกอบ infoblock"
โมดูล: iblock รุ่น: ไม่ทราบ
วิธีแก้ไข: ปฏิเสธ
สำหรับตอนนี้ เห็นได้ชัดว่าเป็นไปไม่ได้ที่จะอัปเดตเป็น 10.4 🙁
ที่มา: will.com