다음을 통해 공유


Azure Portal을 사용하여 Azure PostgreSQL-Flexible 서버를 파일로 복원

이 문서에서는 Azure Portal을 사용하여 백업된 파일로 Azure PostgreSQL-Flexible 서버를 복원하는 방법을 설명합니다.

필수 구성 요소

PostgreSQL용 Azure 데이터베이스 유연한 서버 백업에서 복원하기 전에 다음 필수 구성 요소를 검토하세요.

  • 복원 작업에 필요한 권한이 있는지 확인합니다.

  • 백업 데이터는 Microsoft 테넌트 내의 Blob으로 백업 자격 증명 모음에 저장됩니다. 복원 작업 중에 백업 데이터는 테넌트 간 한 스토리지 계정에서부터 다른 스토리지 계정으로 복사됩니다. 복원의 대상 스토리지 계정의 AllowCrossTenantReplication 속성이 true로 설정되어 있는지 확인합니다.

  • 백업을 파일로 복원할 대상 스토리지 계정이 공용 네트워크를 통해 액세스할 수 있는지 확인합니다. 스토리지 계정이 비공개 엔드포인트를 사용하는 경우에는 복원 작업을 실행하기 전에 공용 네트워크 액세스 설정을 업데이트하세요.

Azure PostgreSQL 복원 - 유연한 서버 백업을 파일로

비고

복원 작업은 다음 두 단계 프로세스입니다.

  1. 백업 볼트에서 스토리지 컨테이너로 백업을 복원합니다.
  2. 스토리지 컨테이너에서 새 또는 기존 유연한 서버로 백업 파일을 복원합니다.

Azure PostgreSQL-Flexible 데이터베이스를 복원하려면 다음 단계를 수행합니다.

  1. 백업 자격 증명 모음>백업 인스턴스로 이동합니다. 복원할 PostgreSQL - 유연한 서버를 선택하고 복원을 선택합니다.

    또는 백업 센터로 이동하여 복원을 선택합니다.

  2. 복원 지점 선택을 사용하여 복원하려는 시점을 선택합니다. 기간을 선택하여 날짜 범위를 변경합니다.

  3. 복원 매개 변수 탭에서 대상 스토리지 계정 및 컨테이너를 선택합니다. 유효성 검사를 선택하여 최종 검토 및 복원 전에 복원 매개 변수 권한을 확인합니다.

  4. 유효성 검사가 성공하면 검토 + 복원을 선택합니다.

  5. 매개 변수를 최종 검토한 후 복원 을 선택하여 대상 스토리지 계정에서 선택한 PostgreSQL - 유연한 서버 백업을 복원합니다.

  6. 복원 작업을 제출하고 백업 작업에서 트리거된 작업을 추적합니다.

복원 작업이 성공적으로 완료되면 스토리지 계정 컨테이너로 이동하여 PostgreSQL – 유연한 서버에서 복원된 데이터베이스를 파일(.sql 파일)로 봅니다. 또한 Azure Backup은 다음 백업 파일을 생성합니다.

  • Database.sql file 데이터베이스당: 특정 데이터베이스에 대한 데이터 및 스키마 정보를 포함합니다.

  • Roles.sql files 전체 인스턴스의 경우: 서버 수준에 있는 모든 역할 정보를 포함합니다.

  • Tablespace.sql file: 테이블스페이스 파일입니다.

  • Schema.sql file: 서버의 모든 데이터베이스에 대한 스키마 정보를 포함합니다.

    비고

    스키마가 이미 스크립트의 일부이므로 PostgreSQL - 유연한 서버에서 이 스크립트를 database.sql 실행하지 않는 것이 좋습니다.

스토리지 컨테이너에서 새 또는 기존 PostgreSQL – 유연한 서버로 백업 파일 복원

스토리지 컨테이너에서 새 또는 기존 PostgreSQL – 유연한 서버로 백업 파일을 복원하려면 다음 단계를 수행합니다.

  1. 필요한 모든 확장이 새 대상 유연한 서버에서 사용하도록 설정되어 있는지 확인합니다.

  2. Azure Portal의 서버 매개 변수 섹션에 액세스하고 그에 따라 값을 수동으로 업데이트하여 원본 PostgreSQL 데이터베이스의 서버 매개 변수 값을 Azure Database for PostgreSQL과 일치합니다. 매개 변수 변경 내용을 저장한 다음 Azure Database for PostgreSQL - 유연한 서버를 다시 시작하여 새 구성을 적용합니다.

  3. 새 서버에서 Microsoft Entra 인증 이 필요한 경우 사용하도록 설정하고 관련 Microsoft Entra 관리자를 만듭니다.

  4. 복원을 위한 새 데이터베이스를 만듭니다.

    비고

    데이터베이스를 복원하기 전에 비어 있는 새 데이터베이스를 만들어야 합니다. 사용자 계정에 CREATEDB 권한이 있는지 확인합니다.

    데이터베이스를 만들려면 명령을 사용합니다 CREATE DATABASE Database_name .

  5. 대상 관리자 사용자로 사용하여 database.sql file 데이터베이스를 복원합니다.

  6. 대상 데이터베이스를 만든 후 다음 명령을 실행하여 Azure Storage 계정에서 덤프 파일을 다운로드합니다.

    az storage blob download --container-name <container-name> --name <blob-name> --account-name <storage-account-name> --account-key <storage-account-key> --file <file-name>
    
  7. 그런 다음, 다음 명령을 실행하여 덤프 파일에서 이 데이터베이스의 데이터를 복원합니다.

    pg_restore -h <postgres-server-url> -p <port> -U <username> -d <database-name> --no-owner -v <File Name>
    
    • --account-name: 대상 스토리지 계정의 이름입니다.
    • --container-name: Blob 컨테이너의 이름입니다.
    • --blob-name: Blob의 이름입니다.
    • --account-key: 스토리지 계정 키입니다.
    • -Fd: 디렉터리 형식입니다.
    • -j: 작업의 수입니다.
    • -C: 명령으로 출력을 시작하여 데이터베이스 자체를 만든 다음, 다시 연결합니다.

    비고

    명령이 예상대로 실행되지 않는 경우 파일 이름만 사용하는 대신 전체 파일 경로를 지정합니다.

    또는 백업 파일을 다운로드하고 복원을 직접 실행할 수 있습니다.

  8. 필요한 역할 및 권한만 복원하고 일반적인 오류를 무시합니다. 규정 준수 요구 사항 및 데이터 검색에 대한 복원을 로컬 관리자로 수행하는 경우 이 단계를 건너뜁니다.

복원된 데이터베이스에 대한 역할 및 사용자 복원

보관된 백업은 주로 테스트 및 감사와 같은 규정 준수 목적을 위해 복원됩니다. 로컬 관리자로 로그인하고 파일을 사용하여 database.sql 복원할 수 있습니다. 데이터 검색에는 다른 역할이 필요하지 않습니다.

실수로 인한 삭제 보호 또는 재해 복구와 같은 다른 용도의 경우 조직의 요구에 따라 필요한 역할을 만들어야 합니다. 와 roles.sql. 사이의 database.sql 중복을 방지합니다.

  • 동일한 유연한 서버 복원: 역할 복원이 필요하지 않을 수 있습니다.
  • 다른 유연한 서버로 복원: 파일을 사용하여 roles.sql 필요한 역할을 다시 만듭니다.

roles.sql할 때 복원하면 일부 역할 또는 속성이 새 대상 서버에 유효하지 않을 수 있습니다.

슈퍼 사용자 액세스(온-프레미스 또는 VM)가 있는 환경의 경우 모든 명령을 원활하게 실행할 수 있습니다.

유연한 서버 시나리오에 대한 주요 고려 사항

주요 고려 사항은 다음과 같습니다.

  • Superuser-Only 특성 제거: 유연한 서버에는 슈퍼 사용자 권한이 없습니다. 그러므로 역할 덤프에서 NOSUPERUSERNOBYPASSRLS와 같은 특성을 제거합니다.
  • Service-Specific 사용자 제외: 유연한 서버 서비스( azure_su,, azure_pg_admin, replicationlocaladmin,Entra Admin)와 관련된 사용자를 제외합니다. 이러한 특정 서비스 역할은 관리자가 새 유연한 서버에 추가될 때 자동으로 다시 만들어집니다.

데이터베이스 개체를 복원하기 전에 역할을 적절하게 덤프하고 정리해야 합니다. 이 작업을 수행하려면 스토리지 컨테이너에서 스크립트를 roles.sql다운로드하고 필요한 모든 로그인을 만듭니다.

  • 비 Entra 역할 만들기: 로컬 관리자 계정을 사용하여 역할 만들기 스크립트를 실행합니다.
  • Microsoft Entra 역할 만들기: Microsoft Entra 사용자에 대한 역할을 만들어야 하는 경우 Microsoft Entra 관리자 계정을 사용하여 필요한 스크립트를 실행합니다.

다음 스크린샷과 같이 스토리지 계정에서 역할 스크립트를 다운로드할 수 있습니다.

출력 파일을 roles.sql 마이그레이션할 때 새 환경에 적용되지 않는 특정 역할 및 특성이 포함될 수 있습니다. 다음을 고려해야 합니다.

  • 슈퍼 사용자만 설정할 수 있는 특성 제거: 슈퍼 사용자 권한이 없는 환경으로 마이그레이션하는 경우 역할 덤프에서 NOSUPERUSERNOBYPASSRLS 와 같은 특성을 제거합니다.
  • 서비스별 사용자 제외: 단일 서버 서비스 사용자(예: azure_superuser 또는 azure_pg_admin. 이는 서비스와 관련이 있으며 새 환경에서 자동으로 만들어집니다.

다음 sed 명령을 사용하여 역할 덤프를 정리합니다.

sed -i '/azure_superuser/d; /azure_pg_admin/d; /azuresu/d; /^CREATE ROLE replication/d; /^ALTER ROLE replication/d; /^ALTER ROLE/ {s/NOSUPERUSER//; s/NOBYPASSRLS//;}' roles.sql

이 명령은 azure_superuser, azure_pg_admin, azuresu가 포함된 줄과 CREATE ROLE 복제 및 ALTER ROLE 복제로 시작하는 줄을 삭제하고, ALTER ROLE 문에서 NOSUPERUSERNOBYPASSRLS 특성을 제거합니다.

다음 단계

Azure Portal을 사용하여 Azure PostgreSQL - 유연한 서버의 백업을 관리합니다.