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

Najlepsze narzędzia do monitorowania systemu Windows: 6 wyborów zapewniających widoczność serwera

Najlepsze narzędzia do monitorowania systemu Windows: 6 wyborów zapewniających widoczność serwera

Porównaj sześć narzędzi do monitorowania systemu Windows pod kątem stanu serwera, widoczności aplikacji i alertów, z aktualnymi uwagami na temat wdrażania i licencjonowania.

7 narzędzi Wake-on-LAN: co jeszcze jest dostępne na liście z 2021 r.

7 narzędzi Wake-on-LAN: co jeszcze jest dostępne na liście z 2021 r.

Porównaj siedem narzędzi Wake-on-LAN pod względem funkcji i dostępności, w tym bezpłatne narzędzia, pakiety do administrowania siecią i propozycje z 2021 r., które zostały już wycofane.

9 najlepszych narzędzi do pingowania, służących do testowania opóźnień i skanowania sieci

9 najlepszych narzędzi do pingowania, służących do testowania opóźnień i skanowania sieci

Porównaj dziewięć narzędzi do pingowania służących do szybkiego sprawdzania dostępności, wykrywania podsieci, testowania TCP i monitorowania opóźnień. Znajdziesz tu wskazówki, które z nich jest najbardziej odpowiednie dla Twojego zadania sieciowego.

7 najlepszych narzędzi WSUS do zarządzania aktualizacjami i rozwiązywania problemów

7 najlepszych narzędzi WSUS do zarządzania aktualizacjami i rozwiązywania problemów

Porównaj siedem narzędzi, które obsługują lub uzupełniają usługę WSUS — od natywnej konsoli i diagnostyki firmy Microsoft po publikowanie poprawek innych firm i zdalne wdrażanie.

Najlepsze serwery TFTP dla systemów Windows, Linux i macOS

Najlepsze serwery TFTP dla systemów Windows, Linux i macOS

Porównaj najlepsze serwery TFTP dla systemów Windows, Linux i macOS, w tym SolarWinds, Tftpd64, tftpd-hpa, atftpd, haneWIN i dnsmasq.

5 najlepszych alternatyw dla programu Microsoft Access dla baz danych na komputerach stacjonarnych i w Internecie

5 najlepszych alternatyw dla programu Microsoft Access dla baz danych na komputerach stacjonarnych i w Internecie

Porównaj pięć alternatyw dla programu Microsoft Access przeznaczonych do pracy na komputerach stacjonarnych, w środowisku SQLite, bez kodu i w oparciu o bazę danych w przeglądarce, przedstawiając ich mocne i słabe strony oraz najlepiej dopasowane przypadki użycia.

Porównanie narzędzi monitorujących o otwartym kodzie źródłowym i o zamkniętym kodzie źródłowym

Porównanie narzędzi monitorujących o otwartym kodzie źródłowym i o zamkniętym kodzie źródłowym

Porównaj narzędzia do monitorowania o otwartym i zamkniętym kodzie źródłowym pod względem kosztów, wsparcia, dostosowania, bezpieczeństwa i bieżących opcji, w tym Zabbix, Nagios, PRTG i inne.

Przychodzące i wychodzące dane: jaka jest różnica w sieci?

Przychodzące i wychodzące dane: jaka jest różnica w sieci?

Dowiedz się, w jaki sposób ruch przychodzący i wychodzący opisuje ruch przychodzący i wychodzący, dlaczego kierunek zależy od granicy sieci oraz jak monitorować przepustowość i wykrywać ryzykowne transfery danych.

6 najlepszych darmowych serwerów Syslog do wypróbowania w celu scentralizowanego rejestrowania

6 najlepszych darmowych serwerów Syslog do wypróbowania w celu scentralizowanego rejestrowania

Porównaj sześć darmowych serwerów i kolektorów syslog dla systemów Windows i Linux, obejmujących narzędzia GUI, opcje open source, wyszukiwanie, alerty i bezpieczny transport.

Czym jest IIS? Serwer WWW Windows firmy Microsoft i alternatywy

Czym jest IIS? Serwer WWW Windows firmy Microsoft i alternatywy

Dowiedz się, co robi Microsoft IIS, jak działa jego potok żądań i pule aplikacji oraz czy Apache, NGINX lub Caddy mogą lepiej spełnić potrzeby Twojego serwera WWW.