Nextcloudの「データベースに一部のインデックスが欠落しています」という警告を修正する

Nextcloud の管理概要を開くと、「データベースにインデックスが不足しています」というメッセージが表示されます。この警告は、Nextcloud が既存のテーブルに新しいインデックスを随時追加する可能性があるため、アップグレード後に表示されることがあります。大規模なデータベースでは、インデックスが自動的に作成されるとは限りません。インデックスが不足していると、データベースクエリの速度が低下する場合があります。サポートされている修復方法は、組み込みocc db:add-missing-indicesコマンドを使用することです。

スキーマを変更する前に、正しい Nextcloud インストールに対してコマンドを実行していることを確認し、データベースのバックアップを作成し、Web サーバーのオペレーティングシステムのユーザーを使用してください。コマンドがそれをサポートするバージョンでは、提案された SQL をプレビューできます--dry-run。その後、修復を実行し、管理概要を再度確認してください。

警告の意味

データベースインデックスとは、データベースがテーブル全体をスキャンすることなく行を検索するのに役立つ構造です。Nextcloudとそのアプリは、使用するテーブルとフィールドにインデックスを定義します。新しいNextcloudリリースまたはアプリバージョンで、既存のインストールにまだ存在しないインデックスが導入された場合、管理ページに不一致が報告されることがあります。これはスキーマメンテナンスの警告であり、それ自体がデータベースの破損やユーザーファイルの欠落を意味するものではありません。

Nextcloud の管理マニュアルには、パフォーマンス向上などを目的としてインデックスを随時追加できることが記載されており、管理者は を実行するように指示されていますocc db:add-missing-indices。インデックスの追加には、特に大きなテーブルでは時間がかかる場合があり、データベースの負荷やロックの動作は、データベース エンジンやワークロードによって異なる場合があります。インスタンスがビジー状態の場合は、比較的負荷の低い時間帯に変更を計画してください。

修復を実行する前に

  • インストールパスとバージョンを確認してください。インストールoccスクリプトが格納されているディレクトリからコマンドを実行するか、スクリプトのフルパスを指定してください。
  • データベースのバックアップを作成してください。MariaDB /MySQL、PostgreSQL、またはSQLiteの通常のバックアップ手順に従ってください。バックアップが完了したこと、および復元方法を理解していることを確認してください。
  • HTTPユーザーを見つけてください。NextcloudのWebサーバーを実行しているアカウントを使用してください。一般的な例としては、www-dataDebianやUbuntu、apacheFedoraやCentOS、httpArch Linux、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

ステータス出力で、想定どおりにインストールされたインスタンスが識別されていることを確認してください。Webサーバーにシェルのデフォルトとは異なるPHPバイナリを使用する場合はphp、互換性のあるPHPバージョンをにも使用してくださいocc。HTTPoccユーザーとして実行することで、想定どおりのファイル所有権と権限が維持されます。

ステップ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プロセスは通常、Webサーバーユーザーとして実行される必要があります。
  • データベース接続エラーまたはPHPエラー: Nextcloudのログ、データベースサービスの健全性、設定されているPHPのバージョン、およびコマンドの出力を確認してください。スキーマコマンドを再実行する前に、根本的な接続または実行時の問題を解決してください。
  • 重複キーまたは一意インデックスのエラー:処理を停止し、エラーメッセージ全文を保存してください。これは、一意インデックスの作成を妨げる競合する行が存在することを示している可能性があります。影響を受けるアプリとテーブルを特定し、アプリとNextcloudのバージョンを確認して、アプリのメンテナーまたはデータベースに精通した管理者にご相談ください。データ固有の診断とバックアップなしに、行を削除したりインデックスを削除したりしないでください。
  • 「コマンドが見つかりません」またはサポートされていないオプション:正しい Nextcloud インストール環境にいることを確認し、HTTP ユーザーとして確認してくださいphp occ list。php occ help db:add-missing-indices古いリリースでは、すべての新しいオプションが利用できない場合があります。
  • コマンドが正常に終了した後も、「管理概要を更新してください」という警告が表示されます。警告に表示されている正確なインデックス名とテーブル名を確認してください。複数のインデックスが欠落している、アプリのアップデートによって新しいインデックスが追加された、データベース操作が失敗した、またはこのコマンドで解決できなかったスキーマの不一致が発生している可能性があります。

インデックスの欠落と、列または主キーの欠落を混同しないでください。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バックアップガイド」を参照してください。これらの安定版ページでは、2026年10月6日時点の最新マニュアルはNextcloud Server 35であると記載されています。パス、オプション、およびパッケージング手順は、他のリリースやデプロイメントタイプでは異なる場合があります。

コメントを残す

ノジマオンラインの個人情報漏えい:対象情報と利用者が確認すべき対策

ノジマオンラインの個人情報漏えい:対象情報と利用者が確認すべき対策

ノジマは2026年11月2日、会員管理システムへの不正アクセスと約700万件の情報漏えいを公表。対象サイト、暗号化パスワードとカード情報の違い、サービス休止状況、利用者の対策を11月3日時点で整理します。

ネットワーク上のデバイスを見つけるためのベスト10ピングスキャンツール

ネットワーク上のデバイスを見つけるためのベスト10ピングスキャンツール

迅速なLAN検出、クロスプラットフォームスキャン、IPアドレス管理のための10種類のpingスイープツールを比較します。スイープで何がわかるのか、何がわからないのかを理解しましょう。

パフォーマンス追跡に最適なネットワーク管理ツール6選

パフォーマンス追跡に最適なネットワーク管理ツール6選

SNMP対応範囲、マッピング、アラート、導入モデル、コストのトレードオフなど、パフォーマンス監視のための6つのネットワーク管理ツールを比較します。

Ping Monitor:ネットワーク可用性を確認するための7つの無料オープンソースツール

Ping Monitor:ネットワーク可用性を確認するための7つの無料オープンソースツール

フルネットワークスイートからレイテンシに特化したプローブまで、7つの無料オープンソースpingモニターを比較し、可用性、パケット損失、履歴など、ニーズに最適なものを選びましょう。

Windows、iOS、Android向けのおすすめWi-Fiアナライザー

Windows、iOS、Android向けのおすすめWi-Fiアナライザー

Windows、iPhone、Android向けのWi-Fiアナライザーのおすすめを比較検討しましょう。チャネルの混雑状況、信号カバレッジ、ヒートマップ、ネットワークのトラブルシューティングツールなどが含まれています。

安全なファイル転送のための最適なSFTPサーバーソフトウェア

安全なファイル転送のための最適なSFTPサーバーソフトウェア

WindowsおよびLinux向けの信頼性の高いSFTPサーバーソフトウェア(OpenSSH、Bitvise、SolarWinds、SFTPGoなど)を比較検討しましょう。セキュリティとファイル転送のニーズに最適なソフトウェアを見つけてください。

デバイスとIPアドレスを検出するためのベストネットワークスキャナーツール10選

デバイスとIPアドレスを検出するためのベストネットワークスキャナーツール10選

迅速なデバイス検出、クロスプラットフォームIPスキャン、エンタープライズIPAMを実現するネットワークスキャナーツールを比較し、それぞれのオプションをネットワークに合わせて選択するためのガイダンスを提供します。

ネットワークチーム向けのおすすめIPアドレス管理ツール7選

ネットワークチーム向けのおすすめIPアドレス管理ツール7選

サブネット検出、DNSとDHCPの連携、ネットワークインベントリ、オープンソースIPAMに対応した7つのIPアドレス管理ツールを比較します。

ネットワーク監視のベストプラクティス:追跡すべき項目と使用すべきツール

ネットワーク監視のベストプラクティス:追跡すべき項目と使用すべきツール

明確なデバイスカバレッジ、有用なパフォーマンス指標、実用的なアラート、そしてSolarWinds NPM、PRTG、OpManagerの比較機能を備えた、実用的なネットワーク監視システムを構築します。

デバイス、ホスト、トラフィックを監視するためのLinuxネットワーク監視ツール6選

デバイス、ホスト、トラフィックを監視するためのLinuxネットワーク監視ツール6選

SNMPデバイス検出、インターフェースグラフ、ホストメトリック、サービスチェック、トラフィックフローに関する6つのLinuxネットワーク監視ツールを比較します。