새 주 버전으로 업그레이드

Databases for MongoDB 는 두 가지 업그레이드 경로를 제공합니다:

  • 새 메이저 버전으로의 인플레이스 업그레이드(현재 Standard Plan, MongoDB Enterprise MongoDB Plan에서 지원됨).
  • 백업에서 복원하기 (스탠다드 플랜 및 MongoDBMongoDB 엔터프라이즈 플랜에서 지원됨).

현업 주요 버전 업그레이드

현위치 주 버전 업그레이드를 사용하면 배포를 다음 새 주 버전으로 업그레이드할 수 있으므로 새 배포에 백업을 복원할 필요가 없습니다. 이 접근 방식은 배포를 재구성할 필요 없이 동일한 연결 문자열을 유지합니다. 그러나 새로운 메이저 버전에 애플리케이션 조정이 필요한 경우 이를 해결해야 합니다.

제자리 메이저 버전 업그레이드 기간(백업 포함) 동안 배포는 안전한 업그레이드를 위해 배포에 대한 읽기 작업만 허용하고 쓰기 작업은 허용하지 않는 setUserWriteBlockMode로 설정됩니다. 배포의 주요 버전 업그레이드가 완료되는 즉시 는 writeBlockMode 제거됩니다.

제자리에서 주요 버전 업그레이드를 수행할 때는 두 가지 옵션이 있습니다:

  • 백업과 함께 수행하는 인플레이스 메이저 버전 업그레이드: 이 경로는 실제 업그레이드 수행 전에 백업을 생성하여 추가적인 안전 계층을 제공합니다(엔터프라이즈 MongoDB 플랜의 유일한 옵션).

  • 백업 없이 현재 위치에서 주요 버전 업그레이드: 이 옵션은 미리 백업을 만들지 않고 업그레이드를 진행합니다. 제자리 업그레이드에 실패한 경우 최신 백업에서 새 배포로 배포를 복원해야 합니다.

    백업 없는 현 위치 업그레이드는 권장하지 않습니다. 업그레이드가 어느 단계에서든 실패하면 복원할 수 있는 즉각적인 백업이 없으므로 데이터가 손실될 수 있습니다.

    [특정 시점 복구](/docs/databases-for-mongodb?topic=databases-for-mongodb-pitr) 또한 [특정 시점 복구(PITR)오프라인 복원](/docs/databases-for-mongodb?topic=databases-for-mongodb-pitr#pitr-offline-restore) 는 해당 버전의 스냅샷이 완료되고 백업이 성공적으로 이루어질 때까지 일시적으로 사용할 수 없습니다. 이 스냅샷은 백업 목록에 표시되지 않습니다.
    

시작하기 전에

업그레이드 절차를 시작하기 전에 다음 사항을 고려하세요.

  • 업그레이드하기 전에 배포가 정상 상태여야 합니다.
  • 배포에는 최소 2GB의 디스크 여유 공간이 있어야 합니다.
  • 배포에는 다음 권한이 있는 사용자가 없어야 합니다 bypassWriteBlockingMode.
  • 원하는 버전을 지정하는 대신 다음 주요 버전으로만 업그레이드할 수 있습니다.
  • 각 주요 버전에는 이전 버전과 하위 호환되지 않을 수 있는 일부 기능이 포함되어 있습니다. 데이터베이스 공급업체의 릴리스 노트를 확인하여 애플리케이션에 영향을 미칠 수 있는 변경 사항을 확인하세요.
  • 배포를 이전 버전으로 다운그레이드하는 것은 지원되지 않습니다.
  • 제자리 메이저 버전 업그레이드는 일단 시작하면 취소할 수 없습니다.
  • MongoDB ( Enterprise Edition )의 경우, 업그레이드 전에 사용 가능한 백업이 적어도 하나 있어야 합니다.
  • MongoDB ( Enterprise Edition )의 경우, 인플레이스 주요 버전 업그레이드 후 이전 버전의 특정 시점(PITR)을 사용하여 복원 및 업그레이드를 수행하려면 두 단계로 나누어 진행해야 합니다.

UI에서 업그레이드

  1. 업그레이드 과정을 테스트하기 위해 새로운 Databases for MongoDB 를 생성합니다.
    동일한 버전의 기존 배포 환경에서 백업을 복원하여 배포 환경을 생성하십시오.

  2. 스테이징 애플리케이션을 테스트 배포 환경으로 연결하십시오.
    스테이징 애플리케이션을 테스트 배포 환경으로 가리키도록 업데이트하십시오. 테스트 애플리케이션이 준비 배포에 성공적으로 연결할 수 있는지, 애플리케이션이 예상대로 작동하는지 확인합니다. 스테이징 환경의 필요한 성능 및 운영 테스트를 수행합니다.

  3. ‘개요’ 페이지에서 ‘메인 버전 업그레이드’ 버튼을 클릭하여 테스트 배포 환경의 메인 버전을 업그레이드하세요.
    이렇게 하면 업그레이드 과정이 완료될 때까지 데이터베이스가 읽기 전용 모드로 전환됩니다. 업그레이드 만료 설정을 사용하여 유지 관리 기간 내에 업그레이드를 포함할 수 있도록 업그레이드가 완료되는 데 걸리는 시간을 기록해 두세요.

  4. 스테이징 애플리케이션이 새로운 데이터베이스 버전에서 정상적으로 작동하는지 확인하십시오.
    애플리케이션이 정상적으로 작동한다면, 이 단계를 통해 프로덕션 데이터베이스를 안전하게 업그레이드할 수 있음을 확인할 수 있습니다.

  5. 프로덕션 데이터베이스 배포 환경을 새 버전으로 업그레이드하십시오.
    새로운 버전의 데이터베이스를 사용하여 애플리케이션이 정상적으로 작동하는지 확인한 후에는 관리 콘솔로 돌아가 프로덕션 배포 환경을 업그레이드하는 절차를 시작할 수 있습니다. 개요 페이지의 배포 세부 정보 섹션에서 주 버전 업그레이드 버튼을 클릭하고 단계를 따릅니다.

    제자리 업그레이드 프로세스가 시작되면 중지하거나 롤백할 수 없습니다. 따라서 드물게 오류가 발생하면 데이터베이스 배포를 복구할 수 없게 될 수 있습니다. 따라서 새 배포로 복원하는 데 사용할 수 있는 백업을 만드세요. '백업을 통한 현 위치 주요 버전 업그레이드'를 선택하면 생성된 백업을 새 배포에서 복원하는 데 사용할 수 있습니다.

expiration for starting upgrade 에서 업그레이드 작업이 자동으로 취소되기 전에 시작해야 하는 '타임아웃' 기간을 설정할 수 있습니다. 또한 원하는 시간 내에 업그레이드가 완료될 수 있도록 미리 단계별 업그레이드를 테스트하세요. 예를 들어 1시간 이내에 업그레이드를 완료하고 싶은데 업그레이드를 테스트한 결과 30분이 걸리는 것으로 확인된 경우, 업그레이드 작업은 사용자가 업그레이드를 원하는 것을 확인한 후 30분 이내에 시작해야 합니다. 따라서 만료 시간을 30분으로 설정하여 해당 시간 내에 시작되지 않으면 창이 초과되지 않도록 하세요.

API를 통한 업그레이드

다음 명령을 사용하여 제자리에서 업그레이드하세요:

curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/version -H 'Authorization: Bearer <>' -H 'Content-Type: application/json' -d '{"version": "7.0"}'

expiration for starting upgrade 에서 업그레이드 작업이 자동으로 취소되기 전에 시작해야 하는 '타임아웃' 기간을 설정할 수 있습니다. 또한 원하는 시간 내에 업그레이드가 완료될 수 있도록 미리 단계별 업그레이드를 테스트하세요. 예를 들어 1시간 이내에 업그레이드를 완료하고 싶은데 업그레이드를 테스트한 결과 30분이 걸리는 것으로 확인된 경우, 업그레이드 작업은 사용자가 업그레이드를 원하는 것을 확인한 후 30분 이내에 시작해야 합니다. 따라서 지금부터 30분 후의 타임스탬프로 만료를 설정하여 해당 시간 내에 시작되지 않으면 창이 초과되지 않도록 합니다. 만료는 지금부터 5분(기본값)에서 24시간 사이여야 합니다. 자세한 내용은 Cloud Databases API를 참조하세요.

CLI를 통한 업그레이드

CDB 플러그인 버전 0.20.0 이상에서 사용할 수 있습니다.

배포에 허용된 업그레이드 및 복원 전환 목록을 보려면 다음과 같이 하세요:

ibmcloud cdb deployment-capability-show <NAME|CRN> versions

필수 매개변수를 사용하여 명령을 업그레이드하려면 다음과 같이 하세요:

ibmcloud cdb deployment-version-upgrade <NAME|CRN> <TARGET_VERSION>

명령 매개변수에 대한 자세한 내용을 보려면 여기를 클릭하세요:

ibmcloud cdb deployment-version-upgrade --help

expiration for starting upgrade 에서 업그레이드 작업이 자동으로 취소되기 전에 시작해야 하는 '타임아웃' 기간을 설정할 수 있습니다. 또한 원하는 시간 내에 업그레이드가 완료될 수 있도록 미리 단계별 업그레이드를 테스트하세요. 예를 들어 1시간 이내에 업그레이드를 완료하고 싶은데 업그레이드를 테스트한 결과 30분이 걸리는 것으로 확인된 경우, 업그레이드 작업은 사용자가 업그레이드를 원하는 것을 확인한 후 30분 이내에 시작해야 합니다. 따라서 만료 시간을 30분으로 설정하여 해당 시간 내에 시작되지 않으면 창이 초과되지 않도록 하세요. 만료는 지금부터 5분(기본값)에서 24시간 사이여야 합니다. CLI를 사용하여 만료를 설정하는 방법은 두 가지가 있습니다 --expire-in 또는 --expire-at. 자세한 내용은 해당 명령어의 도움말에서 확인하십시오.

Terraform을 통한 업그레이드

Terraform 프로바이더 버전 1.79.2 이상에서 사용할 수 있습니다.

업그레이드하려면 설정에서 version 값을 추가하거나 변경하면 됩니다. 백업을 건너뛰도록 설정할 수 있는 선택적 bool 플래그( version_upgrade_skip_backup)도 있습니다.

백업을 건너뛰는 것은 권장하지 않습니다. 버전 업그레이드 전에 백업을 건너뛰는 것은 위험하며, 업그레이드가 어느 단계에서든 실패할 경우 복원할 백업이 없어 데이터 손실이 발생할 수 있습니다.

업그레이드 중에는 데이터베이스가 읽기 전용 모드로 전환됩니다. 업그레이드하기 전에 테스트하는 것이 좋습니다.

업그레이드에는 기본 시간 초과보다 더 많은 시간이 필요할 수 있습니다. 타임아웃 속성을 사용하여 더 긴 타임아웃 값을 설정할 수 있습니다.

테라폼에는 만료 타임스탬프 대신 타임아웃이 있습니다. 따라서 타임아웃 업데이트 값이 만료로 사용되므로 타임아웃을 늘리세요. 예를 들어, 시간 제한을 20분으로 설정하면 만료가 20분으로 설정되고 해당 시간 내에 업그레이드가 시작되지 않으면 만료되고 업그레이드가 시작되지 않습니다. 최대 만료 시간은 24시간이므로 36시간으로 제한 시간을 설정했더라도 처음 24시간 이내에 시작하지 않으면 업그레이드가 만료됩니다.

업그레이드가 진행 중인 경우 일부 작업이 대기열에 추가될 수 있으며 버전 업그레이드가 완료될 때까지 진행되지 않을 수 있습니다.

문제점 해결

다음 사용자 bypassWriteBlockingMode

안전한 업그레이드를 보장하려면 백업 또는 업그레이드 중에 사용자가 쓰기 작업을 수행할 수 없어야 합니다. 데이터베이스가 쓰기 차단 모드로 들어가기 전에 사용자가 다음과 같은 권한을 가지고 있는지 확인합니다 bypassWriteBlockingMode. 이러한 사용자가 식별되면 작업은 실패 상태가 됩니다. 재시도는 실패하며 해당 권한이 있는 사용자를 제거해야만 제자리에서 메이저 버전 업그레이드를 실행할 수 있습니다.

장비상태 진단

서비스 인스턴스의 리소스가 부족한 경우 이러한 상황에서는 안전한 업그레이드를 보장할 수 없으므로 작업이 실패합니다. 모니터링 통합을 사용하여 리소스 소비를 평가할 수 있습니다. 모든 데이터베이스 구성 요소를 업그레이드할 수 없는 경우 업그레이드 작업이 실패합니다.

PITR 지원을 위해서는 MongoDBEnterprise Edition 갭이 없는 최신 스냅샷이 존재해야 하며, 업그레이드 중에는 스냅샷이 수행되지 않습니다. PITR이 보장되지 않으면 인플레이스 업그레이드가 실패합니다.

이러한 상태는 유지보수 또는 데이터베이스 사용으로 인해 발생할 수 있습니다. 상태 검사 실패로 실패한 작업은 나중에 다시 시도할 수 있습니다. 작업이 계속 실패할 경우 IBM Cloud 지원팀 에 지원 티켓을 제출하십시오.

백업에서 복원

데이터베이스의 주요 버전이 수명 종료(EOL)에 도달하기 전에 백업에서 새 데이터베이스 인스턴스로 복원하여 사용 가능한 다음 주요 버전으로 업그레이드하세요.

실행을 준비한 후 EOL 날짜 이전의 최신 버전으로 이주하십시오. 자세한 정보는 버전화 정책을 참조하십시오.

버전 롤백은 지원되지 않습니다.

Databases for MongoDB 에서 제공되는 MongoDB 의 최신 버전으로 업그레이드하세요. 카탈로그 페이지, Cloud Databases CLI 플러그인 명령 ibmcloud cdb deployables-show 또는 Cloud Databases API /deployables 엔드포인트에서 최신 버전을 찾으십시오.

업그레이드는 데이터 백업을 복원하여 새로운 배포 환경에 적용하는 방식으로 진행됩니다. 백업에서 복원하면 다음과 같은 다양한 이점이 있습니다.

  • 원래 데이터베이스는 계속 실행 중이며 프로덕션 작업이 중단될 수 있습니다.
  • 사용자는 프로덕션을 중단하고 새 데이터베이스를 테스트하며 애플리케이션 비호환성에 대해 작업할 수 있습니다.
  • 언제든지 전체 프로세스를 다시 실행할 수 있습니다.
  • 새로운 복원은 이전 버전의 데이터베이스의 불필요한 아티팩트가 새 데이터베이스로 전달될 가능성을 줄여줍니다.

업그레이드 경로

주요 버전 업그레이드 경로
현재 버전 주 버전 업그레이드 경로
MongoDB 7 MongoDB 8

UI에서 업그레이드

새로운 호스팅 모델(격리 컴퓨팅 및 공유 컴퓨팅)의 경우, CLIAPI를 통해 새로운 메이저 버전으로 업그레이드할 수 있습니다.

배포의 백업 복원 페이지에서 IBM Cloud 콘솔에서 _백업 및 복원_하여 새 버전으로 업그레이드할 수 있습니다. 백업에서 백업 복원을 클릭하면 새 탭에서 새 배포에 대한 몇 가지 옵션을 변경할 수 있는 페이지가 열립니다. 옵션 중 하나는 데이터베이스 버전으로 업그레이드할 수 있는 버전으로 자동으로 채워집니다. 버전을 선택한 후 ‘백업 복원’을 클릭하여 프로비저닝 및 복원 절차를 시작하십시오.

CLI를 통한 업그레이드

IBM Cloud CLI를 통해 백업에서 업그레이드 및 복원하는 경우에는 리소스 제어기에서 프로비저닝 명령을 사용하십시오.

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_ID> <SERVICE_PLAN_ID> <REGION>

instance_name, service_id, service_plan_id, region 매개변수는 모두 필수입니다. 또한 JSON 오브젝트에 버전 및 백업 ID 매개변수와 함께 -p를 제공합니다. 새 배치는 백업 시 소스 배치와 동일한 디스크 및 메모리로 자동으로 크기가 조정됩니다.

ibmcloud resource service-instance-create example-upgrade databases-for-mongodb standard us-south \
-p \ '{
  "backup_id": "crn:v1:bluemix:public:databases-for-mongodb:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "version":"7.0"
}'

API를 통한 업그레이드

API를 통한 프로비저닝과 마찬가지로, 백업 파일을 사용하여 업그레이드하려면 먼저 리소스 컨트롤러 API를 사용하기 위해 필요한 단계 를 완료해야 합니다. 그런 다음, API를 POST 요청으로 전송하십시오. name, target, resource_groupresource_plan_id 매개변수는 모두 필수입니다. 또한 버전과 백업 ID도 함께 제공해 주십시오. 새 배치는 백업 시 소스 배치와 동일한 메모리 및 디스크 할당을 가집니다.

curl -X POST   https://resource-controller.cloud.ibm.com/v2/resource_instances   -H 'Authorization: Bearer <>'   -H 'Content-Type: application/json'     -d '{
    "name": "my-instance",
    "target": "us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-mongodb-standard",
    "backup_id": "crn:v1:bluemix:public:databases-for-mongodb:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
    "version":"7.0"
  }'

Terraform을 통한 업그레이드

Terraform을 사용하여 이전 버전에서 새 버전으로 백업으로 복원할 수 있습니다.

  1. backup_id 을 설정합니다. 자세한 정보는 backup_id의 내용을 참조하십시오.
  2. 버전 속성에서 version 을 설정합니다. 자세한 정보는 version의 내용을 참조하십시오.

코드는 다음과 같습니다:

resource "ibm_database" "<your-instance>" {
  name                                 = "<your_database_name>"
  service                              = "<service>"
  plan                                 = "<plan>"
  location                             = "<region>"
  version                              = "<version>"
  backup_id                            = "<backup_id>"
}

자세한 내용은 Cloud Databases 테라폼 레지스트리를 참조하세요. 또는 Terraform IBM 모듈(TIM) 을 사용하여 백업 인스턴스에서 새 데이터베이스 인스턴스를 만들 수 있습니다. 자세한 내용은 백업에서 복원 예시를 참조하세요.