Исправлено предупреждение Nextcloud «В базе данных отсутствуют некоторые индексы».

Вы открываете раздел «Обзор администрирования» в Nextcloud и видите сообщение: «В базе данных отсутствуют некоторые индексы». Это предупреждение может появиться после обновления, поскольку Nextcloud может добавлять новые индексы к существующим таблицам со временем, и не всегда создает их автоматически в больших базах данных. Отсутствие индексов может замедлить выполнение некоторых запросов к базе данных. Поддерживается использование встроенной occ db:add-missing-indicesкоманды для восстановления.

Перед изменением схемы убедитесь, что вы запускаете команду для правильной установки Nextcloud, создайте резервную копию базы данных и используйте пользователя операционной системы веб-сервера. В версиях, где это поддерживается командой, просмотрите предлагаемый SQL-запрос с помощью команды ` --dry-run.`. Затем запустите восстановление и снова проверьте раздел «Обзор администрирования».

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

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

В руководстве администратора Nextcloud указано, что индексы могут добавляться со временем, в том числе для повышения производительности, и администраторам рекомендуется выполнить occ db:add-missing-indicesкоманду `npm install index.html`. Добавление индекса может занять время, особенно для больших таблиц, а загрузка базы данных или поведение блокировок могут различаться в зависимости от механизма базы данных и рабочей нагрузки. Если ваш экземпляр загружен, планируйте внесение изменений в более спокойное время.

Перед запуском восстановления

  • Подтвердите путь установки и версию. Выполняйте команды из каталога, содержащего скрипт нужной установки occ, или укажите его полный путь.
  • Создайте резервную копию базы данных. Используйте стандартную процедуру резервного копирования для MariaDB/MySQL, PostgreSQL или SQLite. Убедитесь, что резервное копирование завершено и что вы знаете, как восстановить данные.
  • Найдите HTTP-пользователя. Используйте учетную запись, под которой работает веб-сервер Nextcloud. Распространенные примеры: www-dataDebian или Ubuntu, apacheFedora или CentOS, httpArch и wwwrunopenSUSE. Ваша конфигурация может отличаться.
  • Проверьте наличие параметров команды. В руководстве по администрированию стабильной версии 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 и вывод команды. Устраните основную проблему с подключением или во время выполнения, прежде чем повторно запускать команду схемы.
  • Ошибка дублирования ключа или уникального индекса: остановитесь и сохраните полный текст ошибки. Она может указывать на конфликтующие строки, препятствующие созданию уникального индекса. Определите затронутое приложение и таблицу, подтвердите версии приложения и 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 г.); пути, параметры и инструкции по упаковке могут отличаться в других версиях или типах развертывания.

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

Устранение проблемы высокой загрузки ЦП в Jitsi Meet в браузерах клиентов.

Устранение проблемы высокой загрузки ЦП в Jitsi Meet в браузерах клиентов.

Диагностика скачков загрузки ЦП в браузере 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 и сквозной проверки.

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 errors after SSL renewal by checking the correct URL and port, proxy routing, service status, deployed certificates, and logs.

Исправлено предупреждение Nextcloud «Неправильно настроен PHP OPcache».

Исправлено предупреждение Nextcloud «Неправильно настроен PHP OPcache».

Узнайте, как диагностировать и устранять предупреждение Nextcloud о конфигурации PHP OPcache, проверив активные параметры PHP SAPI, ограничения размера, комментарии и настройки повторной проверки.

Исправление ошибок миграции базы данных Kopano после обновления версии MySQL.

Исправление ошибок миграции базы данных Kopano после обновления версии MySQL.

Для устранения неполадок, возникающих при миграции базы данных Kopano после обновления MySQL или MariaDB, проверьте резервные копии, версии серверов, режимы SQL, кодировку, состояние схемы и журналы.

Как настроить аутентификацию LDAP и Active Directory в Nextcloud

Как настроить аутентификацию LDAP и Active Directory в Nextcloud

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

Как исправить уведомления Element Android без сервисов Google: руководство по UnifiedPush

Как исправить уведомления Element Android без сервисов Google: руководство по UnifiedPush

Исправление проблем с уведомлениями Element Android на телефонах без привязки к Google путем настройки UnifiedPush, разрешений Android, параметров батареи и надежных тестов проверки.

Исправлено предупреждение Nextcloud «В базе данных отсутствуют некоторые индексы».

Исправлено предупреждение Nextcloud «В базе данных отсутствуют некоторые индексы».

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

Как настроить единый вход (SSO) с помощью Keycloak в Element Web

Как настроить единый вход (SSO) с помощью Keycloak в Element Web

Настройте единый вход Keycloak для Element Web, подключив OIDC к Synapse, задав точный URL-адрес обратного вызова, сопоставив данные пользователя и протестировав выход из системы.