แก้ไขคำเตือน “ฐานข้อมูลขาดดัชนีบางส่วน” ใน Nextcloud

คุณเปิดหน้าภาพรวมการดูแลระบบของ Nextcloud แล้วเห็นข้อความว่า “ฐานข้อมูลขาดดัชนีบางส่วน” คำเตือนนี้อาจปรากฏขึ้นหลังจากการอัปเกรด เนื่องจาก Nextcloud สามารถเพิ่มดัชนีใหม่ให้กับตารางที่มีอยู่ได้เมื่อเวลาผ่านไป และไม่ได้สร้างดัชนีเหล่านั้นโดยอัตโนมัติเสมอไปในฐานข้อมูลขนาดใหญ่ การขาดดัชนีอาจทำให้การสืบค้นฐานข้อมูลบางอย่างช้าลง วิธีแก้ไขที่รองรับคือocc db:add-missing-indicesคำสั่ง ในตัว

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

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

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

คู่มือการดูแลระบบของ Nextcloud ระบุว่าสามารถเพิ่มดัชนีได้ในภายหลัง รวมถึงเพื่อปรับปรุงประสิทธิภาพ และแนะนำให้ผู้ดูแลระบบเรียกใช้คำสั่ง `index` occ db:add-missing-indicesการเพิ่มดัชนีอาจใช้เวลานาน โดยเฉพาะอย่างยิ่งกับตารางขนาดใหญ่ และการโหลดฐานข้อมูลหรือพฤติกรรมการล็อกอาจแตกต่างกันไปตามเอนจินฐานข้อมูลและปริมาณงาน ควรวางแผนการเปลี่ยนแปลงในช่วงเวลาที่ไม่ค่อยมีการใช้งานหากอินสแตนซ์ของคุณกำลังยุ่งอยู่

ก่อนที่คุณจะเริ่มการซ่อมแซม

  • ตรวจสอบเส้นทางการติดตั้งและเวอร์ชันเรียกใช้คำสั่งจากไดเร็กทอรีที่มีoccสคริปต์ของการติดตั้งที่ต้องการ หรือระบุเส้นทางแบบเต็มของสคริปต์นั้น
  • สำรองข้อมูลฐานข้อมูลใช้ขั้นตอนการสำรองข้อมูลตามปกติสำหรับ MariaDB/MySQL, PostgreSQL หรือ SQLite ตรวจสอบให้แน่ใจว่าการสำรองข้อมูลเสร็จสมบูรณ์และคุณรู้วิธีการกู้คืนข้อมูล
  • ค้นหาผู้ใช้ HTTPใช้บัญชีที่รันเว็บเซิร์ฟเวอร์สำหรับ Nextcloud ตัวอย่างทั่วไปได้แก่www-dataบน Debian หรือ Ubuntu, apacheบน Fedora หรือ CentOS, httpบน Arch และwwwrunบน openSUSE การติดตั้งใช้งานของคุณอาจแตกต่างออกไป
  • ตรวจสอบตัวเลือกคำสั่งคู่มือการใช้งาน Nextcloud 35 เวอร์ชันเสถียรได้ระบุรายละเอียด--dry-runไว้ หากเวอร์ชันที่คุณติดตั้งไม่รู้จักตัวเลือกนี้ ให้ดูocc db:add-missing-indices --helpข้อมูลจากเวอร์ชันนั้นและข้ามการแสดงตัวอย่างไป แทนที่จะสันนิษฐานว่าตัวเลือกนั้นมีอยู่

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

ขั้นตอนที่ 1: เปิดเชลล์ในระบบติดตั้ง Nextcloud

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

cd /var/www/nextcloud
sudo -E -u www-data php occ status

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

ขั้นตอนที่ 2: ดูตัวอย่างการเปลี่ยนแปลงดัชนี

หากเวอร์ชันที่คุณติดตั้งรองรับ ให้ทำการทดสอบแบบจำลองก่อน:

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

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

ขั้นตอนที่ 3: เพิ่มดัชนีที่ขาดหายไป

เมื่อการแสดงตัวอย่างเสร็จสิ้นและข้อมูลสำรองพร้อมแล้ว ให้เรียกใช้คำสั่งซ่อมแซมที่ระบุไว้ในเอกสาร:

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

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

Docker และวิธีการติดตั้งประเภทอื่นๆ

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

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

สำหรับ Docker Compose รูปแบบที่เกี่ยวข้องคือdocker compose exec -u www-data <nextcloud-service> php occ db:add-missing-indices. การติดตั้งแบบแพ็กเกจบางอย่างใช้คำสั่งเฉพาะหรือผู้ใช้คอนเทนเนอร์ที่แตกต่างกัน โปรดใช้คำแนะนำสำหรับแพ็กเกจนั้นๆ โดยเฉพาะ อย่าคัดลอกชื่อคอนเทนเนอร์จากการตั้งค่าของผู้อื่นโดยไม่ตรวจสอบให้แน่ใจก่อน

หากคำสั่งล้มเหลวหรือคำเตือนยังคงอยู่

  • ไม่ได้รับอนุญาต:โปรดตรวจสอบผู้ใช้ HTTP และเส้นทางการติดตั้ง อย่าแก้ไขปัญหานี้โดยการเรียกใช้คำสั่งในฐานะ root เว้นแต่เอกสารประกอบการใช้งานของคุณจะกำหนดให้ใช้ตัวห่อหุ้มที่มีสิทธิ์พิเศษโดยเฉพาะ โดยทั่วไปแล้วกระบวนการ PHP ควรทำงานในฐานะผู้ใช้เว็บเซิร์ฟเวอร์
  • ข้อผิดพลาดในการเชื่อมต่อฐานข้อมูลหรือ PHP:ตรวจสอบบันทึกของ Nextcloud, สถานะการทำงานของบริการฐานข้อมูล, เวอร์ชัน PHP ที่กำหนดค่าไว้ และผลลัพธ์ของคำสั่ง แก้ไขปัญหาการเชื่อมต่อหรือปัญหาขณะทำงานก่อนที่จะเรียกใช้คำสั่ง schema อีกครั้ง
  • ข้อผิดพลาดเกี่ยวกับคีย์ซ้ำหรือดัชนีที่ไม่ซ้ำกัน:หยุดการทำงานและบันทึกข้อความแสดงข้อผิดพลาดทั้งหมดไว้ ข้อผิดพลาดนี้อาจบ่งชี้ถึงแถวที่มีข้อขัดแย้งซึ่งทำให้ไม่สามารถสร้างดัชนีที่ไม่ซ้ำกันได้ ระบุแอปและตารางที่ได้รับผลกระทบ ยืนยันเวอร์ชันของแอปและ Nextcloud และปรึกษาผู้ดูแลแอปหรือผู้ดูแลระบบที่คุ้นเคยกับฐานข้อมูลนั้น อย่าลบแถวหรือลบดัชนีโดยปราศจากการวินิจฉัยเฉพาะข้อมูลและการสำรองข้อมูล
  • ข้อความ "ไม่พบคำสั่ง" หรือตัวเลือกไม่รองรับ:โปรดตรวจสอบให้แน่ใจว่าคุณอยู่ในระบบ Nextcloud ที่ถูกต้อง และตรวจสอบphp occ listในphp occ help db:add-missing-indicesฐานะผู้ใช้ HTTP เวอร์ชันเก่าอาจไม่มีตัวเลือกใหม่ทั้งหมด
  • ข้อความเตือนยังคงปรากฏอยู่:โปรดรีเฟรชภาพรวมการดูแลระบบหลังจากคำสั่งทำงานเสร็จสิ้นอย่างสำเร็จ อ่านชื่อดัชนีและชื่อตารางที่ระบุในข้อความเตือนอย่างละเอียด อาจมีดัชนีหายไปมากกว่าหนึ่งรายการ ดัชนีใหม่ที่ถูกเพิ่มเข้ามาจากการอัปเดตแอป การดำเนินการฐานข้อมูลล้มเหลว หรือความไม่ตรงกันของสคีมาที่คำสั่งนี้ไม่สามารถแก้ไขได้

อย่าสับสนระหว่างดัชนีที่หายไปกับคอลัมน์หรือคีย์หลักที่หายไป เอกสารของ Nextcloud มีคำสั่งแยกต่างหากสำหรับการเปลี่ยนแปลงโครงสร้างข้อมูลเหล่านั้น เช่นdb:add-missing-columnsและdb:add-missing-primary-keysเรียกใช้คำสั่งซ่อมแซมที่แตกต่างกันเฉพาะเมื่อคำเตือนของผู้ดูแลระบบหรือเอกสารเฉพาะเวอร์ชันระบุให้ทำเช่นนั้น

ตรวจสอบผลลัพธ์

  1. รอจนกว่าdb:add-missing-indicesทางออกและรายงานจะเสร็จสมบูรณ์ เช่นDone.
  2. โหลดหน้าภาพรวมการดูแลระบบใหม่ และตรวจสอบให้แน่ใจว่าคำเตือนเกี่ยวกับดัชนีที่หายไปนั้นหายไปแล้ว
  3. หากยังคงอยู่ ให้เปรียบเทียบชื่อตารางและดัชนีกับผลลัพธ์ของคำสั่งอย่างถูกต้อง แทนที่จะรันคำสั่งซ้ำโดยไม่ตรวจสอบให้ดี
  4. ตรวจสอบบันทึกของ Nextcloud และสถานะฐานข้อมูลเพื่อหาข้อผิดพลาดใหม่ จากนั้นยืนยันว่าการเข้าถึงไฟล์ตามปกติและแอปพลิเคชันที่ใช้ตารางที่ได้รับผลกระทบยังคงทำงานได้
  5. เก็บไฟล์สำรองไว้จนกว่าระบบจะทำงานได้ตามปกติและนโยบายการเก็บรักษาข้อมูลของคุณอนุญาตให้ลบได้

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

ฝากความเห็น

แก้ไขปัญหาการใช้งาน CPU สูงใน Jitsi Meet บนเบราว์เซอร์ของลูกค้า

แก้ไขปัญหาการใช้งาน CPU สูงใน Jitsi Meet บนเบราว์เซอร์ของลูกค้า

ตรวจสอบปัญหาการใช้งาน CPU สูงผิดปกติของเบราว์เซอร์ Jitsi Meet และลดภาระการทำงานของไคลเอ็นต์โดยการตรวจสอบไทล์วิดีโอ เอฟเฟกต์กล้อง กราฟิกของเบราว์เซอร์ และการตั้งค่าโฮสต์

วิธีการตรวจสอบเมตริกของ Jitsi Videobridge ด้วย Prometheus และ Grafana

วิธีการตรวจสอบเมตริกของ Jitsi Videobridge ด้วย Prometheus และ Grafana

ตรวจสอบสถานะการทำงาน ปริมาณการใช้งานการประชุม และปริมาณการรับส่งข้อมูลของ Jitsi Videobridge ด้วยเอนด์พอยต์ Prometheus ในตัว จากนั้นสำรวจและสร้างกราฟข้อมูลใน Grafana

วิธีการตั้งค่าชื่อโดเมนแบบกำหนดเองสำหรับ Jitsi Meet Docker

วิธีการตั้งค่าชื่อโดเมนแบบกำหนดเองสำหรับ Jitsi Meet Docker

กำหนดค่าโดเมนแบบกำหนดเองสำหรับ Jitsi Meet Docker ด้วย DNS, PUBLIC_URL, HTTPS, Let's Encrypt, พอร์ตไฟร์วอลล์, การตั้งค่า NAT และการตรวจสอบแบบ end-to-end

แก้ไขปัญหา Zimbra Admin Console แสดงข้อผิดพลาด 404 Not Found หลังจากต่ออายุ SSL

แก้ไขปัญหา Zimbra Admin Console แสดงข้อผิดพลาด 404 Not Found หลังจากต่ออายุ SSL

แก้ไขข้อผิดพลาด 404 ใน Zimbra Admin Console หลังจากต่ออายุ SSL โดยตรวจสอบ URL และพอร์ตที่ถูกต้อง การกำหนดเส้นทางพร็อกซี สถานะบริการ ใบรับรองที่ใช้งานอยู่ และบันทึกต่างๆ

แก้ไขข้อความเตือน “PHP OPcache ไม่ได้ถูกกำหนดค่าอย่างถูกต้อง” บน Nextcloud

แก้ไขข้อความเตือน “PHP OPcache ไม่ได้ถูกกำหนดค่าอย่างถูกต้อง” บน Nextcloud

เรียนรู้วิธีการวินิจฉัยและแก้ไขคำเตือนการกำหนดค่า PHP OPcache ของ Nextcloud โดยการตรวจสอบ PHP SAPI ที่ใช้งานอยู่ ขีดจำกัดขนาด ความคิดเห็น และการตั้งค่าการตรวจสอบความถูกต้องซ้ำ

แก้ไขข้อผิดพลาดในการย้ายฐานข้อมูล Kopano หลังจากการอัปเกรดเวอร์ชัน MySQL

แก้ไขข้อผิดพลาดในการย้ายฐานข้อมูล Kopano หลังจากการอัปเกรดเวอร์ชัน MySQL

แก้ไขปัญหาการย้ายฐานข้อมูล Kopano ที่ล้มเหลวหลังจากการอัปเกรด MySQL หรือ MariaDB โดยตรวจสอบข้อมูลสำรอง เวอร์ชันเซิร์ฟเวอร์ โหมด SQL ชุดอักขระ สถานะสคีมา และบันทึกต่างๆ

วิธีการตั้งค่าการตรวจสอบสิทธิ์ LDAP และ Active Directory ใน Nextcloud

วิธีการตั้งค่าการตรวจสอบสิทธิ์ LDAP และ Active Directory ใน Nextcloud

เชื่อมต่อ Nextcloud กับ LDAP หรือ Active Directory ด้วยการส่งข้อมูลที่ปลอดภัย ตัวกรองผู้ใช้และกลุ่ม คุณสมบัติการเข้าสู่ระบบ และการใช้งานที่ผ่านการทดสอบแล้ว

Fix Element Android Notifications Without Google Services: UnifiedPush Guide

Fix Element Android Notifications Without Google Services: UnifiedPush Guide

Fix Element Android notifications on de-Googled phones by configuring UnifiedPush, Android permissions, battery settings, and reliable verification tests.

แก้ไขคำเตือน “ฐานข้อมูลขาดดัชนีบางส่วน” ใน Nextcloud

แก้ไขคำเตือน “ฐานข้อมูลขาดดัชนีบางส่วน” ใน Nextcloud

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

วิธีการตั้งค่า Single Sign-On (SSO) ด้วย Keycloak ใน Element Web

วิธีการตั้งค่า Single Sign-On (SSO) ด้วย Keycloak ใน Element Web

ตั้งค่า Keycloak SSO สำหรับ Element Web โดยเชื่อมต่อ OIDC กับ Synapse กำหนด URL การเรียกกลับที่ถูกต้อง แมปข้อมูลผู้ใช้ และทดสอบการออกจากระบบ