주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Polyspace Access 데이터베이스 정리

Polyspace® Access™ 데이터베이스의 성능을 최적화하려면 오래되거나 사용되지 않는 프로젝트 삭제 및 데이터베이스 배큠(vacuum)과 같은 정기적인 데이터베이스 정리 작업을 수행하세요. 정리 작업을 수행하기 전에 데이터베이스를 백업하는 것이 좋습니다. 데이터베이스 백업 생성 항목을 참조하십시오.

프로젝트 실행 또는 전체 프로젝트 삭제

Polyspace Access 웹 인터페이스의 Project Explorer에서 프로젝트를 삭제하려면 마우스 오른쪽 버튼 메뉴에서 Delete project를 클릭하거나 명령줄에서 polyspace-access -delete-project 명령을 사용합니다. Polyspace는 해당 프로젝트를 ProjectsWaitingForDeletion 폴더로 이동합니다. 해당 프로젝트에 업로드한 모든 실행을 포함한 프로젝트는 프로젝트를 명시적으로 삭제할 때까지 데이터베이스에 남아 있습니다. 데이터베이스에서 프로젝트 삭제 항목을 참조하십시오.

ProjectsWaitingForDeletion 폴더는 Administrator 역할이 있는 Polyspace Access 사용자에게만 표시됩니다.

데이터베이스 크기를 관리하는 데 도움이 되도록 데이터베이스에서 이전 프로젝트 실행을 삭제하는 빈도에 대한 정책을 정의하십시오. 프로젝트별로 삭제 정책을 정의하고 다음을 기준으로 Polyspace가 이전 실행을 삭제하는 빈도를 지정할 수 있습니다.

  • 프로젝트 실행 기간 — 프로젝트 실행을 유지할 최대 일수(MAX_DAYS)를 지정합니다. 실행이 업로드된 이후의 일수가 MAX_DAYS 값을 초과하는 경우 Polyspace는 데이터베이스에서 실행을 삭제합니다.

  • 프로젝트의 실행 수 — 프로젝트에 유지할 최대 실행 수(MAX_RUNS)를 지정합니다. 프로젝트에 이미 MAX_RUNS 실행 수가 포함되어 있고 새 실행을 업로드하는 경우 Polyspace는 데이터베이스에서 프로젝트의 가장 오래된 실행을 삭제합니다.

Polyspace는 프로젝트에 새 실행을 업로드하는 경우에만 삭제 정책을 적용합니다. 프로젝트 실행 olderThanMaxDays의 연령이 MAX_DAYS의 값을 초과하지만 해당 프로젝트에 새로운 실행을 업로드하지 않으면 Polyspace는 실행 olderThanMaxDays를 삭제하지 않습니다.

Administrator 또는 Owner Polyspace Access 역할이 있는 경우에만 삭제 정책을 설정할 수 있습니다.

주의

데이터의 백업 복사본이 없으면 데이터베이스에서 삭제한 데이터를 복구할 수 없습니다.

사용자 인터페이스에서 삭제 정책 관리

Polyspace Access 인터페이스에서 삭제 정책을 설정, 설정 해제 또는 관리하려면 Project Explorer에서 프로젝트를 선택하고 Project Details 창에서 Deletion Policy 링크를 클릭하세요.

Deletion Policy link highlighted in the Project Explorer to open the Runs Deletion interface

Runs Deletion 창에서 다음을 수행할 수 있습니다.

  • 삭제 정책을 설정하려면 Custom를 선택하고 정책을 설정 해제하려면 None를 선택하세요.

  • Polyspace에서 프로젝트 실행 삭제에 대한 임계값으로 사용하는 최대 일수 및 최대 실행 수를 지정하여 삭제 정책을 관리합니다. 임계값을 하나 또는 둘 다 지정할 수 있습니다.

    두 임계값을 모두 지정하면 Polyspace는 해당 실행이 두 임계값 중 하나를 충족하는 경우 해당 프로젝트 실행을 삭제합니다.

  • 수동으로 삭제할 개별 프로젝트 실행을 선택하세요. 실행을 선택한 후 delete run를 클릭하여 데이터베이스에서 선택한 실행을 삭제합니다.

  • 삭제 정책에서 제외하려면 실행을 persistent로 설정하세요. 이 속성을 사용하여 관심 항목이 삭제되지 않도록 보호하세요. 예를 들어, 프로젝트에 업로드하는 첫 번째 실행을 베이스라인으로 유지하지만, 해당 프로젝트에 업로드하는 다른 모든 실행에는 삭제 정책을 적용할 수 있습니다. Polyspace는 최대 실행 삭제 정책을 적용할 때 영구 실행으로 설정한 실행은 계산하지 않습니다.

    실행을 persistent로 설정하려면 해당 실행에 해당하는 Persistent 열의 셀을 두 번 클릭하고 Yes를 선택합니다. 실행을 업로드할 때 명령줄에서 실행을 persistent로 설정할 수도 있습니다. 명령줄에서 삭제 정책 관리 항목을 참조하십시오.

    삭제 정책에서 실행을 제외하면 해당 실행은 명시적으로 삭제할 때까지 데이터베이스에 유지됩니다. 수동 삭제 실행을 선택하기 전에 persistent 설정을 해제하세요.

삭제 정책은 데이터베이스에서 프로젝트 실행만 자동으로 삭제합니다. 데이터베이스에서 프로젝트와 모든 실행을 삭제하려면 데이터베이스에서 프로젝트 삭제를 참조하세요.

명령줄에서 삭제 정책 관리

명령줄에서 삭제 정책을 관리하려면 다음 명령을 사용하세요.

명령 작업
polyspace-access -get-deletion-policy projectPath

프로젝트 경로가 projectPath인 프로젝트의 현재 삭제 정책을 확인합니다.

예를 들어 public/example_BF 프로젝트의 삭제 정책을 보려면 다음 명령을 사용합니다.

polyspace-access -get-delete-policy public/example_BF -host ...
Connecting to https://example-access-server:9443
Connecting as jsmith
Current deletion policy: MAX_RUNS 10
Command Completed

polyspace-access -set-deletion-policy projectPath

-max-runs MAX_RUNS -max-days MAX_DAYS

프로젝트 경로가 projectPath인 프로젝트의 삭제 정책을 설정하거나 편집합니다. 프로젝트 실행 기간, 프로젝트의 실행 수 또는 프로젝트 실행 삭제에 대한 임계값으로 실행 기간과 수를 모두 사용하도록 삭제 정책을 구성할 수 있습니다. 두 임계값을 모두 지정하면 Polyspace는 해당 실행이 두 임계값 중 하나를 충족하는 경우 해당 프로젝트 실행을 삭제합니다.

삭제 정책을 설정하면 Polyspace는 이후 업로드 시마다 해당 정책을 적용합니다. 프로젝트에 추가 실행을 업로드하지 않으면 Polyspace는 해당 실행이 삭제 정책 기준을 충족하더라도 실행을 삭제하지 않습니다.

예를 들어, Polyspace가 public/example_BF 프로젝트에서 30일이 지난 모든 실행을 삭제하는 정책을 설정하려면 다음 명령을 사용합니다.

polyspace-access -set-delete-policy public/example_BF -max-days 30 -host ...
Connecting to https://example-access-server:9443
Connecting as jsmith
Current deletion policy: MAX_RUNS 10
New deletion policy: MAX_DAYS 30
Command Completed
이 명령은 기존 삭제 정책을 덮어씁니다. 예를 들어, 프로젝트에 프로젝트당 10개의 실행만 허용하는 삭제 정책이 있는 경우(MAX_RUNS), 해당 프로젝트에 이전 명령을 적용하면 MAX_RUNS 조건이 덮어쓰이고 Polyspace는 MAX_DAYS 조건만 사용합니다.

polyspace-access -unset-deletion-policy projectPath

프로젝트 경로가 projectPath인 프로젝트의 현재 삭제 정책을 설정 해제합니다.

예를 들어 public/example_BF 프로젝트에 대한 삭제 정책을 설정 해제하려면 다음 명령을 사용합니다.

polyspace-access -unset-delete-policy public/example_BF -host ...
Connecting to https://example-access-server:9443
Connecting as jsmith
Current deletion policy: MAX_DAYS 30
New deletion policy: NONE
Command Completed

polyspace-access -upload resultPath -exclude-from-deletion

삭제 정책에서 업로드를 제외합니다. 관심 있는 프로젝트 실행이 삭제되지 않도록 보호하려면 이 옵션을 사용하세요. 예를 들어, 프로젝트에 업로드하는 첫 번째 실행을 베이스라인으로 유지하지만, 해당 프로젝트에 업로드하는 다른 모든 실행에는 삭제 정책을 적용할 수 있습니다. Polyspace는 최대 실행 삭제 정책을 적용할 때 삭제에서 제외한 실행은 계산하지 않습니다.

삭제 정책에서 실행을 제외하면 해당 실행은 명시적으로 삭제할 때까지 데이터베이스에 유지됩니다. 실행은 Polyspace Access 인터페이스의 Runs Deletion 창에 Persistent로 나타납니다. 명령줄에서 개별 실행을 수동으로 삭제할 수 없습니다.

삭제 정책은 프로젝트 실행만 삭제하도록 자동화합니다. 데이터베이스에서 프로젝트와 모든 실행을 삭제하려면 데이터베이스에서 프로젝트 삭제

데이터베이스에서 프로젝트 삭제

Polyspace Access 사용자이고 Owner 또는 Administrator 역할이 있는 경우, 데이터베이스에서 프로젝트를 영구적으로 제거하지 않고도 프로젝트를 삭제할 수 있습니다.

  • 사용자 인터페이스에서 Project explorer의 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Delete Project를 선택합니다.

  • 명령줄에서 -delete-project 또는 -move-project 명령을 사용하여 해당 프로젝트를 ProjectsWaitingForDeletion 폴더로 이동합니다.

Polyspace는 프로젝트와 모든 실행을 ProjectsWaitingForDeletion 폴더로 이동합니다. 이 폴더는 Administrator 역할의 Polyspace Access 사용자에게만 표시됩니다.

데이터베이스에서 프로젝트와 모든 실행을 영구적으로 삭제하려면 다음 안내를 따르세요.

  • 사용자 인터페이스에서 ProjectsWaitingForDeletion 폴더의 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Empty Folder를 선택합니다.

  • 명령줄에서 polyspace-access -delete-project 명령을 사용하고 ProjectsWaitingForDeletion 폴더에 프로젝트를 지정합니다.

    예를 들어, 이 명령은 데이터베이스에서 myProj 프로젝트를 삭제합니다.

    polyspace-access -delete-project ProjectsWaitingForDeletion/myProj -host example-access-server:9443
    login: jsmith
    password:
    Connecting to https://example-access-server:9443
    Connecting as jsmith
    Deletion requested for project "ProjectsWaitingForDeletion/example_project"
    PROJECT_DELETED ProjectsWaitingForDeletion/example_project
    Command Completed

Polyspace Access 사용자 역할이 Administrator인 경우에만 이 작업을 수행할 수 있습니다.

삭제된 프로젝트 복원

Administrator 역할의 Polyspace Access 사용자는 Project Explorer의 다른 폴더로 이동하거나 polyspace-access -move-project 명령을 사용하여 ProjectsWaitingForDeletion 폴더에 있는 삭제된 프로젝트를 복원할 수 있습니다.

데이터베이스의 백업 복사본이 없으면 데이터베이스에서 삭제된 프로젝트를 복원할 수 없습니다.

PSCAUTO 스크립트를 삭제 정책으로 전송

PSCAUTO 스크립트를 사용하여 데이터베이스 정리를 관리하고 Polyspace Access R2023b 이상으로 업데이트하는 경우, Polyspace는 특정 프로젝트에 할당된 스크립트를 해당 프로젝트의 삭제 정책으로 전송합니다.

예를 들어, public/Bug_Finder_Example (Bug Finder) 프로젝트에 할당되고 프로젝트의 최대 실행 수를 10개 실행으로 설정하는 다음 PSCAUTO 스크립트를 고려해 보세요.

assign_to_project "public/Bug_Finder_Example (Bug Finder)" AFTER_STATISTICS myScript
clean_project "public/Bug_Finder_Example (Bug Finder)" MAXRUNS 10
Polyspace Access 버전을 업그레이드한 후 Polyspace Access 사용자 인터페이스에서 프로젝트 public/Bug_Finder_Example (Bug Finder)의 삭제 정책을 보거나 명령 polyspace-access -get-deletion-policy를 사용하면 프로젝트의 삭제 정책이 스크립트의 명령(MAX_RUNS=10)과 일치함을 확인할 수 있습니다.

Polyspace는 assign_to_project 명령을 사용하지 않는 PSCAUTO 스크립트를 전송하지 않습니다. 일반적으로 이 스크립트는 Polyspace Access에 결과를 업로드할 때마다 실행하는 대신 한 번만 실행하면 됩니다.

Polyspace Access의 R2023b 이상 버전에서는 PSCAUTO 스크립트를 사용하여 데이터베이스 정리를 관리할 수 없습니다.

데이터베이스 배큠(vacuum) 수행

데이터베이스 테이블의 행을 업데이트하거나 삭제하는 명령을 실행할 때 다른 데이터베이스 트랜잭션이 여전히 이전 버전의 행을 사용할 수 있으므로 명령은 테이블에서 행을 제거하지 않습니다. 데이터베이스 트랜잭션에서 더 이상 사용되지 않는 이전 행의 디스크 공간을 회수하려면 PostgreSQL vacuumdb 명령을 사용합니다. 데이터베이스에 정기적으로 배큠 작업을 수행하면 데이터베이스 디스크 공간이 너무 커지거나 조각화되는 것을 방지할 수 있습니다.

배큠 작업을 수행하기 전에 Polyspace Access에 연결된 사용자가 없는지 확인한 다음, Polyspace Access 웹 서버와 ETL 서비스를 중지하세요. 서비스를 중지하려면 해당 서비스를 호스팅하는 서버의 터미널에서 다음 명령을 사용하고 다음을 입력합니다.

docker stop polyspace-access-etl-0-main polyspace-access-web-server-0-main

참고

Polyspace Access 버전 R2021b 이하를 실행하는 경우 Docker 컨테이너 이름이 다를 수 있습니다. 현재 실행 중인 컨테이너의 이름을 보려면 docker ps --format '{{.Names}}' 명령을 사용합니다.

Polyspace Access 데이터베이스에서 정기적인 배큠 작업을 수행하려면 데이터베이스를 호스팅하는 서버에서 터미널을 열고 다음을 입력하세요.

docker exec polyspace-access-db-0-main vacuumdb -U postgres prs_data

vacuumdb 명령을 실행하고 --analyze 옵션을 사용하여 PostgreSQL 서버 통계를 업데이트할 수도 있습니다. 정확한 서버 통계는 데이터베이스 성능 저하를 방지하는 데 도움이 됩니다. 데이터베이스를 호스팅하는 서버에서 터미널을 열고 다음을 입력하세요.

docker exec polyspace-access-db-0-main vacuumdb -U postgres --analyze prs_data

데이터베이스 테이블의 크기를 최소화하고 사용되지 않은 공간을 운영 체제에 반환하려면 --full 옵션을 사용하여 vacuumdb를 실행하여 전체 배큠 작업을 수행합니다. 데이터베이스를 호스팅하는 서버에서 터미널을 열고 다음을 입력하세요.

docker exec polyspace-access-db-0-main vacuumdb -U postgres --full prs_data
이 작업은 시간이 오래 걸릴 수 있으며 빈 공간이 없는 새 버전의 테이블을 작성합니다. 전체 배큠 작업을 수행할 때는 다른 데이터베이스 프로세스를 병렬로 실행할 수 없습니다. 전체 배큠 작업을 수행하는 동안에는 데이터베이스에 액세스할 수 없습니다.

정기적인 정리와 전체 배큠 작업을 얼마나 자주 수행할지에 대한 정책을 설정하세요. 예를 들어, 매주 정기적인 배큠 작업을 수행하십시오.

배큠 작업이 완료되면 Polyspace Access 웹 서버와 ETL 서비스를 다시 시작하세요. 다음 명령을 사용하십시오.

docker start polyspace-access-etl-0-main polyspace-access-web-server-0-main
웹 서버 서비스를 다시 시작한 후 웹 브라우저에서 Polyspace Access을 열려면 잠시 기다려야 할 수도 있습니다.

참고 항목

| | |

도움말 항목