ล้างคำเตือนเกี่ยวกับดัชนีฐานข้อมูลที่หายไปของ Nextcloud

ล้างคำเตือน “ฐานข้อมูลขาดดัชนีบางส่วน” ของ Nextcloud โดยเรียกใช้คำสั่งocc db:add-missing-indicesในฐานะผู้ใช้เว็บเซิร์ฟเวอร์จากการติดตั้ง Nextcloud ที่ถูกต้อง คำสั่งนี้จะเพิ่มดัชนีที่กำหนดโดย Nextcloud หรือแอปที่ติดตั้งไว้ แต่ขาดหายไปจากฐานข้อมูล ในเอกสาร Nextcloud 35 ปัจจุบัน--dry-runจะแสดงตัวอย่าง SQL ก่อนที่จะเรียกใช้

ภาพรวมการบริหารจัดการในรูปแบบเดียวกับ Nextcloud พร้อมคำเตือนสีเหลืองอำพันว่าฐานข้อมูลขาดดัชนีบางส่วน
ข้อความเตือนนี้จะปรากฏในภาพรวมการดูแลระบบ เมื่อ Nextcloud ตรวจพบว่าดัชนีในโครงสร้างฐานข้อมูลหายไป

คำเตือนนั้นหมายความว่าอย่างไร

ดัชนีฐานข้อมูลเป็นโครงสร้างการค้นหาที่ช่วยให้ฐานข้อมูลค้นหาแถวได้โดยไม่ต้องสแกนทั้งตาราง Nextcloud และแอปต่างๆ บางครั้งจะเพิ่มดัชนีเพื่อปรับปรุงการค้นหา การอัปเกรดอาจทำให้ผู้ดูแลระบบต้องดำเนินการดังกล่าว เนื่องจาก1การสร้างดัชนีบนตารางขนาดใหญ่ใช้เวลานานและส่งผลกระทบต่อประสิทธิภาพการทำงานในขณะที่กำลังทำงาน คำเตือนเรื่องดัชนีหายไปมักเป็นการแจ้งเตือนเพื่อการบำรุงรักษา ไม่ใช่หลักฐานว่าไฟล์หรือระเบียนฐานข้อมูลเสียหาย

คู่มืออ้างอิงคำสั่งฐานข้อมูลปัจจุบันของ Nextcloud อธิบายdb:add-missing-indicesถึงการเพิ่มดัชนีที่อยู่ในสคีมาที่คาดไว้ แต่ไม่มีอยู่ในเวอร์ชันที่ติดตั้งไว้ในปัจจุบัน คู่มือฉบับปัจจุบันยังกล่าว--dry-runถึงการแสดงตัวอย่างคำสั่ง SQL ด้วย ดัชนีที่แน่นอนจะขึ้นอยู่กับเวอร์ชัน Nextcloud และแอปที่ติดตั้งไว้

เตรียมเซิร์ฟเวอร์

  • ตรวจสอบว่าอินสแตนซ์ Nextcloud ใดแสดงคำเตือน โดยเฉพาะอย่างยิ่งหากคุณจัดการสภาพแวดล้อมทดสอบและใช้งานจริง หรือคอนเทนเนอร์มากกว่าหนึ่งรายการ
  • โปรดตรวจสอบให้แน่ใจว่าได้สำรองข้อมูลฐานข้อมูลไว้แล้ว และคุณรู้วิธีการกู้คืนข้อมูลนั้น คำสั่งนี้จะเปลี่ยนแปลงโครงสร้างฐานข้อมูล ห้ามแก้ไขหรือลบดัชนีด้วยตนเองเพื่อใช้แทนการสำรองข้อมูล
  • วางแผนที่จะเรียกใช้คำสั่งเมื่อปริมาณการใช้งานฐานข้อมูลอยู่ในระดับที่เหมาะสม เซิร์ฟเวอร์สามารถออนไลน์อยู่ได้ในระหว่างการดำเนินการนี้ ตามคำแนะนำในการอัปเกรดของ Nextcloud แต่การสร้างดัชนีให้กับตารางขนาดใหญ่อาจใช้เวลานานและส่งผลกระทบต่อความเร็วในการตอบสนองชั่วคราว
  • ค้นหาไดเร็กทอรีการติดตั้ง Nextcloud เวอร์ชัน PHP CLI ที่เว็บเซิร์ฟเวอร์ใช้งาน และบัญชีผู้ใช้ระบบปฏิบัติการของเว็บเซิร์ฟเวอร์ โดยปกติบัญชีผู้ใช้จะอยู่www-dataใน Debian หรือ Ubuntu, apacheFedora หรือ CentOS และhttpArch Linux

คู่มือ OCCของ Nextcloud อธิบายว่านี่occคืออินเทอร์เฟซบรรทัดคำสั่งของเซิร์ฟเวอร์ และต้องเรียกใช้ในฐานะผู้ใช้ HTTP เพื่อให้การเป็นเจ้าของไฟล์และสิทธิ์การเข้าถึงยังคงสอดคล้องกัน อย่าใช้งานโดยไม่www-dataตรวจสอบหากการติดตั้งของคุณใช้บัญชีผู้ใช้ที่แตกต่างกัน

ดูตัวอย่างและเพิ่มดัชนีที่ขาดหายไป

สำหรับการติดตั้งแบบเก็บถาวรมาตรฐานบน Debian หรือ Ubuntu ให้เปิดเชลล์บนเซิร์ฟเวอร์ Nextcloud แล้วเปลี่ยนไปยังไดเร็กทอรีที่มีoccไฟล์นั้นอยู่ ตัวอย่างนี้ใช้/var/www/nextcloud; เส้นทางของคุณอาจแตกต่างออกไป

cd /var/www/nextcloud
sudo -E -u www-data php occ db:add-missing-indices --dry-run

การทดสอบแบบจำลองจะแสดงคำสั่ง SQL ที่จะดำเนินการโดยไม่เปลี่ยนแปลงฐานข้อมูล อ่านผลลัพธ์และยืนยันว่าเป็นขั้นตอนการบำรุงรักษาที่คาดหวังไว้--dry-runตัวเลือกนี้มีเอกสารอยู่ในคู่มือ Nextcloud 35 ฉบับปัจจุบัน หากเวอร์ชันเก่ากว่าไม่รองรับ ให้ตรวจสอบความช่วยเหลือคำสั่งของเวอร์ชันนั้นแทนที่จะลบตัวเลือกโดยพลการ

หน้าต่างเทอร์มินัล Linux แสดงคำสั่ง nextcloud OCC missing-index พร้อมตัวเลือก dry-run
ใช้ตัวเลือก "ทดสอบก่อนใช้งาน" ที่ระบุไว้ในเอกสาร เพื่อตรวจสอบคำสั่ง SQL ก่อนทำการเปลี่ยนแปลงฐานข้อมูล

เมื่อคุณพร้อมที่จะใช้การเปลี่ยนแปลง ให้รันคำสั่งโดยไม่ต้องใส่เครื่องหมาย--dry-run:

sudo -E -u www-data php occ db:add-missing-indices

Nextcloud จะตรวจสอบตารางที่เกี่ยวข้องและรายงานความคืบหน้า ปล่อยให้กระบวนการเสร็จสิ้น อย่าขัดจังหวะกระบวนการเพียงเพราะตารางขนาดใหญ่ใช้เวลานานกว่าที่คาดไว้ คู่มือการอัปเกรดระบุคำสั่งนี้ไว้ในกลุ่มงานสคีมาที่ใช้เวลานานซึ่งสามารถทำงานได้ในขณะที่อินสแตนซ์ยังคงออนไลน์อยู่ ดังนั้นโดยปกติคุณไม่จำเป็นต้องเปิดใช้งานโหมดบำรุงรักษาสำหรับการซ่อมแซมนี้ หลีกเลี่ยงการบำรุงรักษาฐานข้อมูลพร้อมกันในขณะที่กำลังทำงานอยู่

หน้าต่างเทอร์มินัล Linux แสดงคำสั่ง missing-index กำลังตรวจสอบตารางแคชไฟล์ และแสดงข้อความเสร็จสิ้น
คำสั่งนี้จะตรวจสอบตารางในฐานข้อมูลและกลับไปยังเชลล์เมื่อตรวจสอบเสร็จสิ้น

หาก Nextcloud ทำงานบน Docker

รันคำสั่งoccภายในคอนเทนเนอร์แอปพลิเคชัน Nextcloud ไม่ใช่ในคอนเทนเนอร์ฐานข้อมูลแยกต่างหาก สำหรับคอนเทนเนอร์ที่ตั้งชื่อnextcloudตามwww-dataบัญชีผู้ใช้ทั่วไป คำสั่งที่ใช้มักจะเป็น:

docker exec --user www-data -it nextcloud php occ db:add-missing-indices

แทนที่nextcloudด้วยชื่อจริงของคอนเทนเนอร์แอปพลิเคชันของคุณ หากอิมเมจหรือการปรับใช้ของคุณใช้ผู้ใช้คอนเทนเนอร์ ไบนารี PHP หรือตัวห่อคำสั่งที่แตกต่างกัน ให้ปฏิบัติตามเอกสารประกอบของอิมเมจนั้นและเรียกใช้คำสั่งในฐานะผู้ใช้ HTTP

ตรวจสอบว่าคำเตือนหายไปแล้ว

หลังจากคำสั่งทำงานเสร็จสิ้นแล้ว ให้รีเฟรชการตั้งค่าการดูแลระบบ > ภาพรวม ข้อความแจ้งว่าดัชนีหายไปควรหายไปเมื่อ Nextcloud ตรวจสอบดัชนีแล้ว คุณยังสามารถเรียกใช้คำสั่งอีกครั้งได้ โดยคำสั่งควรทำงานให้เสร็จสิ้นโดยไม่ต้องเพิ่มดัชนีที่หายไปอีกครั้ง การดำเนินการนี้ยืนยันว่าการตรวจสอบสคีมาเสร็จสมบูรณ์แล้ว แม้ว่าจะไม่ได้วัดประสิทธิภาพโดยรวมของฐานข้อมูลก็ตาม

ภาพรวมการจัดการสไตล์ Nextcloud โดยไม่แสดงคำเตือนเกี่ยวกับดัชนีที่หายไปอีกต่อไป
หลังจากคำสั่งทำงานเสร็จสิ้นแล้ว ให้รีเฟรชหน้าภาพรวมการดูแลระบบ และตรวจสอบว่าคำเตือนเกี่ยวกับฐานข้อมูลหายไปแล้วหรือไม่

หากคำเตือนยังคงอยู่

  1. ตรวจสอบให้แน่ใจว่าคุณได้เรียกใช้คำสั่งกับระบบ Nextcloud และฐานข้อมูลเดียวกันกับที่ทำให้เกิดคำเตือน ข้อผิดพลาดที่พบบ่อยคือการเรียกใช้คำสั่งในคอนเทนเนอร์สำหรับการบำรุงรักษา อินสแตนซ์สำหรับการทดสอบ หรือคอนเทนเนอร์ฐานข้อมูล
  2. ตรวจสอบให้แน่ใจว่าได้รันคำสั่งโดยใช้ผู้ใช้เว็บเซิร์ฟเวอร์ที่ถูกต้อง และใช้เวอร์ชัน PHP เดียวกันกับเว็บเซิร์ฟเวอร์ Nextcloud ระบุว่าการกำหนดค่า PHP ใน CLI ที่แตกต่างกันอาจทำให้เกิดoccข้อผิดพลาด ได้
  3. ใน Nextcloud เวอร์ชัน 35 และเวอร์ชันที่ใหม่กว่า ให้เรียกsudo -E -u www-data php occ db:schema:checkใช้คำสั่งตรวจสอบความแตกต่างของสคีมา เอกสารอ้างอิงปัจจุบันระบุว่าการตรวจสอบนี้ถูกเพิ่มเข้ามาในเวอร์ชัน 35 สำหรับเวอร์ชันก่อนหน้า ให้ใช้เครื่องมือวินิจฉัยที่ระบุไว้ในเอกสารสำหรับเวอร์ชันนั้นๆ
  4. หากดัชนีที่หายไปเป็นของแอปพลิเคชันของบุคคลที่สาม หรือคำสั่งรายงานข้อผิดพลาด โปรดอัปเดตแอปพลิเคชันหากมีการอัปเดต ตรวจสอบบันทึกของ Nextcloud และผลลัพธ์ของคำสั่ง และสอบถามผู้ดูแลแอปพลิเคชันหรือฝ่ายสนับสนุนของ Nextcloud โดยระบุชื่อดัชนีและชื่อตารางที่ถูกต้อง อย่าเขียนคำสั่งด้วยตนเองCREATE INDEXเว้นแต่ผู้ดูแลแอปพลิเคชันหรือฐานข้อมูลจะจัดเตรียมคำสั่งเหล่านั้นสำหรับสคีมาของคุณอย่างถูกต้อง

สำหรับเซิร์ฟเวอร์ที่ใช้งานจริง ให้เก็บสำเนาสำรองฐานข้อมูลไว้จนกว่าคำเตือนจะหายไปและแอปพลิเคชันทำงานได้ตามปกติคำแนะนำในการอัปเกรด ของ Nextcloud ครอบคลุมถึงงานบำรุงรักษาออนไลน์และการทดสอบแบบจำลอง (dry run) ที่เป็นตัวเลือกเสริม

ฝากความเห็น

ล้างคำเตือนเกี่ยวกับดัชนีฐานข้อมูลที่หายไปของ Nextcloud

ล้างคำเตือนเกี่ยวกับดัชนีฐานข้อมูลที่หายไปของ Nextcloud

เรียกใช้ฟังก์ชันซ่อมแซม OCC ของ Nextcloud อย่างปลอดภัย ดูตัวอย่างการเปลี่ยนแปลงฐานข้อมูล และตรวจสอบว่าเหตุใดคำเตือนจึงยังคงปรากฏอยู่

เพิ่มขีดจำกัดการอัปโหลดเว็บของ Nextcloud ให้เกิน 2 GB

เพิ่มขีดจำกัดการอัปโหลดเว็บของ Nextcloud ให้เกิน 2 GB

อนุญาตให้ Nextcloud อัปโหลดไฟล์ขนาดใหญ่ขึ้นได้โดยการปรับการตั้งค่า PHP, Nginx หรือ Apache, พื้นที่จัดเก็บชั่วคราว และระยะเวลาหมดเวลาให้ตรงกัน และตรวจสอบว่าข้อจำกัดใดที่กำลังบล็อกไฟล์อยู่

ล้างคำเตือนหน่วยความจำ PHP ของ Nextcloud บนเว็บเซิร์ฟเวอร์

ตั้งค่าขีดจำกัดหน่วยความจำ PHP ที่ Nextcloud ใช้จริง รีสตาร์ทบริการที่ถูกต้อง และยืนยันการตั้งค่า 512 MB ในภาพรวมผู้ดูแลระบบ

เชื่อมต่อ Bucket ที่เข้ากันได้กับ S3 กับพื้นที่จัดเก็บข้อมูลภายนอกของ Nextcloud

เชื่อมต่อบัคเก็ตจัดเก็บข้อมูลแบบอ็อบเจ็กต์ที่เข้ากันได้ใน Nextcloud โดยใช้แบ็กเอนด์ S3 พร้อมด้วยเอนด์พอยต์ ข้อมูลรับรอง ขอบเขตการเข้าถึง และขั้นตอนการตรวจสอบที่ถูกต้อง

ย้ายข้อมูล Nextcloud ไปยังไดรฟ์ภายนอกโดยไม่ทำให้พื้นที่จัดเก็บข้อมูลเสียหาย

ย้ายข้อมูล Nextcloud ไปยังไดรฟ์ภายนอกโดยไม่ทำให้พื้นที่จัดเก็บข้อมูลเสียหาย

ย้ายไดเร็กทอรีข้อมูล Nextcloud บน Linux ไปยังไดรฟ์ภายนอกอย่างปลอดภัย โดยใช้การเมานต์ UUID แบบถาวร โหมดบำรุงรักษา สำเนาที่ตรวจสอบแล้ว และซิมลิงก์เส้นทางเดิม

ข้อผิดพลาดฐานข้อมูล Nextcloud หลังจากการอัปเดต: ควรตรวจสอบอะไรก่อน

กู้คืนการเข้าถึง Nextcloud หลังจากการอัปเดตโดยการวินิจฉัยข้อผิดพลาด SQL ตรวจสอบการเชื่อมต่อฐานข้อมูล และดำเนินการย้ายข้อมูลที่หยุดชะงักให้เสร็จสมบูรณ์อย่างปลอดภัย

รีเซ็ตรหัสผ่านผู้ดูแลระบบ Nextcloud ที่ลืมไปโดยใช้ OCC

ใช้คำสั่ง OCC ของ Nextcloud เพื่อรีเซ็ตรหัสผ่านผู้ดูแลระบบจากเชลล์เซิร์ฟเวอร์ พร้อมคำแนะนำสำหรับชื่อผู้ใช้ สิทธิ์ และผู้ให้บริการเข้าสู่ระบบภายนอก

เพิ่มส่วนหัว HSTS ที่ปลายทาง HTTPS ที่ให้บริการ Nextcloud

ล้างคำเตือน HSTS ของ Nextcloud โดยการตั้งค่าส่วนหัวที่ Apache, NGINX หรือพร็อกซี TLS ของคุณ จากนั้นตรวจสอบการตอบสนอง HTTPS สาธารณะอย่างปลอดภัย

แก้ไขปัญหาการติดตั้งแอป Nextcloud ที่แจ้งว่าไม่มีการเชื่อมต่ออินเทอร์เน็ต

แก้ไขปัญหาการติดตั้งแอป Nextcloud ที่แจ้งว่าไม่มีการเชื่อมต่ออินเทอร์เน็ต

ตรวจสอบหาสาเหตุของการติดตั้งแอปจาก App Store ที่ล้มเหลว ไม่ว่าจะเป็นปัญหาจาก DNS, HTTPS, พร็อกซี, TLS หรือปัญหาการตั้งค่าจากเซิร์ฟเวอร์ Nextcloud เอง

แก้ปัญหา CPU กระชากเร็วใน Nextcloud Preview ด้วยคิวที่กำหนดเวลาไว้

ย้ายการสร้างภาพขนาดย่อไปไว้ในกำหนดการพื้นหลังที่ควบคุมได้ ตัดขนาดภาพตัวอย่างที่ไม่ได้ใช้ และตรวจสอบคิวโดยไม่ทำให้เซิร์ฟเวอร์ Nextcloud ของคุณทำงานหนักเกินไป