주요 콘텐츠

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

Polyspace Access 데이터베이스 백업

Polyspace® Access™ 데이터베이스의 백업을 생성하려면 pg_dumpall PostgreSQL® 유틸리티를 사용하세요. 이 유틸리티는 데이터베이스 덤프를 생성합니다. 그러면 덤프가 생성된 시점부터 데이터베이스 상태를 복원할 수 있습니다. pg_dumpall 유틸리티는 Polyspace Access의 polyspace-access-db-0-main 컨테이너에서 사용할 수 있습니다.

데이터베이스 크기와 사용 빈도에 따라 백업 생성 빈도에 대한 정책을 설정하십시오. 데이터베이스 백업이나 복원을 수행하는 동안 사용자는 Polyspace Access와 상호 작용할 수 없습니다. 백업 또는 복원 작업을 시작하기 전에 사용자에게 알립니다.

데이터베이스 백업 생성

데이터베이스 백업을 생성할 때 pg_dumpall 유틸리티는 데이터베이스를 재구성하는 데 사용하는 SQL 명령 목록을 생성합니다. 백업 작업에는 슈퍼유저 권한이 필요합니다. 권한은 PostgreSQL을 통해 설정되며 시스템의 사용자 권한과는 별개입니다. 예를 들어 데이터베이스 덤프를 생성하고 backup_db.sql로 저장하려면 Polyspace Access Database 서비스를 호스팅하는 머신에서 터미널을 열고 다음 단계를 따르세요. 이 워크플로는 모든 Polyspace Access 서비스가 실행 중이라고 가정합니다.

  1. 백업에 일부 데이터나 손상된 데이터가 포함되지 않도록 하려면 백업 작업을 시작하기 전에 Polyspace Access ETLPolyspace Access Web Server 서비스를 중지하세요. 터미널에서 다음 명령을 입력합니다.

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

    참고

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

  2. 데이터베이스 백업을 생성하여 backup_db.sql에 저장합니다.

    docker exec polyspace-access-db-0-main pg_dumpall -U postgres > backup_db.sql
    docker exec 명령은 polyspace-access-db-0-main 컨테이너 내에서 pg_dumpall 유틸리티를 실행합니다. -U는 수퍼유저 postgres를 지정합니다. 그러면 pg_dumpall의 출력이 backup_db.sql로 저장됩니다.

    생성된 백업 파일을 압축할 수도 있습니다. 예를 들어 백업을 생성하고 gzip를 사용하여 압축하려면 다음 명령을 입력합니다.

    docker exec polyspace-access-db-0-main pg_dumpall -U postgres | gzip > backup_db.gz

    참고

    대규모 데이터베이스에서 pg_dumpall를 사용하면 일부 운영 체제에서 최대 파일 크기 제한을 초과하는 파일이 생성될 수 있으며 시간이 많이 걸릴 수 있습니다.

  3. 백업이 완료되면 이 명령을 사용하여 Polyspace Access ETLPolyspace Access Web Server 서비스를 다시 시작하세요.

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

    스크립트를 사용하여 데이터베이스 백업을 생성하는 경우 스크립트가 pg_dumpall 오류를 올바르게 처리하는지 확인하세요. 스크립트에 오류가 발생하면 컨테이너를 다시 시작하는 명령이 실행되지 않을 수 있습니다.

백업에서 데이터베이스 복원

데이터베이스 백업에서 데이터를 복구하려면 psql 유틸리티를 사용하십시오. 이 유틸리티는 polyspace-access-db-main 컨테이너에서 사용할 수 있습니다. 이 작업은 Polyspace Access 프로젝트에 대한 데이터와 사용자 권한을 복원합니다. 예를 들어, backup_db.sql 파일에 저장된 백업에서 데이터베이스를 복원할 수 있습니다. Cluster Admin 인터페이스의 일부 단계를 완료합니다. 다른 단계에서는 Polyspace Access Database 서비스를 호스팅하는 서버에 터미널이 필요합니다. Linux®에서는 이 작업을 완료하려면 수퍼유저 권한이 필요할 수 있습니다.

  1. Polyspace Access ETLPolyspace Access Web Server 서비스를 중지합니다. 터미널에서 다음 명령을 입력합니다.

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

  2. Polyspace Access 데이터베이스가 저장된 폴더를 삭제한 후 Polyspace Access Database 서비스를 다시 시작합니다.

    sudo rm -rf databaseFolderPath
    docker restart polyspace-access-db-0-main
    databaseFolderPath는 Admin Cluster Settings에 있는 Polyspace Access Database 서비스의 Data volume 필드에 지정하는 폴더 경로입니다. 예:

    /local/Polyspace/R2020b/appdata/polyspace-access/db

    Data volume 필드에 폴더 경로 대신 볼륨 이름을 지정하는 경우(예: polyspace-data) 다음 명령을 사용하여 데이터베이스 서비스를 중지하고, 볼륨을 삭제하고, 새 볼륨을 생성하고, 데이터베이스 서비스를 다시 시작합니다.

    docker stop polyspace-access-db-0-main
    docker volume rm polyspace-data
    docker volume create polyspace-data
    docker restart polyspace-access-db-0-main

  3. backup_db.sql에서 데이터베이스를 복원합니다. 터미널에서 다음 명령을 입력합니다.

    docker exec -i polyspace-access-db-0-main psql -U postgres postgres <backup_db.sql
    백업을 압축 파일에 저장한 경우 파일의 압축을 푼 다음 해당 콘텐츠를 docker exec 명령으로 파이프합니다. 예를 들어, gzip를 사용하는 경우 이 명령을 사용하여 backup_db.gz 파일에서 데이터베이스를 복원합니다.
    gzip -cd backup_db.gz | docker exec -i polyspace-access-db-0-main psql -U postgres postgres

    참고

    대용량 데이터베이스의 압축 해제된 백업 파일은 일부 운영 체제에서 최대 파일 크기 제한을 초과할 수 있습니다.

  4. Cluster Admin 인터페이스에서 Restart Apps를 클릭하여 모든 서비스를 시작합니다.

서비스가 시작된 후 웹 브라우저에서 Polyspace Access 인터페이스를 열어서 백업을 생성할 때 데이터베이스에 저장된 프로젝트를 확인하세요.

또는 WAL(write ahead log) 파일을 사용하여 데이터베이스의 증분 백업 및 복구를 수행할 수 있습니다. WAL은 데이터베이스에 대한 모든 변경 사항을 기록합니다. 시스템은 몇 개의 WAL 파일만 저장하고 오래된 파일을 재활용합니다.

기본 백업을 생성하고 모든 후속 WAL 파일을 저장하면 기본 백업을 만든 시점과 현재 시점 사이의 어느 시점까지 WAL 시퀀스를 재생하여 데이터베이스를 복원할 수 있습니다. 증분 백업을 구성하는 방법의 예는 지속적 보관 및 특정 시점 복구(PITR)를 참조하세요.

참고 항목

도움말 항목