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데비안이나 우분투, apache페도라나 센티오스, http아치 리눅스에서는 운영 체제 계정이 흔히 사용됩니다.

Nextcloud의 OCC 가이드에 따르면 OCC occ는 서버의 명령줄 인터페이스이며 파일 소유권과 권한 일관성을 유지하기 위해 HTTP 사용자 계정으로 실행해야 합니다. www-data설치에 다른 계정을 사용하는 경우 OCC를 무턱대고 사용하지 마십시오.

누락된 인덱스를 미리 보고 추가하세요.

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 설명서에 설명되어 있습니다. 이전 버전에서 해당 옵션을 사용할 수 없는 경우, 임의로 옵션을 제거하기보다는 해당 버전의 명령 도움말을 확인하십시오.

드라이런 옵션을 사용하여 Nextcloud OCC missing-index 명령을 실행하는 Linux 터미널 화면입니다.
데이터베이스를 변경하기 전에 SQL 쿼리를 검사하려면 문서에 설명된 드라이런 옵션을 사용하십시오.

변경 사항을 적용할 준비가 되면 콜론(:) 없이 명령어를 실행하세요 --dry-run.

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

Nextcloud는 관련 테이블을 확인하고 진행 상황을 보고합니다. 완료될 때까지 기다리십시오. 큰 테이블의 처리 시간이 예상보다 오래 걸린다고 해서 프로세스를 중단하지 마십시오. 업그레이드 설명서에는 이 명령이 인스턴스가 온라인 상태를 유지하는 동안 실행할 수 있는 시간이 오래 걸리는 스키마 작업 중 하나로 나와 있으므로 일반적으로 이 복구 작업에는 유지 관리 모드를 활성화할 필요가 없습니다. 이 명령이 실행되는 동안 다른 데이터베이스 유지 관리 작업을 동시에 수행하지 마십시오.

Linux 터미널 화면에 missing-index 명령어가 파일 캐시 테이블을 확인하고 완료 메시지가 표시됩니다.
이 명령어는 데이터베이스 테이블을 확인하고 완료되면 셸로 돌아갑니다.

Nextcloud가 Docker에서 실행되는 경우

별도의 데이터베이스 컨테이너가 아닌 Nextcloud 애플리케이션 컨테이너에서 실행하십시오 . 일반적인 계정 이름으로 occ지정된 컨테이너의 경우 명령은 일반적으로 다음과 같습니다.nextcloudwww-data

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

<애플리케이션 컨테이너 이름> 부분을 실제 애플리케이션 컨테이너 이름으로 바꾸십시오 nextcloud. 이미지 또는 배포에서 다른 컨테이너 사용자, PHP 바이너리 또는 명령 래퍼를 사용하는 경우 해당 이미지의 설명서를 참조하여 HTTP 사용자 권한으로 명령을 실행하십시오.

경고 메시지가 사라졌는지 확인하십시오.

명령 실행이 완료되면 관리 설정 > 개요를 새로 고치세요 . Nextcloud에서 인덱스를 인식하면 누락된 인덱스 메시지가 사라집니다. 명령을 다시 실행해도 됩니다. 그러면 누락된 인덱스를 다시 추가할 필요 없이 완료됩니다. 이렇게 하면 스키마 검사가 완료되었음을 확인할 수 있지만, 전체 데이터베이스 성능을 측정하는 것은 아닙니다.

Nextcloud 스타일의 관리자 개요 화면에서 인덱스 누락 경고가 더 이상 표시되지 않습니다.
명령 실행이 완료되면 관리자 개요를 새로고침하고 데이터베이스 경고가 사라졌는지 확인하십시오.

경고 메시지가 계속 표시되는 경우

  1. 경고 메시지가 나타난 것과 동일한 Nextcloud 설치 환경 및 데이터베이스에서 명령을 실행했는지 확인하십시오. 유지 관리 컨테이너, 스테이징 인스턴스 또는 데이터베이스 컨테이너에서 명령을 실행하는 것이 일반적인 실수입니다.
  2. 명령어가 올바른 웹 서버 사용자 계정으로 실행되었는지, 그리고 웹 서버와 동일한 PHP 버전을 사용했는지 확인하십시오. Nextcloud는 CLI PHP 구성이 다르면 occ오류가 발생할 수 있다고 안내합니다.
  3. Nextcloud 35 이상 버전에서는 sudo -E -u www-data php occ db:schema:check스키마 차이를 검사하려면 다음 명령을 실행하십시오. 현재 참조 문서에 따르면 이 검사는 버전 35에서 추가되었습니다. 이전 버전에서는 해당 버전에 대해 문서화된 진단 도구를 사용하십시오.
  4. 누락된 인덱스가 타사 앱에 속하거나 명령 실행 시 오류가 발생하는 경우, 업데이트가 있으면 앱을 업데이트하고 Nextcloud 로그 및 명령 출력 결과를 검토한 후 앱 관리자 또는 Nextcloud 지원팀에 정확한 인덱스 및 테이블 이름을 알려주세요. CREATE INDEX앱 또는 데이터베이스 관리자가 정확한 스키마에 맞는 명령문을 제공하지 않는 한, 직접 명령문을 실행하지 마십시오.

운영 서버의 경우, 경고가 사라지고 애플리케이션이 정상적으로 작동할 때까지 데이터베이스 백업을 보관하십시오. Nextcloud의 업그레이드 안내에는 온라인 유지 관리 작업과 선택적 모의 실행에 대한 내용이 포함되어 있습니다.

댓글 남기기

Nextcloud의 누락된 데이터베이스 인덱스 경고를 지우세요

Nextcloud의 누락된 데이터베이스 인덱스 경고를 지우세요

Nextcloud의 OCC 복구 기능을 안전하게 실행하고, 데이터베이스 변경 사항을 미리 보고, 경고가 계속 표시되는 이유를 확인하십시오.

Nextcloud의 웹 업로드 제한을 2GB 이상으로 상향 조정하세요

Nextcloud의 웹 업로드 제한을 2GB 이상으로 상향 조정하세요

PHP, Nginx 또는 Apache, 임시 저장소 및 시간 초과 설정을 조정하여 Nextcloud 브라우저의 대용량 파일 업로드를 허용하고, 어떤 제한 사항이 파일 업로드를 차단하는지 확인하십시오.

Nextcloud 웹 서버의 PHP 메모리 경고를 해결하는 방법

Nextcloud에서 실제로 사용하는 PHP 메모리 제한을 설정하고, 해당 서비스를 재시작한 다음, 관리자 개요에서 512MB 설정이 제대로 되었는지 확인하십시오.

S3 호환 버킷을 Nextcloud 외부 스토리지에 연결하기

Nextcloud의 S3 백엔드를 사용하여 호환되는 객체 스토리지 버킷을 마운트하고, 올바른 엔드포인트, 자격 증명, 액세스 범위 및 검증 단계를 설정하십시오.

기존 스토리지를 손상시키지 않고 Nextcloud 데이터를 외장 드라이브로 옮기기

기존 스토리지를 손상시키지 않고 Nextcloud 데이터를 외장 드라이브로 옮기기

영구 UUID 마운트, 유지 관리 모드, 검증된 복사본 및 원본 경로 심볼릭 링크를 사용하여 Linux Nextcloud 데이터 디렉터리를 외부 드라이브로 안전하게 이동합니다.

Nextcloud 데이터베이스 업데이트 후 오류 발생 시 우선 확인 사항

SQL 오류를 진단하고, 데이터베이스 연결을 확인하고, 중단된 마이그레이션을 안전하게 완료하여 업데이트 후 Nextcloud 액세스를 복원하세요.

OCC를 사용하여 분실한 Nextcloud 관리자 암호를 재설정하세요

Nextcloud의 OCC 명령어를 사용하여 서버 셸에서 관리자 암호를 재설정하는 방법을 안내합니다. 사용자 이름, 권한 및 외부 로그인 공급자에 대한 지침도 제공됩니다.

Nextcloud를 제공하는 HTTPS 엔드포인트에 HSTS 헤더를 추가하세요.

Apache, NGINX 또는 TLS 프록시에서 헤더를 설정하여 Nextcloud의 HSTS 경고를 해제한 다음 공개 HTTPS 응답을 안전하게 확인하십시오.

Nextcloud 앱 설치 시 인터넷 연결이 안 된다는 오류 메시지 표시 문제 해결

Nextcloud 앱 설치 시 인터넷 연결이 안 된다는 오류 메시지 표시 문제 해결

Nextcloud 서버 자체의 DNS, HTTPS, 프록시, TLS 또는 구성 문제로 인해 App Store 설치가 실패하는 경우 원인을 추적하십시오.

예약 대기열을 사용하여 Nextcloud 미리보기의 CPU 사용량 급증을 제어하세요

썸네일 작업을 제어된 백그라운드 일정으로 이동하고, 사용하지 않는 미리보기 크기를 줄이고, Nextcloud 서버에 과부하를 주지 않고 대기열을 검증하세요.