Napraw ostrzeżenie Nextcloud „Brakuje niektórych indeksów w bazie danych”

Otwierasz Przegląd Administracyjny NextCloud i widzisz: „W bazie danych brakuje niektórych indeksów”. Ostrzeżenie może pojawić się po aktualizacji, ponieważ NextCloud może z czasem dodawać nowe indeksy do istniejących tabel i nie zawsze tworzy je automatycznie w przypadku dużej bazy danych. Brak indeksów może spowolnić niektóre zapytania do bazy danych. Obsługiwana naprawa to polecenie wbudowane occ db:add-missing-indices.

Przed zmianą schematu upewnij się, że uruchamiasz polecenie dla prawidłowej instalacji Nextcloud, utwórz kopię zapasową bazy danych i użyj konta użytkownika systemu operacyjnego serwera WWW. W wersjach, które obsługują tę funkcję, wyświetl podgląd proponowanego kodu SQL za pomocą polecenia --dry-run. Następnie uruchom naprawę i ponownie sprawdź Przegląd administracyjny.

Co oznacza ostrzeżenie

Indeks bazy danych to struktura, która pomaga bazie danych znaleźć wiersze bez skanowania całej tabeli. Nextcloud i jego aplikacje definiują indeksy dla tabel i pól, z których korzystają. Gdy nowsza wersja Nextcloud lub aplikacji wprowadza indeks, którego bieżąca instalacja jeszcze nie posiada, strona administratora może zgłosić niezgodność. Jest to ostrzeżenie o konserwacji schematu; samo w sobie nie oznacza, że ​​baza danych jest uszkodzona lub że brakuje plików użytkownika.

W podręczniku administracyjnym NextCloud podano, że indeksy można dodawać z czasem, między innymi w celu poprawy wydajności, i zaleca się administratorom uruchomienie occ db:add-missing-indices. Dodanie indeksu może zająć trochę czasu, szczególnie w przypadku dużych tabel, a obciążenie bazy danych lub sposób blokowania może się różnić w zależności od silnika bazy danych i obciążenia. Zaplanuj zmianę w okresie mniejszego obciążenia, jeśli Twoja instancja jest obciążona.

Przed rozpoczęciem naprawy

  • Potwierdź ścieżkę i wersję instalacji. Uruchom polecenia z katalogu zawierającego skrypt instalacji occlub podaj jego pełną ścieżkę.
  • Utwórz kopię zapasową bazy danych. Użyj standardowej procedury tworzenia kopii zapasowej dla MariaDB/MySQL, PostgreSQL lub SQLite. Sprawdź, czy kopia zapasowa została ukończona i czy wiesz, jak ją przywrócić.
  • Znajdź użytkownika HTTP. Użyj konta, które obsługuje serwer WWW dla NextCloud. Typowe przykłady to www-dataDebian lub Ubuntu, apacheFedora lub CentOS, httpArch oraz wwwrunopenSUSE. Twoja instalacja może się różnić.
  • Sprawdź opcje poleceń. Dokumentacja stabilnego podręcznika administracyjnego NextCloud 35. --dry-runJeśli zainstalowana wersja nie rozpoznaje tej opcji, sprawdź jej occ db:add-missing-indices --helpdane wyjściowe i pomiń podgląd, zamiast zakładać, że opcja istnieje.

Oficjalny przewodnik tworzenia kopii zapasowych zawiera listę bazy danych, konfiguracji, katalogu danych i innych komponentów instalacji, które należy zachować w celu utworzenia pełnej kopii zapasowej. W przypadku tej operacji schematu należy co najmniej wykonać przetestowaną kopię zapasową bazy danych, stosując procedurę odpowiednią dla danej bazy danych.

Krok 1: Otwórz powłokę w instalacji Nextcloud

W przypadku tradycyjnej instalacji Linuksa połącz się z serwerem przez SSH i przejdź do katalogu Nextcloud. Typowa ścieżka Ubuntu to /var/www/nextcloud, ale użyj ścieżki na swoim serwerze.

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

Sprawdź, czy wynik statusu identyfikuje oczekiwaną zainstalowaną instancję. Jeśli używasz innego pliku binarnego PHP dla serwera WWW niż domyślny plik powłoki php, użyj tej samej, kompatybilnej wersji PHP occ. Uruchomienie occjako użytkownik HTTP pomaga zachować oczekiwane prawa własności i uprawnienia do pliku.

Krok 2: Podgląd zmian indeksu

Jeśli zainstalowana wersja to obsługuje, najpierw uruchom próbę:

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

Próba uruchomienia pozwala na podgląd instrukcji SQL bez ich stosowania. Przeczytaj dane wyjściowe i potwierdź, że dotyczą one brakujących indeksów, które chcesz naprawić. Jeśli dane wyjściowe identyfikują nieznaną tabelę lub indeks, zapisz jego dokładną nazwę i sprawdź, czy odpowiednia aplikacja jest zainstalowana i aktualna. Nie wklejaj podglądu kodu SQL do konsoli bazy danych jako skrótu.

Krok 3: Dodaj brakujące indeksy

Gdy podgląd będzie oczekiwany i kopia zapasowa będzie gotowa, uruchom udokumentowane polecenie naprawy:

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

Polecenie sprawdza tabele bazy danych i tworzy indeksy zdefiniowane w schemacie, ale brakujące w bieżącej instalacji. Poczekaj, aż się zakończy. W przypadku dużej bazy danych może to chwilę potrwać. Unikaj przerywania działania podczas zmiany schematu. Dokumentacja NextCloud podaje, że to polecenie można uruchomić, gdy instancja pozostaje online; tryb konserwacji nie jest wymieniony jako warunek wstępny dla tej konkretnej naprawy. Jeśli wymaga ona przerwy konserwacyjnej, postępuj zgodnie z własnym procesem kontroli zmian.

Docker i inne typy instalacji

W przypadku wdrożenia kontenerowego należy uruchomić je occw kontenerze aplikacji Nextcloud, a nie w kontenerze bazy danych. Nazwy kontenerów i usług różnią się, dlatego należy sprawdzić wdrożenie i zastąpić je poprawną nazwą. W przypadku kontenera Docker o nazwie nextcloudwzorzec wygląda następująco:

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

W przypadku Docker Compose odpowiedni wzorzec to docker compose exec -u www-data <nextcloud-service> php occ db:add-missing-indices. Niektóre wdrożenia pakietowe używają dedykowanego polecenia lub innego użytkownika kontenera; należy postępować zgodnie z instrukcjami dla konkretnego pakietu. Nie kopiuj nazwy kontenera z konfiguracji innej osoby bez jej weryfikacji.

Jeśli polecenie się nie powiedzie lub ostrzeżenie nadal będzie wyświetlane

  • Odmowa dostępu: Sprawdź użytkownika HTTP i ścieżkę instalacji. Nie rozwiązuj tego problemu, uruchamiając polecenie jako root, chyba że dokumentacja wdrożenia wyraźnie wymaga użycia uprzywilejowanego wrappera; proces PHP powinien być zazwyczaj uruchamiany jako użytkownik serwera WWW.
  • Błąd połączenia z bazą danych lub PHP: Sprawdź dziennik Nextcloud, stan usługi bazy danych, skonfigurowaną wersję PHP i dane wyjściowe polecenia. Rozwiąż problem z połączeniem lub czasem wykonania przed ponownym uruchomieniem polecenia schematu.
  • Błąd duplikatu klucza lub unikatowego indeksu: Zatrzymaj i zachowaj pełny tekst błędu. Może on wskazywać na konflikt wierszy, który uniemożliwia utworzenie unikatowego indeksu. Zidentyfikuj aplikację i tabelę, których dotyczy problem, potwierdź wersję aplikacji i NextCloud oraz skonsultuj się z administratorem aplikacji lub osobą znającą tę bazę danych. Nie usuwaj wierszy ani indeksów bez diagnozy dotyczącej konkretnych danych i kopii zapasowej.
  • „Polecenie nie zostało znalezione” lub opcja nieobsługiwana: Upewnij się, że korzystasz z prawidłowej instalacji Nextcloud i sprawdź php occ listlub php occ help db:add-missing-indicesjako użytkownik HTTP. Starsze wersje mogą nie udostępniać wszystkich nowszych opcji.
  • Ostrzeżenie nadal się pojawia: Odśwież przegląd administracyjny po pomyślnym zakończeniu polecenia. Przeczytaj dokładne nazwy indeksów i tabel podane w ostrzeżeniu. Możliwe, że brakuje więcej niż jednego indeksu, dodano nowy indeks z aktualizacji aplikacji, operacja na bazie danych zakończyła się niepowodzeniem lub wystąpiła niezgodność schematu, której to polecenie nie rozwiązało.

Nie należy mylić brakujących indeksów z brakującymi kolumnami lub kluczami podstawowymi. Nextcloud dokumentuje oddzielne polecenia dla tych zmian schematu, takie jak db:add-missing-columnsi db:add-missing-primary-keys. Uruchom inną naprawę tylko wtedy, gdy ostrzeżenie administratora lub dokumentacja danej wersji tego wymaga.

Sprawdź wynik

  1. Poczekaj, aż db:add-missing-indiceswyjścia i raporty zostaną zakończone, np.Done.
  2. Załaduj ponownie Przegląd administracyjny i sprawdź, czy konkretne ostrzeżenie o brakującym indeksie zniknęło.
  3. Jeśli problem nadal występuje, porównaj dokładne nazwy tabeli i indeksu z wynikami polecenia, zamiast uruchamiać je ponownie bezmyślnie.
  4. Sprawdź dziennik Nextcloud i stan bazy danych pod kątem nowych błędów, a następnie upewnij się, że normalny dostęp do plików i aplikacje korzystające z dotkniętych problemem tabel nadal działają.
  5. Przechowuj kopię zapasową do momentu, aż instancja zacznie działać normalnie i Twoja polityka przechowywania danych będzie zezwalać na jej usunięcie.

Aktualną składnię poleceń można znaleźć w dokumentacji poleceń bazy danych i indeksu Nextcloud . Wymagania dotyczące użytkownika i PHP można znaleźć w dokumencie „ Korzystanie z polecenia occ” oraz w podręczniku tworzenia kopii zapasowych Nextcloud . Na tych stabilnych stronach aktualny podręcznik jest oznaczony jako Nextcloud Server 35 w dniu sprawdzenia 6 października 2026 r.; ścieżki, opcje i instrukcje dotyczące pakowania mogą się różnić w innych wersjach lub typach wdrożeń.

Zostaw komentarz

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

Porównaj 10 narzędzi do pingowania, które umożliwiają szybkie wykrywanie sieci LAN, skanowanie międzyplatformowe i zarządzanie adresami IP. Dowiedz się, co narzędzie pingujące może Ci powiedzieć, a czego nie.

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

Porównaj sześć narzędzi do zarządzania siecią służących do monitorowania wydajności, obejmujących zasięg SNMP, mapowanie, alerty, modele wdrażania i kompromisy kosztów.

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Porównaj siedem darmowych i otwartych monitorów pingów — od kompletnych pakietów sieciowych po ukierunkowane sondy opóźnień — i wybierz odpowiedni monitor pod kątem dostępności, utraty pakietów i historii.

QoS w sieciach: czym jest jakość usług i jak działa

QoS w sieciach: czym jest jakość usług i jak działa

Dowiedz się, co oznacza QoS w sieciach, w jaki sposób oznaczenia DSCP i kolejki ruchu nadają priorytet aplikacjom głosowym, wideo i biznesowym oraz czego QoS nie jest w stanie naprawić.

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Porównaj niezawodne oprogramowanie serwera SFTP dla systemów Windows i Linux, w tym OpenSSH, Bitvise, SolarWinds i SFTPGo. Znajdź rozwiązanie odpowiednie dla swoich potrzeb w zakresie bezpieczeństwa i transferu plików.

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

Porównaj siedem narzędzi do zarządzania adresami IP służących do wykrywania podsieci, koordynacji DNS i DHCP, inwentaryzacji sieci i otwartego oprogramowania IPAM.

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

Porównaj sześć narzędzi do monitorowania systemu Windows Server pod kątem zbierania danych systemu Windows, widoczności aplikacji, modelu wdrażania i licencjonowania, aby znaleźć odpowiednie rozwiązanie.

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

Porównaj narzędzia do skanowania sieciowego umożliwiające szybkie wykrywanie urządzeń, skanowanie adresów IP na wielu platformach oraz zarządzanie IPAM w przedsiębiorstwie. Znajdziesz tu wskazówki dotyczące dopasowania każdej opcji do swojej sieci.

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Zbuduj praktyczny monitoring sieci z przejrzystym zakresem urządzeń, przydatnymi wskaźnikami wydajności, przydatnymi alertami oraz porównaniem SolarWinds NPM, PRTG i OpManager.

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Użyj opcji --traceroute programu Nmap, aby mapować przeskoki do autoryzowanego hosta, zrozumieć dane wyjściowe dotyczące przeskoków i czasu RTT oraz rozwiązywać problemy z brakującymi odpowiedziami bez nadmiernego skanowania.