IBM Cloud Docs
특정 시점 복구

특정 시점 복구

IBM Cloud® Databases for MySQL은 지난 7일의 원하는 시간 동안 특정 시점 복구(PITR)를 제공합니다. 배포는 계속해서 점진적으로 백업하고 트랜잭션을 재생하여 7일 동안 필요한 시점에 백업에서 복원된 새 배포를 가져올 수 있습니다.

배포 UI의 백업 탭에는 모든 PITR 정보가 특정 시점 복구 아래에 보관됩니다.

포함된 정보는 PITR의 가장 빠른 시간입니다. CLI를 통해 가장 빠른 복구 지점을 발견하려면 cdb mysql earliest-pitr-timestamp 명령을 사용하십시오.

ibmcloud cdb mysql earliest-pitr-timestamp <deployment name or CRN>

API를 통해 가장 빠른 복구 지점을 검색하려면 /deployments/{id}/point_in_time_recovery_data 엔드포인트를 사용하여 가장 빠른 PITR 시간을 찾으십시오.

{
    "point_in_time_recovery_data": {
        "earliest_point_in_time_recovery_time": "2019-09-09T23:16:00Z"
    }
}

복구

백업이 새 배치로 복원됩니다. 새 배치가 프로비저닝을 완료한 후 백업 파일의 데이터가 새 배치로 복원됩니다. 백업은 API를 통해서만 그리고 복원을 실행 중인 사용자가 소스와 대상 계정 모두에 액세스할 수 있는 경우에만 계정 전체에서 복원될 수 있습니다.

기본적으로 새 배치는 복원하고 있는 백업을 작성할 때의 소스 배치와 동일한 디스크 및 메모리 할당으로 크기가 자동 지정됩니다. 특히 PITR의 경우 현재 배치 크기가 아닐 수도 있습니다. 새 배치에 할당된 리소스를 조정해야 하는 경우 UI, CLI 또는 API의 선택적 필드를 사용하여 새 배치의 크기를 조정하십시오. 데이터 및 워크로드에 대해 충분히 할당하십시오. 배치에 충분한 리소스가 제공되지 않으면 복원에 실패합니다.

스토리지 및 메모리는 소스 배치와 동일하게 복원되지만 특정 인스턴스 구성은 새 인스턴스에 대해 자동으로 설정되지 않습니다. 이 경우 복원 후에 구성을 재실행해야 할 수도 있습니다. 복원을 완료한 후 인스턴스가 정확히 설정되도록 복원 실행 전에 인스턴스 수정사항(shared_buffers, max_connections, deadlock_timeout, archive_timeout 등의 매개변수)을 기록해 두십시오.

백업이 복원되는 동안 소스 배포를 삭제하지 않는 것이 중요합니다. 이전 배포를 삭제하기 전에 새 배포가 프로비저닝되고 백업이 복원될 때까지 기다립니다. 배포를 삭제하면 해당 백업도 삭제되므로 복원이 실패할 뿐만 아니라 백업도 복구하지 못할 수 있습니다.

UI에서

PITR을 시작하려면 복원할 시간을 다시 협정 세계시(UTC)로 입력하십시오. 사용 가능한 가장 최근 시간으로만 복원하려면 해당 옵션을 선택합니다. 복원을 클릭하면 복구를 위한 옵션이 나타납니다. 새 배치의 이름을 입력하고 버전, 지역 및 할당된 리소스를 선택하십시오. 복구를 클릭하여 프로세스를 시작하십시오.

Key Protect 를 사용하고 키가 있는 경우 CLI를 사용하여 복구하십시오. 사용자 편의를 위해 명령이 제공됩니다.

CLI에서

리소스 제어기는 데이터베이스 배치의 프로비저닝을 지원하며 프로비저닝 및 복원은 리소스 제어기 CLI의 책임입니다. resource service-instance-create 명령을 사용하십시오.

PITR의 경우 point_in_time_recovery_timepoint_in_time_recovery_deployment_id 매개변수를 사용하십시오. point_in_time_recovery_deployment_id은(는) 소스 배치 ID이고 point_in_time_recovery_time은(는) 복원하려는 협정 세계시(UTC)의 시간소인입니다. 최근 사용 가능한 특정 시점으로 복원하려면 "point_in_time_recovery_time":" "을 사용하십시오.

ibmcloud resource service-instance-create <SERVICE_INSTANCE_NAME> <service-id> <region> -p '{"point_in_time_recovery_deployment_id":"DEPLOYMENT_ID", "point_in_time_recovery_time":"TIMESTAMP"}'

특정 백업 또는 PITR에 대한 사전 형식화된 명령은 백업의 상세 보기에서 사용할 수 있습니다.

선택적 매개변수는 CLI를 통해 복원할 때 사용할 수 있습니다. 리소스를 사용자 정의해야 하는 경우 이를 사용하거나 새 배치에서 BYOK 암호화를 위해 Key Protect 키를 사용하십시오.

ibmcloud resource service-instance-create <SERVICE_INSTANCE_NAME> <service-id> standard <region> <--service-endpoints SERVICE_ENDPOINTS_TYPE> -p
'{"point_in_time_recovery_deployment_id":"DEPLOYMENT_ID", "point_in_time_recovery_time":"TIMESTAMP","key_protect_key":"KEY_PROTECT_KEY_CRN", "members_disk_allocation_mb":"DESIRED_DISK_IN_MB", "members_memory_allocation_mb":"DESIRED_MEMORY_IN_MB", "members_cpu_allocation_count":"NUMBER_OF_CORES"}'

API에서

리소스 컨트롤러는 데이터베이스 배포의 프로비저닝을 지원하며, 프로비저닝 및 복원은 리소스 컨트롤러 API의 책임입니다. 자원 제어기 API를 사용하여 백업에서 복원하기 전에 자원 제어기 API를 사용하려면 필요한 단계 를 완료하십시오.

모든 정보가 있으면 작성 요청은 /resource_instances 엔드포인트에 대한 POST입니다.

curl -X POST   
  https://resource-controller.cloud.ibm.com/v2/resource_instances   
  -H 'Authorization: Bearer <>'   
  -H 'Content-Type: application/json'     
    -d '{
    "name": "<SERVICE_INSTANCE_NAME>",
    "target": "<region>",
    "resource_group": "<your-resource-group>",
    "resource_plan_id": "<service-id>",
    "parameters":{
      "point_in_time_recovery_time":"<TIMESTAMP>",
      "point_in_time_recovery_deployment_id":"<DEPLOYMENT_ID>"
    }
  }'

name, target, resource_groupresource_plan_id 매개변수는 모두 필수입니다. target은 새 배치가 있게 될 지역이며 소스 배치와 다른 지역입니다. eu-de 백업을 다른 지역으로 복원하는 경우를 제외하고 교차 지역 복원이 지원됩니다.

PITR의 경우 point_in_time_recovery_timepoint_in_time_recovery_deployment_id 매개변수를 사용하십시오. point_in_time_recovery_deployment_id는 소스 배치의 ID이고 point_in_time_recovery_time은 복원하려는 시간소인(UTC)입니다. 최근 사용 가능한 특정 시점으로 복원하려면 "point_in_time_recovery_time":" "을 사용하십시오.

리소스를 조정하거나 Key Protect 키를 사용해야 하는 경우 선택적 매개변수 key_protect_key, members_disk_allocation_mb, members_memory_allocation_mb 및/또는 members_cpu_allocation_count와 해당 값을 요청의 본문에 추가하십시오.

PITR 확인

올바른 복구 시간을 확인하려면 데이터베이스 로그를 확인하십시오. 데이터베이스 로그를 확인하려면 배치에 로깅 통합이 설정되어야 합니다.

복구를 수행할 때 데이터가 가장 최근의 증가분 백업에서 복원됩니다. WAL 로그의 미결 트랜잭션은 복구한 시점까지 데이터베이스를 파악하는 데 사용됩니다. 복구가 완료되고 트랜잭션이 실행된 후 로그에 메시지가 표시됩니다. 로그에 다음과 같은 메시지가 표시되는지 확인할 수 있습니다.

LOG:  last completed transaction was at log time 2019-09-03 19:40:48.997696+00

복구가 로그에 표시되지 않는 두 가지 시나리오가 있습니다.

  1. 배치에 최근 전체 백업이 있고 백업이 작성된 후 재생되어야 하는 활동이 없는 경우
  2. 복구 시간을 현재 시간 이후 또는 사용 가능한 최근 특정 시점 복구 지점을 지난 시간으로 입력한 경우

두 경우 모두 일반적으로 복구에 성공하지만 데이터베이스가 복원된 정확한 시간을 확인할 수 있는 항목이 로그에 없을 수 있습니다.