Исправлено предупреждение 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 г.); пути, параметры и инструкции по упаковке могут отличаться в других версиях или типах развертывания.

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

10 лучших инструментов для сканирования сети с помощью команды ping, позволяющих находить устройства в вашей сети.

10 лучших инструментов для сканирования сети с помощью команды ping, позволяющих находить устройства в вашей сети.

Сравните 10 инструментов для сканирования сети (ping sweep) для быстрого обнаружения локальных сетей, кроссплатформенного сканирования и управления IP-адресами. Узнайте, что может — и чего не может — показать сканирование.

6 лучших инструментов управления сетью для отслеживания производительности

6 лучших инструментов управления сетью для отслеживания производительности

Сравните шесть инструментов управления сетью для мониторинга производительности, включая покрытие SNMP, сопоставление, оповещения, модели развертывания и компромиссы в отношении стоимости.

Лучшие анализаторы Wi-Fi для Windows, iOS и Android

Лучшие анализаторы Wi-Fi для Windows, iOS и Android

Сравните лучшие программы для анализа Wi-Fi-сетей для Windows, iPhone и Android, включая инструменты для оценки загруженности каналов, зоны покрытия сигнала, тепловых карт и устранения неполадок в сети.

Ping Monitor: 7 бесплатных инструментов с открытым исходным кодом для проверки доступности сети

Ping Monitor: 7 бесплатных инструментов с открытым исходным кодом для проверки доступности сети

Сравните семь бесплатных мониторов ping с открытым исходным кодом, от полноценных сетевых пакетов до специализированных инструментов для измерения задержки, и выберите тот, который лучше всего подходит для проверки доступности, потери пакетов и истории соединений.

QoS в сетях: что делает качество обслуживания и как оно работает.

QoS в сетях: что делает качество обслуживания и как оно работает.

Узнайте, что означает QoS в сетях, как маркировка DSCP и очереди трафика определяют приоритет голосовых, видео- и бизнес-приложений, и что QoS не может исправить.

Лучшее программное обеспечение SFTP-сервера для безопасной передачи файлов.

Лучшее программное обеспечение SFTP-сервера для безопасной передачи файлов.

Сравните надежные SFTP-серверы для Windows и Linux, включая OpenSSH, Bitvise, SolarWinds и SFTPGo. Найдите подходящее решение для ваших потребностей в области безопасности и передачи файлов.

7 лучших инструментов для управления IP-адресами для сетевых команд

7 лучших инструментов для управления IP-адресами для сетевых команд

Сравните семь инструментов управления IP-адресами для обнаружения подсетей, координации DNS и DHCP, инвентаризации сети и управления IP-адресами с открытым исходным кодом.

Рекомендации по мониторингу сети: что отслеживать и какие инструменты использовать.

Рекомендации по мониторингу сети: что отслеживать и какие инструменты использовать.

Создайте практичную систему мониторинга сети с четким охватом устройств, полезными показателями производительности, действенными оповещениями и сравнением SolarWinds NPM, PRTG и OpManager.

10 лучших инструментов для сканирования сети, позволяющих обнаруживать устройства и IP-адреса.

10 лучших инструментов для сканирования сети, позволяющих обнаруживать устройства и IP-адреса.

Сравните инструменты сканирования сети для быстрого обнаружения устройств, кроссплатформенного сканирования IP-адресов и корпоративного управления IP-адресами, получив рекомендации по подбору подходящего варианта для вашей сети.

Как использовать Nmap для трассировки маршрута и чтения сетевого пути

Как использовать Nmap для трассировки маршрута и чтения сетевого пути

Используйте опцию --traceroute в Nmap, чтобы сопоставить узлы маршрута с авторизованным хостом, понять вывод информации о узлах и времени кругового обхода (RTT), а также устранить неполадки, связанные с отсутствием ответов, без избыточного сканирования.