Удалите предупреждение Nextcloud об отсутствии индексов в базе данных.

Устраните предупреждение Nextcloud «В базе данных отсутствуют некоторые индексы», запустив команду occ db:add-missing-indicesот имени пользователя веб-сервера из правильной установки Nextcloud. Команда добавляет индексы, определенные Nextcloud или установленными приложениями, но отсутствующие в базе данных; в текущей документации Nextcloud 35 --dry-runперед выполнением команды выполняется предварительный просмотр SQL-запроса.

Административный обзор в стиле Nextcloud с желтым предупреждением о том, что в базе данных отсутствуют некоторые индексы.
Предупреждение появляется в разделе «Обзор администрирования», когда Nextcloud обнаруживает отсутствие индексов в схеме базы данных.

Что означает это предупреждение

Индекс базы данных — это структура поиска, которая помогает базе данных находить строки без сканирования всей таблицы. Nextcloud и его приложения иногда добавляют индексы для улучшения запросов. Обновление может оставить эту работу администратору, поскольку создание индекса для большой таблицы может занять время и повлиять на производительность во время работы. Предупреждение об отсутствии индекса обычно является сигналом о необходимости технического обслуживания, а не доказательством повреждения файлов или записей базы данных.

В текущем справочнике команд базы данных Nextcloud описывается db:add-missing-indicesдобавление индексов, которые присутствуют в ожидаемой схеме, но отсутствуют в текущей установке. В текущем руководстве также описан --dry-runпредварительный просмотр SQL-запросов. Точные индексы зависят от вашей версии Nextcloud и установленных приложений.

Подготовьте сервер

  • Уточните, в каком именно экземпляре Nextcloud отображается предупреждение, особенно если вы управляете тестовой и производственной средами или несколькими контейнерами.
  • Убедитесь, что существует актуальная резервная копия базы данных и что вы знаете, как её восстановить. Эта команда изменяет структуру базы данных. Не редактируйте и не удаляйте индексы вручную.
  • Планируйте выполнить команду, когда нагрузка на базу данных будет приемлемой. Согласно рекомендациям Nextcloud по обновлению, сервер может оставаться в сети во время этой операции, но индексирование большой таблицы может занять время и временно повлиять на скорость ответа.
  • Найдите каталог установки Nextcloud, версию PHP CLI, используемую веб-сервером, и учетную запись операционной системы веб-сервера. www-dataВ Debian или Ubuntu эта учетная запись часто совпадает с apacheверсией для Fedora или CentOS, а httpв Arch Linux — с другой.

В руководстве Nextcloud по OCC поясняется, что 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 с опцией тестового запуска.
Воспользуйтесь описанной в документации функцией пробного запуска, чтобы проверить SQL-запрос перед внесением изменений в базу данных.

Когда будете готовы применить изменения, выполните команду без символа --dry-run":".

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

Nextcloud проверяет соответствующие таблицы и сообщает о ходе выполнения. Дождитесь завершения процесса; не прерывайте его только потому, что проверка большой таблицы занимает больше времени, чем ожидалось. В руководстве по обновлению эта команда указана среди более длительных задач по настройке схемы, которые могут выполняться во время работы экземпляра, поэтому обычно для этого не требуется включать режим обслуживания. Избегайте одновременного обслуживания базы данных во время выполнения этой команды.

В терминале Linux показана проверка таблицы файлового кэша командой missing-index и завершение выполнения команды Done.
Эта команда проверяет таблицы базы данных и возвращается в оболочку по завершении.

Если 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 в командной строке может вызывать occошибки.
  3. В Nextcloud 35 и более поздних версиях выполните команду sudo -E -u www-data php occ db:schema:checkдля проверки различий в схеме. В текущем справочнике указано, что эта проверка добавлена ​​в версии 35. В более ранних версиях используйте диагностические средства, описанные для этой версии.
  4. Если отсутствующий индекс принадлежит стороннему приложению или команда выдает ошибку, обновите приложение, если доступно обновление, просмотрите журнал Nextcloud и вывод команды, а также обратитесь к сопровождающему приложения или в службу поддержки Nextcloud с точными именами индекса и таблицы. Не выполняйте CREATE INDEXзапросы, написанные вручную, если сопровождающий приложения или базы данных не предоставил их для вашей конкретной схемы.

Для производственного сервера сохраните резервную копию базы данных до тех пор, пока предупреждение не исчезнет и приложение не начнет работать в обычном режиме. В руководстве по обновлению Nextcloud описаны задачи онлайн-обслуживания и необязательный пробный запуск.

Оставить комментарий

Удалите предупреждение Nextcloud об отсутствии индексов в базе данных.

Удалите предупреждение Nextcloud об отсутствии индексов в базе данных.

Запустите функцию восстановления OCC в Nextcloud в безопасных условиях, просмотрите изменения в базе данных и выясните, почему предупреждение может оставаться.

Увеличьте лимит загрузки веб-страниц в Nextcloud до более чем 2 ГБ.

Увеличьте лимит загрузки веб-страниц в Nextcloud до более чем 2 ГБ.

Разрешите загрузку файлов больших размеров через браузер Nextcloud, согласовав параметры PHP, Nginx или Apache, временного хранилища и тайм-аута, а также проверьте, какое ограничение блокирует файл.

Устранить предупреждение Nextcloud о нехватке памяти PHP на веб-сервере.

Установите ограничение на объем памяти, фактически используемый Nextcloud для PHP, перезапустите нужную службу и подтвердите значение 512 МБ в разделе «Обзор администратора».

Подключите совместимое с S3 хранилище к внешнему хранилищу Nextcloud.

Подключите совместимый сегмент объектного хранилища в Nextcloud, используя его бэкэнд S3, с указанием правильной конечной точки, учетных данных, области доступа и этапов проверки.

Переместите данные Nextcloud на внешний диск, не повреждая хранилище.

Переместите данные Nextcloud на внешний диск, не повреждая хранилище.

Безопасное перемещение каталога данных Linux Nextcloud на внешний диск с использованием постоянного монтирования 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.

Снизьте скачки загрузки ЦП в предварительной версии Nextcloud с помощью запланированной очереди.

Перенесите обработку миниатюр в контролируемый фоновый режим, обрежьте неиспользуемые размеры предварительного просмотра и проверьте очередь, не перегружая сервер Nextcloud.