Ostrzeżenie o braku indeksów bazy danych NextCloud

Usuń ostrzeżenie Nextcloud „Brak niektórych indeksów w bazie danych”, uruchamiając program occ db:add-missing-indicesjako użytkownik serwera WWW z prawidłowej instalacji Nextcloud. Polecenie dodaje indeksy zdefiniowane przez Nextcloud lub zainstalowane aplikacje, których brakuje w bazie danych; w aktualnej dokumentacji Nextcloud 35 --dry-runprzed uruchomieniem wyświetla podgląd kodu SQL.

Przegląd administracyjny w stylu Nextcloud z bursztynowym ostrzeżeniem, że w bazie danych brakuje niektórych indeksów
Ostrzeżenie pojawia się w Przeglądzie administracyjnym, gdy Nextcloud wykryje brakujące indeksy w schemacie bazy danych.

Co oznacza ostrzeżenie

Indeks bazy danych to struktura wyszukiwania, która pomaga bazie danych znaleźć wiersze bez konieczności skanowania całej tabeli. Nextcloud i jego aplikacje czasami dodają indeksy w celu usprawnienia zapytań. Aktualizacja może pozostawić to zadanie administratorowi, ponieważ tworzenie indeksu dla dużej tabeli może być czasochłonne i wpływać na wydajność podczas działania. Ostrzeżenie o brakującym indeksie jest zazwyczaj monitem konserwacyjnym, a nie dowodem na uszkodzenie plików lub rekordów bazy danych.

Aktualny opis poleceń bazy danych Nextcloud opisuje db:add-missing-indicesdodawanie indeksów, które znajdują się w oczekiwanym schemacie, ale nie występują w bieżącej instalacji. Aktualny podręcznik zawiera również informacje --dry-rundotyczące podglądu instrukcji SQL. Dokładne indeksy zależą od wersji Nextcloud i zainstalowanych aplikacji.

Przygotuj serwer

  • Sprawdź, która instancja Nextcloud wyświetla ostrzeżenie, zwłaszcza jeśli zarządzasz środowiskiem przejściowym i produkcyjnym lub więcej niż jednym kontenerem.
  • Upewnij się, że istnieje aktualna kopia zapasowa bazy danych i wiesz, jak ją przywrócić. To polecenie zmienia strukturę bazy danych. Nie edytuj ani nie usuwaj indeksów ręcznie.
  • Zaplanuj uruchomienie polecenia, gdy obciążenie bazy danych będzie rozsądne. Serwer może pozostać online podczas tej operacji, zgodnie z wytycznymi NextCloud dotyczącymi aktualizacji, ale indeksowanie dużej tabeli może być czasochłonne i tymczasowo wpłynąć na szybkość reakcji.
  • Znajdź katalog instalacyjny Nextcloud, wersję interfejsu PHP CLI używaną przez serwer WWW oraz konto systemowe serwera WWW. Konto to często działa www-datana Debianie lub Ubuntu, apacheFedorze lub CentOS oraz httpArch Linux.

Przewodnik Nextcloud dotyczący OCC wyjaśnia, że occ​​jest to interfejs wiersza poleceń serwera, który musi działać jako użytkownik HTTP, aby własność i uprawnienia plików pozostały spójne. Nie używaj go www-databezmyślnie, jeśli instalacja korzysta z innego konta.

Podgląd i dodawanie brakujących indeksów

W przypadku standardowej instalacji archiwum w systemie Debian lub Ubuntu otwórz powłokę na serwerze Nextcloud i przejdź do katalogu zawierającego occplik. W tym przykładzie użyto /var/www/nextcloud; ścieżka może być inna.

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

Próbny przebieg drukuje kod SQL, który zostałby wykonany bez zmiany bazy danych. Odczytaj dane wyjściowe i potwierdź, że jest to oczekiwana operacja konserwacyjna. --dry-runOpcja ta jest udokumentowana w aktualnym podręczniku NextCloud 35; jeśli starsza wersja ją odrzuca, sprawdź pomoc dotyczącą poleceń tej wersji, zamiast losowo usuwać opcje.

Terminal Linux pokazujący polecenie Nextcloud OCC missing-index z opcją uruchomienia na sucho
Przed wprowadzeniem zmiany w bazie danych należy przeprowadzić próbę, aby sprawdzić kod SQL.

Gdy będziesz gotowy do zastosowania zmiany, uruchom polecenie bez --dry-run:

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

Nextcloud sprawdza odpowiednie tabele i raportuje postęp. Pozwól mu się zakończyć; nie przerywaj procesu tylko dlatego, że duża tabela zajmuje więcej czasu niż oczekiwano. Instrukcja aktualizacji wymienia to polecenie wśród dłuższych zadań schematu, które można wykonać, gdy instancja pozostaje online, więc zazwyczaj nie ma potrzeby włączania trybu konserwacji w celu przeprowadzenia tej naprawy. Unikaj jednoczesnej konserwacji bazy danych podczas jej działania.

Terminal Linux pokazujący polecenie missing-index sprawdzające tabelę filecache i kończące się poleceniem Done
Polecenie sprawdza tabele bazy danych i po zakończeniu wraca do powłoki.

Jeśli NextCloud działa w Dockerze

Uruchom occw kontenerze aplikacji Nextcloud, a nie w oddzielnym kontenerze bazy danych. W przypadku kontenera o nazwie nextcloudzawierającej standardowe www-datakonto, polecenie wygląda zazwyczaj następująco:

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

Zastąp nextcloudrzeczywistą nazwą kontenera aplikacji. Jeśli obraz lub wdrożenie używa innego użytkownika kontenera, pliku binarnego PHP lub wrappera poleceń, postępuj zgodnie z dokumentacją tego obrazu i uruchom polecenie jako użytkownik HTTP.

Sprawdź, czy ostrzeżenie zniknęło

Po zakończeniu polecenia odśwież Ustawienia administracyjne > Przegląd . Komunikat o brakującym indeksie powinien zniknąć, gdy sprawdzenie NextCloud rozpozna indeksy. Możesz również ponownie uruchomić polecenie; powinno ono zakończyć się bez konieczności ponownego dodawania tych samych brakujących indeksów. To potwierdza, że ​​sprawdzenie schematu zostało naprawione, chociaż nie mierzy ogólnej wydajności bazy danych.

Przegląd administracyjny w stylu NextCloud z ostrzeżeniem o brakującym indeksie nie jest już wyświetlany
Po zakończeniu polecenia odśwież okno podglądu administracyjnego i sprawdź, czy ostrzeżenie bazy danych zostało usunięte.

Jeśli ostrzeżenie nadal występuje

  1. Upewnij się, że polecenie zostało uruchomione w tej samej instalacji Nextcloud i tej samej bazie danych, która spowodowała ostrzeżenie. Częstym błędem jest wykonywanie go w kontenerze konserwacyjnym, instancji przejściowej lub kontenerze bazy danych.
  2. Sprawdź, czy polecenie zostało uruchomione jako właściwy użytkownik serwera WWW i czy użyto tej samej wersji PHP, co serwer WWW. Nextcloud zauważa, że ​​inna konfiguracja PHP interfejsu CLI może powodować occbłędy.
  3. W NextCloud w wersji 35 i nowszych należy uruchomić narzędzie sudo -E -u www-data php occ db:schema:checkw celu sprawdzenia różnic w schemacie. Aktualne odniesienie identyfikuje to sprawdzenie jako dodane w wersji 35. W przypadku starszych wersji należy użyć diagnostyki udokumentowanej dla tej wersji.
  4. Jeśli brakujący indeks należy do aplikacji innej firmy lub polecenie zgłasza błąd, zaktualizuj aplikację, jeśli aktualizacja jest dostępna, przejrzyj dziennik Nextcloud i dane wyjściowe polecenia oraz poproś administratora aplikacji lub dział pomocy technicznej Nextcloud o podanie dokładnych nazw indeksów i tabel. Nie uruchamiaj ręcznie pisanych CREATE INDEXpoleceń, chyba że administrator aplikacji lub bazy danych poda je dla konkretnego schematu.

W przypadku serwera produkcyjnego należy zachować kopię zapasową bazy danych do momentu usunięcia ostrzeżenia i przywrócenia normalnego działania aplikacji. Wskazówki dotyczące aktualizacji Nextcloud obejmują zadanie konserwacji online oraz opcjonalny test.

Zostaw komentarz

Ostrzeżenie o braku indeksów bazy danych NextCloud

Ostrzeżenie o braku indeksów bazy danych NextCloud

Wykonaj bezpieczną naprawę OCC w Nextcloud, przejrzyj zmiany w bazie danych i sprawdź, dlaczego ostrzeżenie może nadal się pojawiać.

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zezwól na przesyłanie większych plików przez przeglądarkę Nextcloud, dostosowując ustawienia PHP, Nginx lub Apache, tymczasowego miejsca przechowywania i limitu czasu — i sprawdź, który limit blokuje plik.

Wyczyść ostrzeżenie Nextcloud dotyczące pamięci PHP na serwerze WWW

Ustaw limit pamięci PHP, z którego faktycznie korzysta Nextcloud, uruchom ponownie odpowiednią usługę i potwierdź ustawienie 512 MB w przeglądzie administratora.

Podłącz kontener zgodny z S3 do zewnętrznej pamięci masowej NextCloud

Zamontuj zgodny obiekt pamięci masowej w Nextcloud, korzystając z zaplecza S3, z odpowiednim punktem końcowym, poświadczeniami, zakresem dostępu i krokami weryfikacji.

Przenieś dane z Nextcloud na dysk zewnętrzny bez naruszania pamięci masowej

Przenieś dane z Nextcloud na dysk zewnętrzny bez naruszania pamięci masowej

Bezpiecznie przenieś katalog danych Linux Nextcloud na dysk zewnętrzny, korzystając z trwałego montowania UUID, trybu konserwacji, zweryfikowanej kopii i dowiązania symbolicznego do ścieżki oryginalnej.

Błąd bazy danych NextCloud po aktualizacji: co sprawdzić w pierwszej kolejności

Przywróć dostęp do Nextcloud po aktualizacji, diagnozując błędy SQL, sprawdzając łączność z bazą danych i bezpiecznie kończąc przerwane migracje.

Zresetuj utracone hasło administratora NextCloud za pomocą OCC

Użyj polecenia OCC usługi Nextcloud, aby zresetować hasło administratora z poziomu powłoki serwera. Znajdziesz tam wskazówki dotyczące nazw użytkowników, uprawnień i zewnętrznych dostawców logowania.

Dodaj nagłówek HSTS w punkcie końcowym HTTPS obsługującym Nextcloud

Wyczyść ostrzeżenie HSTS usługi Nextcloud, ustawiając nagłówek na serwerze Apache, NGINX lub serwerze proxy TLS, a następnie bezpiecznie zweryfikuj publiczną odpowiedź HTTPS.

Rozwiązywanie problemów z instalacjami aplikacji NextCloud, które zgłaszają brak połączenia z Internetem

Rozwiązywanie problemów z instalacjami aplikacji NextCloud, które zgłaszają brak połączenia z Internetem

Śledź błędy instalacji App Store, aby wykryć problemy z DNS, HTTPS, serwerem proxy, TLS lub konfiguracją na samym serwerze Nextcloud.

Podgląd Tame Nextcloud powoduje skoki obciążenia procesora w przypadku zaplanowanej kolejki

Przenieś pracę nad miniaturami do kontrolowanego harmonogramu w tle, zmniejsz nieużywane rozmiary podglądu i zweryfikuj kolejkę bez przeciążania serwera Nextcloud.