Docs Menu
Docs Home
/
MongoDB Cloud Manager
/ /

스냅샷에서 복제본 세트 복원

이 페이지의 내용

  • 고려 사항
  • 전제 조건
  • 스냅샷 복원

백업 에서 복제본 세트 를 복원 하면 Cloud Manager 가 선택한 복원 점 에 대한 복원 파일 을 제공합니다. 복원 프로세스 에 학습 보려면 복원 개요를 참조하세요.

BSON 사양 BSON 바이너리 데이터 유형(BinData)의 기본값 하위 유형을 2 에서 0 로 변경했습니다. 스냅샷 에 저장된 일부 바이너리 데이터는 BinData 하위 유형 2 일 수 있습니다. 백업은 BinData 하위 유형 2 의 스냅샷 데이터를 자동으로 감지하고 BinData 하위 유형 0 로 변환합니다. 애플리케이션 코드에 BinData 하위 유형 2 가 예상되는 경우 BinData 하위 유형 0 과 함께 작동하도록 애플리케이션 코드를 업데이트 해야 합니다.

다음도 참조하세요.

BSON 사양 에 대한 참고 사항 이 변경의 구체적인 내용을 설명합니다.

백업 복원 파일에는 restoreInfo.txt 이라는 메타데이터 파일이 포함되어 있습니다. 이 파일은 스냅샷을 생성할 때 데이터베이스에서 사용된 옵션을 캡처합니다. 데이터베이스를 복원한 후에는 나열된 옵션을 사용하여 데이터베이스를 실행해야 합니다. 이 파일에는 다음이 포함됩니다.

  • groupName

  • 복제본 세트 이름

  • 클러스터 ID (해당되는 경우)

  • 스냅샷 타임스탬프 (UTC의 타임스탬프)

  • 타임스탬프 복원 (UTC의 BSON 타임스탬프로)

  • 마지막 oplog 적용 되었습니다(UTC에서 BSON 타임스탬프로).

  • MongoDB 버전

  • storage engine 유형

  • mongod 스냅샷을 생성할 때 데이터베이스에 사용된 시작 옵션

모든 FCV 데이터베이스는 적절한 백업 고려 사항을 충족해야 합니다.

수동 복원을 수행하려면 Cloud Manager에서 백업 관리자 역할이 있어야 합니다.

복원 중에는 MongoDB deployment가 클라이언트 요청을 받지 않도록 해야 합니다. 다음 중 하나를 수행해야 합니다.

  • 새 호스트 이름을 사용하여 새 시스템으로 복원하고 새 배포가 실행되면 애플리케이션 코드를 재구성합니다. 또는

  • 데이터를 복원하는 동안 MongoDB deployment가 클라이언트 요청을 수신 하지 않는지 확인합니다.

Cloud Manager 가 스냅샷 을 자동으로 복원 하도록 하려면 다음을 수행합니다.

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 사이드바에서 Continuous Backup를 클릭합니다.

    연속 백업 페이지가 표시됩니다.

2
3
4
  1. 백업을 복원할 지점을 선택합니다.

    복원 유형
    설명
    작업
    Snapshot
    복원할 기존 스냅샷 을 선택합니다.
    Point In Time

    선택한 시간까지의 모든 작업을 포함하지만 포함하지 않는 사용자 지정 스냅샷을 생성합니다. 기본적으로 oplog 스토어는 24시간 분량의 데이터를 저장합니다.

    예를 예시 12:00 을 선택하는 경우 복원 의 마지막 작업은 11:59:59 이하입니다.

    중요: FCV 4.0 에서는 최신 백업 재동기화 이전의 기간을 포함하는 PIT 복원 을 수행할 수 없습니다. 재동기화가 발생하는 조건 은 백업 재동기화를 참조하세요. 이 참고 사항은 FCV 4.2 이상에는 적용 되지 않습니다.

    DateTime 을(를) 선택합니다.
    Oplog Timestamp

    입력 oplog 타임스탬프를 포함하여 해당 시점까지의 모든 작업을 포함하는 사용자 지정 스냅샷을 생성합니다. oplog 타임스탬프에는 두 개의 필드가 포함되어 있습니다.

    Timestamp

    UNIX epoch 이후경과된 시간(초)의 타임스탬프

    Increment
    해당 초에 32비트 서수로 적용되는 작업 순서입니다.

    oplog TimestampIncrement를 입력합니다.

    복제본 세트 에서 local.oplog.rs 에 대한 쿼리를 실행하여 원하는 타임스탬프를 찾습니다.

  2. Next를 클릭합니다.

5
  1. Choose Cluster to Restore to를 클릭합니다.

  2. 다음 필드를 작성합니다.

    필드
    작업
    Project
    스냅샷을 복원 할 프로젝트 를 선택합니다 .
    Cluster to Restore to

    스냅샷 을 복원 할 클러스터 를 선택합니다.

    Cloud Manager 는 대상 복제본 세트 를 관리 해야 합니다 .

    경고: 자동화는 클러스터 에서 기존 데이터를 모두 제거합니다. 기존 클러스터 의 모든 백업 데이터와 스냅샷을 보존합니다.

  1. Restore를 클릭합니다.

    Cloud Manager 는 복원 에 필요한 저장 공간의 양을 기록합니다.

6

경고

자동 복원 고려

이 절차에는 많은 단계가 포함됩니다. 이러한 단계 중 일부는 보안에 심각한 영향을 미칩니다. Cloud Manager 가 관리 하지 않는 배포서버 로 복원 할 필요가 없는 경우 자동 복원 을 고려하세요.

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 사이드바에서 Continuous Backup를 클릭합니다.

    연속 백업 페이지가 표시됩니다.

2
3
4
  1. 백업을 복원할 지점을 선택합니다.

    복원 유형
    설명
    작업
    Snapshot
    복원할 기존 스냅샷 을 선택합니다.
    Point In Time

    선택한 시간까지의 모든 작업을 포함하지만 포함하지 않는 사용자 지정 스냅샷을 생성합니다. 기본적으로 oplog 스토어는 24시간 분량의 데이터를 저장합니다.

    예를 예시 12:00 을 선택하는 경우 복원 의 마지막 작업은 11:59:59 이하입니다.

    중요: FCV 4.0 에서는 최신 백업 재동기화 이전의 기간을 포함하는 PIT 복원 을 수행할 수 없습니다. 재동기화가 발생하는 조건 은 백업 재동기화를 참조하세요. 이 참고 사항은 FCV 4.2 이상에는 적용 되지 않습니다.

    DateTime 을(를) 선택합니다.
    Oplog Timestamp

    입력 oplog 타임스탬프를 포함하여 해당 시점까지의 모든 작업을 포함하는 사용자 지정 스냅샷을 생성합니다. oplog 타임스탬프에는 두 개의 필드가 포함되어 있습니다.

    Timestamp

    UNIX epoch 이후경과된 시간(초)의 타임스탬프

    Increment
    해당 초에 32비트 서수로 적용되는 작업 순서입니다.

    oplog TimestampIncrement를 입력합니다.

    복제본 세트 에서 local.oplog.rs 에 대한 쿼리를 실행하여 원하는 타임스탬프를 찾습니다.

  2. Next를 클릭합니다.

5
6
  1. 다음 다운로드 옵션을 구성합니다.

    Pull Restore Usage Limit
    링크를 사용할 수 있는 횟수를 선택합니다. No Limit 을(를) 선택하면 링크가 만료될 때까지 재사용할 수 있습니다.
    Restore Link Expiration (in hours)
    링크가 만료될 때까지 남은 시간을 선택합니다. 기본값 은 1 입니다. 최대값은 선택한 스냅샷 이 만료될 때까지의 시간 수입니다.
  2. Finalize Request를 클릭합니다.

  3. 2FA 를 사용하는 경우 Cloud Manager 는 2FA 코드를 입력하라는 메시지를 표시합니다. 2FA 코드를 입력한 다음 Finalize Request 를 클릭합니다.

7
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 사이드바에서 Continuous Backup를 클릭합니다.

    연속 백업 페이지가 표시됩니다.

8

Cloud Manager 가 스냅샷 에 대한 링크를 생성합니다. 기본값 으로 이러한 링크는 1시간 동안 사용할 수 있으며 한 번만 사용할 수 있습니다.

스냅샷을 다운로드 하려면 다음을 수행합니다.

  1. Restore History를 클릭합니다.

  2. 복원 작업 이 완료되면 표시되는 각 복제본 세트 에 대해 (get link) 를 클릭합니다.

  3. 다음을 클릭합니다.

    • 링크 오른쪽에 있는 복사 버튼을 클릭하여 링크를 복사하여 나중에 사용하거나

    • Download 스냅샷 을 즉시 다운로드 할 수 있습니다.

9

데이터를 수동으로 복원 하기 전에 자동화에서 복제본 세트 를 제거 합니다.

Unmanage this item in Ops Managers but continue to monitor 옵션을 선택합니다.

10

경로에 따라 mongosh 경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.

mongosh --port <port> \
--eval "db.getSiblingDB('admin').shutdownServer()"
11
저장 용량
대상 호스트의 hardware 에는 복원된 데이터를 저장할 수 있는 충분한 여유 저장 공간이 있어야 합니다. 이 호스팅하다 에 기존 클러스터 데이터를 유지하려면 호스팅하다 에 클러스터 데이터와 복원된 데이터를 위한 충분한 여유 공간이 있는지 확인합니다.
MongoDB 버전
복원하려는 대상 호스팅하다 와 복원하는 소스 호스팅하다 는 동일한 MongoDB Server 버전을 실행 해야 합니다. MongoDB 버전을 확인하려면 터미널 또는 shell 에서 mongod --version 를 실행 합니다.

학습 내용은 설치를 참조하세요.

12

스냅샷의 데이터 파일을 대상 호스팅하다 로 이동하기 전에 대상 호스팅하다 에 기존 파일이 포함되어 있는지 확인하고 automation-mongod.conf 파일 을 제외한 모든 파일을 삭제 합니다.

다음과 같이 스냅샷 파일의 압축을 풀고 대상 호스팅하다 로 이동합니다.

tar -xvf <backupSnapshot>.tar.gz
mv <backupSnapshot> </path/to/datafiles>
13

임시 조치로 독립형 모드 에서 mongod 프로세스 를 시작합니다. 이렇게 하면 후속 단계에서 system.replset 컬렉션 에 새 구성 매개 변수를 추가할 수 있습니다.

이 절차의 모든 단계에서 임시 독립형 mongod 프로세스 에 대해 언급된 경우 <ephemeralPort> 를 사용합니다. 이 포트는 소스 및 대상 호스팅하다 포트와 달라야 합니다.

다음과 같이 mongod 프로세스 를 실행합니다. 경로에 따라 mongod 바이너리의 경로를 지정해야 할 수도 있습니다.

mongod --dbpath </path/to/datafiles> \
--port <ephemeralPort> \

네임스페이스 필터링된 스냅샷 에서 복원하는 경우 --restore 옵션을 사용합니다.

mongod --dbpath </path/to/datafiles> \
--port <ephemeralPort> \
--restore

mongod 프로세스 가 연결을 수락하기 시작하면 계속 진행합니다.

14

mongod 프로세스 를 실행 하는 호스팅하다 에서 mongosh 을(를) 시작합니다. 경로에 따라 mongosh 경로를 지정해야 할 수도 있습니다.

이전 단계에서 지정된 동일한 <ephemeralPort> 에서 로컬 호스트를 수신 대기 중인 mongod 에 연결하려면 다음을 실행.

mongosh --port <ephemeralPort>

mongosh 을(를) mongod 에 연결한 후 계속 진행합니다.

15

수동 복원을 수행하려면 Cloud Manager에서 백업 관리자 역할이 있어야 합니다.

다음 명령을 실행하여 이전 복제본 세트 구성 및 기타 비oplog 복제 관련 컬렉션을 제거 합니다.

db.getSiblingDB("local").replset.minvalid.drop()
db.getSiblingDB("local").replset.oplogTruncateAfterPoint.drop()
db.getSiblingDB("local").replset.election.drop()
db.getSiblingDB("local").system.replset.remove({})

성공적인 응답은 다음과 같아야 합니다.

> db.getSiblingDB("local").replset.minvalid.drop()
true
> db.getSiblingDB("local").replset.oplogTruncateAfterPoint.drop()
true
> db.getSiblingDB("local").replset.election.drop()
true
> db.getSiblingDB("local").system.replset.remove({})
WriteResult({ "nRemoved" : 1 })
16

다음 문서 를 local 데이터베이스 의 system.replset 컬렉션 에 삽입합니다. 다음 변수를 변경합니다.

  • <replaceMeWithTheReplicaSetName> 를 복제본 세트 의 이름으로 변경합니다. 이 이름은 이전 이름과 동일할 필요가 없습니다.

  • <host> 이 복제본 세트 멤버를 제공하는 호스팅하다 에 연결합니다.

  • <ephemeralPortNewReplicaSet> 새 복제본 세트 의 임시 포트에 연결합니다. 이 포트는 이 절차의 11 단계에서 지정한 <ephemeralPort> 와 다른 포트여야 합니다.

1db.getSiblingDB("local").system.replset.insertOne({
2 "_id" : "<replaceMeWithTheReplicaSetName>",
3 "version" : NumberInt(1),
4 "protocolVersion" : NumberInt(1),
5 "members" : [
6 {
7 "_id" : NumberInt(0),
8 "host" : "<host>:<ephemeralPortNewReplicaSet>"
9 }
10 ],
11 "settings" : {
12
13 }
14})

성공적인 응답은 다음과 같아야 합니다.

{ "acknowledged" : true, "insertedId" : "<yourReplicaSetName>" }
17

다음 명령을 실행합니다.

db.getSiblingDB("local").replset.minvalid.insertOne({
"_id" : ObjectId(),
"t" : NumberLong(-1),
"ts" : Timestamp(0,1)
})

성공적인 응답은 다음과 같아야 합니다.

{ "acknowledged" : true, "insertedId" : ObjectId("<yourObjectId>") }
18

oplogTruncateAfterPoint 문서 를 restoreInfo.txt 파일 의 Restore Timestamp 필드 에 제공된 값으로 설정합니다.

해당 파일 의 Restore Timestamp 필드 에는 두 개의 값이 포함되어 있습니다. 다음 예시 에서 첫 번째 값은 타임스탬프이고 두 번째 값은 증분입니다.

1...
2Restore timestamp: (1609947369, 2)
3Last Oplog Applied: Wed Jan 06 15:36:09 GMT 2021 (1609947369, 1)
4MongoDB Version: 4.2.11
5...

다음 예시 코드에서는 이전 예시 의 타임스탬프 값과 증분 값을 사용합니다.

truncateAfterPoint = Timestamp(1609947369,2)
db.getSiblingDB("local").replset.oplogTruncateAfterPoint.insertOne({
"_id": "oplogTruncateAfterPoint",
"oplogTruncateAfterPoint": truncateAfterPoint
})

성공적인 응답은 다음과 같아야 합니다.

WriteResult({ "nInserted" : 1 })

참고

MongoDB 4.2 복원 MongoDB 4.4을(를) 사용하는 스냅샷

MongoDB 4.4 을 실행 하는 mongod 를 사용하여 MongoDB 4.2 스냅샷 을 복원 하려고 하면 oplog 에 불필요한 문서가 포함될 수 있습니다.

이 문제를 해결하려면 다음 중 하나를 수행하면 됩니다.

  • 타임스탬프를 1 만큼 감소시킵니다.

  • MongoDB 4.2 을(를) 사용하여 복원합니다.

  • Cloud Manager 가 자동 복원 실행 하도록 합니다.

이 문제는 MongoDB 4.4 이상 스냅샷에는 적용 되지 않습니다.

19

경로에 따라 mongosh 경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.

mongosh --port <ephemeralPort> \
--eval "db.getSiblingDB('admin').shutdownServer()"
20

매개변수를 지정하여 다음 명령을 사용하여 mongod 를 시작합니다.

  • <bind_ip> 이 절차의 14 단계에서 지정한 이 복제본 세트 멤버를 제공하는 호스팅하다 에 연결합니다.

  • <port> 이 절차의 11 단계에서 지정한 <ephemeralPort> 로 연결합니다.

mongod 는 oplog 를 Restore timestamp 까지 재생합니다.

mongod --dbpath </path/to/datafiles> \
--port <ephemeralPort> \
--bind_ip <host-serving-this-replica-set-member> \
--replSet <replaceMeWithTheReplicaSetName>
21

경로에 따라 mongosh 경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.

mongosh --port <ephemeralPort> \
--eval "db.getSiblingDB('admin').shutdownServer()"
22

이 단계는 선택 사항입니다. 특정 시점 복원이 필요한 경우 실행합니다. 이 단계가 필요한 경우 완료한 다음 21 및 22 단계를 실행 합니다. 이 단계가 필요하지 않은 경우 23 단계로 진행합니다. 이 단계에서는 복제본 세트 의 대상 인스턴스 에서 MongoDB 백업 복원 유틸리티를 다운로드 하여 실행 한 다음 인스턴스 를 중지합니다.

  1. MongoDB 백업 복원 유틸리티를 호스팅하다 에 다운로드합니다.

    복원 패널을 닫은 경우 Continuous Backup in Deployment, More, Download MongoDB Backup Restore Utility 를 차례로 클릭합니다.

  2. 추출한 스냅샷 디렉토리 를 데이터 디렉토리 로 사용하여 인증 을 활성화하지 않고 mongod 인스턴스 를 시작합니다. 경로에 따라 mongod 바이너리의 경로를 지정해야 할 수도 있습니다.

    mongod --port <ephemeralPort> \
    --dbpath </path/to/datafiles> \
    --setParameter ttlMonitorEnabled=false

    경고

    MongoDB 백업 복원 유틸리티는 인증 을 지원 하지 않으므로 이 임시 데이터베이스 를 인증 으로 시작할 수 없습니다.

  3. 대상 호스팅하다 에서 MongoDB 백업 복원 유틸리티를 실행합니다. 복제본 세트 에 대해 한 번 실행합니다.

    중요

    사전 구성된 mongodb-backup-restore-util 명령

    Cloud Manager 는 Run Binary with PIT Options 아래의 복원 패널에서 mongodb-backup-restore-util 에 적절한 복원 옵션을 제공합니다.

    Cloud Manager 에 제공된 mongodb-backup-restore-util 명령을 복사해야 합니다.

    ./mongodb-backup-restore-util --https --host <targetHost> \
    --port <targetPort> \
    --opStart <opLogStartTimeStamp> \
    --opEnd <opLogEndTimeStamp> \
    --logFile <logPath> \
    --apiKey <apiKey> \
    --groupId <groupId> \
    --rsId <rsId> \
    --whitelist <database1.collection1, database2, etc.> \
    --blacklist <database1.collection1, database2, etc.> \
    --seedReplSetMember \
    --oplogSizeMB <size> \
    --seedTargetPort <port> \
    --ssl \
    --sslCAFile </path/to/ca.pem> \
    --sslPEMKeyFile </path/to/pemkey.pem>
    --sslClientCertificateSubject <distinguishedName> \
    --sslRequireValidServerCertificates <true|false> \
    --sslServerClientCertificate </path/to/client.pem> \
    --sslServerClientCertificatePassword <password> \
    --sslRequireValidMMSBackupServerCertificate <true|false> \
    --sslTrustedMMSBackupServerCertificate </path/to/mms-certs.pem> \
    --httpProxy <proxyURL>

    mongodb-backup-restore-util 명령은 다음 옵션을 사용합니다.

    옵션
    필요성
    설명
    --host
    필수 사항
    mongod 를 적용해야 하는 oplog 를 제공하는 호스팅하다 의 호스트 이름, FQDN , IPv4주소 또는 IPv6주소 를 제공합니다. Cloud Manager 에 제공된 mongodb-backup-restore-util 명령을 복사한 경우 이 필드 는 미리 구성됩니다.
    --port
    필수 사항
    oplog mongod 를 적용해야 하는 를 제공하는 호스팅하다 의 포트를 제공합니다.
    --opStart
    필수 사항

    복원 에 포함할 첫 번째 oplog 항목에 대한 BSON 타임스탬프 를 제공합니다. 이 정보는 다운로드한 스냅샷 과 함께 제공된 restoreInfo.txt 파일 의 "Last oplog Applied" 항목에 표시됩니다.

    이 값은 --opEnd 값보다 작거나 같아야 합니다.

    --opEnd
    필수 사항

    복원 에 포함할 마지막 oplog 항목에 대한 BSON 타임스탬프 를 제공합니다.

    이 값은 oplog 의 끝보다 클 수 없습니다.

    --logFile
    옵션
    파일 이름을 포함하여 MBRU 로그 가 기록되는 경로를 제공합니다.
    --oplogSourceAddr
    필수 사항
    Cloud Manager 리소스 엔드포인트의 URL 을 제공합니다.
    --apiKey
    필수 사항
    Cloud Manager 에이전트 API 키를 제공합니다.
    --groupId
    필수 사항
    그룹 ID 를 입력합니다.
    --rsId
    필수 사항
    복제본 세트 ID 를 입력합니다.
    --whitelist
    옵션
    복원 을 제한하려는 데이터베이스 및/또는 컬렉션 목록을 제공합니다.
    --blacklist
    옵션
    복원 에서 제외하려는 데이터베이스 및/또는 컬렉션 목록을 제공합니다.
    --seedReplSetMember
    옵션

    oplog 컬렉션 을 다시 생성하고 올바른 타임스탬프로 시드하기 위해 복제본 세트 멤버가 필요한 경우 사용합니다.

    --oplogSizeMB--seedTargetPort 이(가) 필요합니다.

    --oplogSizeMB
    조건부

    oplog 크기를 MB 단위로 입력합니다.

    --seedReplSetMember 가 설정하다 경우 필수입니다.

    --seedTargetPort
    조건부

    복제본 세트프라이머리 포트를 제공합니다. 이는 임시 포트 와 다를 수 있습니다. 사용.

    --seedReplSetMember 가 설정하다 경우 필수입니다.

    --ssl
    조건부

    mongod oplog 적용하기 위해 TLS /SSL 이 필요한 경우 사용합니다.

    --sslCAFile--sslPEMKeyFile 이(가) 필요합니다.

    --sslCAFile
    조건부

    인증 기관 파일 의 경로를 입력합니다.

    --ssl 가 설정하다 경우 필수입니다.

    --sslPEMKeyFile
    조건부

    PEM 인증서 파일 의 경로를 입력합니다.

    --ssl 가 설정하다 경우 필수입니다.

    --sslPEMKeyFilePwd
    조건부

    --sslPEMKeyFile 에 지정된 PEM 인증서 파일 의 비밀번호를 입력합니다.

    --ssl 이(가) 설정하다 있고 해당 PEM 키 파일 이 암호화됨 경우 필수입니다.

    --sslClientCertificateSubject
    대상 MongoDB 프로세스 에 대한 클라이언트 인증서 주체 또는 고유 이름(DN)을 제공합니다.
    --sslRequireValidServerCertificates
    옵션
    도구가 대상 MongoDB 프로세스 가 제공하는 인증서의 유효성을 검사해야 하는지 여부를 나타내는 플래그를 설정합니다.
    --sslServerClientCertificate
    옵션
    Cloud Manager 호스팅하다 에 연결하는 데 사용할 클라이언트 인증서 파일 의 절대 경로를 제공합니다.
    --sslServerClientCertificatePassword
    조건부

    Cloud Manager 호스팅하다 에 연결하는 데 사용할 클라이언트 인증서 파일 비밀번호의 절대 경로를 입력합니다.

    --sslServerClientCertificate 가 설정하다 있고 해당 인증서가 암호화됨 경우 필수입니다.

    --sslRequireValidMMSBackupServerCertificate
    옵션
    Cloud Manager 호스팅하다 에 연결할 때 유효한 인증서가 필요한지 여부를 나타내는 플래그를 설정합니다. 기본값은 true 입니다.
    --sslTrustedMMSBackupServerCertificate
    옵션
    Cloud Manager 호스팅하다 에 대해 신뢰할 수 있는 인증 기관 인증서의 절대 경로를 PEM 형식으로 제공합니다. 이 플래그를 지정하지 않으면 시스템 인증 기관이 사용됩니다.
    --httpProxy
    옵션
    도구에서 사용할 수 있는 HTTP 프록시 서버 의 URL 을 입력합니다.

    는 Cloud Manager 에 제공된 mongodb-backup-restore-util 명령을 복사한 경우 이 필드 가 미리 구성되어 있음을 의미합니다.

  4. 인스턴스 에서 mongod 을(를) 중지합니다. 경로에 따라 mongosh 경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.

    mongosh --port <ephemeralPort> \
    --eval "db.getSiblingDB('admin').shutdownServer()"
23

이 단계는 20 단계를 실행한 경우에만 필요합니다. 20 단계를 실행 필요가 없는 경우 23 단계로 진행합니다. 다음 명령을 사용하여 mongod 를 시작합니다. mongodRestore timestamp 까지 oplog 를 재생합니다. 경로에 따라 mongod 바이너리의 경로를 지정해야 할 수도 있습니다.

mongod --dbpath </path/to/datafiles> \
--port <ephemeralPort> \
--replSet <replaceMeWithTheReplicaSetName>

이 단계를 완료하면 실제 복원 프로세스 가 완료됩니다. 다음 단계에서는 복제본 세트 의 구성을 복원 하고 다시 가져옵니다.

24

이 단계는 20 단계를 실행한 경우에만 필요합니다. 20 단계를 실행 필요가 없는 경우 23 단계로 진행합니다.

경로에 따라 mongosh 경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.

mongosh--port <ephemeralPort> \
--eval "db.getSiblingDB('admin').shutdownServer()"
25

다음 명령을 사용하여 mongod 프로세스 를 독립형 인스턴스 로 시작합니다. <port> 의 경우, 복제본 세트 의 이 노드 가 실행 실제 포트를 사용합니다. 경로에 따라 mongod 바이너리의 경로를 지정해야 할 수도 있습니다.

mongod --dbpath </path/to/datafiles> \
--port <port>

mongod 프로세스 가 연결을 수락하기 시작하면 계속 진행합니다.

26

다음 명령을 실행합니다:

mongosh --port <port> \
--eval db.getSiblingDB("local").system.replset.remove({})
27

경로에 따라 mongosh 경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.

mongosh --port <port> \
--eval "db.getSiblingDB('admin').shutdownServer()"
28
29

이 점 에서 복제본 세트 의 데이터 파일은 일관적인 상태 이지만 각 노드 가 서로를 인식할 수 있도록 복제본 세트 구성을 업데이트해야 합니다.

다음 명령을 실행합니다:

sudo -u mongod <path/to/target_mongod_binary> -f /path/to/datafiles/automation-mongod.conf

다음 예시 에서는 버전이 4.4.12 인 모든 노드를 다시 시작합니다. 데이터 경로가 /data6/node3 인 엔터프라이즈 입니다.

sudo -u mongod /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.4.12-ent/bin/mongod -f /data6/node3/automation-mongod.conf
30

노드 중 하나에 로그인하고 다음 명령을 실행 합니다.

rs.initiate()
rs.add( { host: "<host2>:<port>" } )
rs.add( { host: "<host3>:<port>" } )
31
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Deployment 페이지가 아직 표시되지 않은 경우 사이드바에서 Deployment를 클릭합니다.

    배포 페이지가 표시됩니다.

32

자동화 를 통해 복제본 세트를 다시 관리 하려면 복제본 세트 를 Cloud Manager 로 다시 복제본 세트 옵니다 .

을 클릭하고 Add 을 선택한 Existing MongoDB Deployment Automation 다음 클러스터 에 을 다시 추가합니다.

Cloud Manager 가 스냅샷 을 자동으로 복원 하도록 하려면 다음을 수행합니다.

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 사이드바에서 Continuous Backup를 클릭합니다.

    연속 백업 페이지가 표시됩니다.

2
3
4
  1. 백업을 복원할 지점을 선택합니다.

    복원 유형
    설명
    작업
    Snapshot
    복원할 기존 스냅샷 을 선택합니다.
    Point In Time

    선택한 시간까지의 모든 작업을 포함하지만 포함하지 않는 사용자 지정 스냅샷을 생성합니다. 기본적으로 oplog 스토어는 24시간 분량의 데이터를 저장합니다.

    예를 예시 12:00 을 선택하는 경우 복원 의 마지막 작업은 11:59:59 이하입니다.

    중요: FCV 4.0 에서는 최신 백업 재동기화 이전의 기간을 포함하는 PIT 복원 을 수행할 수 없습니다. 재동기화가 발생하는 조건 은 백업 재동기화를 참조하세요. 이 참고 사항은 FCV 4.2 이상에는 적용 되지 않습니다.

    DateTime 을(를) 선택합니다.
    Oplog Timestamp

    입력 oplog 타임스탬프를 포함하여 해당 시점까지의 모든 작업을 포함하는 사용자 지정 스냅샷을 생성합니다. oplog 타임스탬프에는 두 개의 필드가 포함되어 있습니다.

    Timestamp

    UNIX epoch 이후경과된 시간(초)의 타임스탬프

    Increment
    해당 초에 32비트 서수로 적용되는 작업 순서입니다.

    oplog TimestampIncrement를 입력합니다.

    복제본 세트 에서 local.oplog.rs 에 대한 쿼리를 실행하여 원하는 타임스탬프를 찾습니다.

  2. Next를 클릭합니다.

최신 oplog 항목을 찾으려면 mongosh에서 다음 쿼리를 실행합니다.

db.getSiblingDB('local').oplog.rs.find().sort({$natural:-1}).limit(1).pretty()

성공적인 결과는 다음과 같아야 합니다.

{
"ts": Timestamp(1537559320, 1),
"h": NumberLong("-2447431566377702740"),
"v": 2,
"op": "n",
"ns": "",
"wall": ISODate("2018-09-21T19:48:40.708Z"),
"o": {
"msg": "initiating set"
}
}

ts 값의 부분은 TimestampIncrement 상자에 필요한 값에 해당합니다.

참고

에포크 시간을 사람이 읽을 수 있는 타임스탬프로 변환하려면 에포크 변환기 와 같은 도구를 사용해 보세요.

MongoDB는 이 서비스를 지원하지 않습니다. 해당 참고는 정보 제공 목적으로만 사용됩니다.

5
  1. Choose Cluster to Restore to를 클릭합니다.

  2. 다음 필드를 작성합니다.

    필드
    작업
    Project
    스냅샷을 복원 할 프로젝트 를 선택합니다 .
    Cluster to Restore to

    스냅샷 을 복원 할 클러스터 를 선택합니다.

    Cloud Manager 는 대상 복제본 세트 를 관리 해야 합니다 .

    경고: 자동화는 클러스터 에서 기존 데이터를 모두 제거합니다. 기존 클러스터 의 모든 백업 데이터와 스냅샷을 보존합니다.

  1. Restore를 클릭합니다.

    Cloud Manager 는 복원 에 필요한 저장 공간의 양을 기록합니다.

6
1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 사이드바에서 Continuous Backup를 클릭합니다.

    연속 백업 페이지가 표시됩니다.

2
3
4
  1. 백업을 복원할 지점을 선택합니다.

    복원 유형
    설명
    작업
    Snapshot
    복원할 기존 스냅샷 을 선택합니다.
    Point In Time

    선택한 시간까지의 모든 작업을 포함하지만 포함하지 않는 사용자 지정 스냅샷을 생성합니다. 기본적으로 oplog 스토어는 24시간 분량의 데이터를 저장합니다.

    예를 예시 12:00 을 선택하는 경우 복원 의 마지막 작업은 11:59:59 이하입니다.

    중요: FCV 4.0 에서는 최신 백업 재동기화 이전의 기간을 포함하는 PIT 복원 을 수행할 수 없습니다. 재동기화가 발생하는 조건 은 백업 재동기화를 참조하세요. 이 참고 사항은 FCV 4.2 이상에는 적용 되지 않습니다.

    DateTime 을(를) 선택합니다.
    Oplog Timestamp

    입력 oplog 타임스탬프를 포함하여 해당 시점까지의 모든 작업을 포함하는 사용자 지정 스냅샷을 생성합니다. oplog 타임스탬프에는 두 개의 필드가 포함되어 있습니다.

    Timestamp

    UNIX epoch 이후경과된 시간(초)의 타임스탬프

    Increment
    해당 초에 32비트 서수로 적용되는 작업 순서입니다.

    oplog TimestampIncrement를 입력합니다.

    복제본 세트 에서 local.oplog.rs 에 대한 쿼리를 실행하여 원하는 타임스탬프를 찾습니다.

  2. Next를 클릭합니다.

최신 oplog 항목을 찾으려면 mongosh에서 다음 쿼리를 실행합니다.

db.getSiblingDB('local').oplog.rs.find().sort({$natural:-1}).limit(1).pretty()

성공적인 결과는 다음과 같아야 합니다.

{
"ts": Timestamp(1537559320, 1),
"h": NumberLong("-2447431566377702740"),
"v": 2,
"op": "n",
"ns": "",
"wall": ISODate("2018-09-21T19:48:40.708Z"),
"o": {
"msg": "initiating set"
}
}

ts 값의 부분은 TimestampIncrement 상자에 필요한 값에 해당합니다.

참고

에포크 시간을 사람이 읽을 수 있는 타임스탬프로 변환하려면 에포크 변환기 와 같은 도구를 사용해 보세요.

MongoDB는 이 서비스를 지원하지 않습니다. 해당 참고는 정보 제공 목적으로만 사용됩니다.

5
6
  1. 다음 다운로드 옵션을 구성합니다.

    Pull Restore Usage Limit
    링크를 사용할 수 있는 횟수를 선택합니다. No Limit 을(를) 선택하면 링크가 만료될 때까지 재사용할 수 있습니다.
    Restore Link Expiration (in hours)
    링크가 만료될 때까지 남은 시간을 선택합니다. 기본값 은 1 입니다. 최대값은 선택한 스냅샷 이 만료될 때까지의 시간 수입니다.
  2. Finalize Request를 클릭합니다.

  3. 2FA 를 사용하는 경우 Cloud Manager 는 2FA 코드를 입력하라는 메시지를 표시합니다. 2FA 코드를 입력한 다음 Finalize Request 를 클릭합니다.

7
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 사이드바에서 Continuous Backup를 클릭합니다.

    연속 백업 페이지가 표시됩니다.

8

Cloud Manager 가 스냅샷 에 대한 링크를 생성합니다. 기본값 으로 이러한 링크는 한 시간 동안 사용할 수 있으며 한 번만 사용할 수 있습니다.

스냅샷을 다운로드 하려면 다음을 수행합니다.

  1. Restore History를 클릭합니다.

  2. 복원 작업 이 완료되면 각 복제본 세트 에 대해 (get link) 를 클릭하면 나타납니다.

  3. 다음을 클릭합니다.

    • 링크 오른쪽에 있는 복사 버튼을 클릭하여 링크를 복사하여 나중에 사용하거나

    • Download 스냅샷 을 즉시 다운로드 할 수 있습니다.

중요

특정 시점 복원을 위한 추가 단계

특정 시점 및 oplog 타임스탬프 복원의 경우 추가 지침이 표시됩니다. 마지막 단계에서는 MBRU 를 사용하여 실행 해야 하는 전체 명령을 보여 줍니다. 여기에는 전체 복원 을 보장하는 데 필요한 모든 옵션이 포함되어 있습니다.

Run Binary with PIT Options 아래에 제공된 mongodb-backup-restore-util 명령을 선택하여 복사합니다.

9

예시

tar -xvf <backupSnapshot>.tar.gz
mv <backupSnapshot> <temp-database-path>
10
  1. MongoDB 백업 복원 유틸리티를 호스팅하다 에 다운로드합니다.

    참고

    복원 패널을 닫은 경우:

    1. MongoDB Cloud Manager 에서 프로젝트 의 Continuous Backup 페이지로 Go 합니다.

      1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

      2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

      3. 사이드바에서 Continuous Backup를 클릭합니다.

      연속 백업 페이지가 표시됩니다.

    2. More 을 클릭한 다음 Download MongoDB Backup Restore Utility 을 클릭합니다.

  2. 추출한 스냅샷 디렉토리 를 데이터 디렉토리 로 사용하여 인증 을 활성화하지 않고 mongod 인스턴스 를 시작합니다.

    예시

    mongod --port <port number> \
    --dbpath <temp-database-path> \
    --setParameter ttlMonitorEnabled=false

    경고

    MongoDB 백업 복원 유틸리티는 인증 을 지원 하지 않으므로 이 임시 데이터베이스 를 인증 으로 시작할 수 없습니다.

  3. 대상 호스팅하다 에서 MongoDB 백업 복원 유틸리티를 실행합니다. 복제본 세트 에 대해 한 번 실행합니다.

    중요

    사전 구성된 mongodb-backup-restore-util 명령

    Cloud Manager 는 Run Binary with PIT Options 아래의 복원 패널에서 mongodb-backup-restore-util 에 적절한 복원 옵션을 제공합니다.

    Cloud Manager 에 제공된 mongodb-backup-restore-util 명령을 복사해야 합니다.

    ./mongodb-backup-restore-util --https --host <targetHost> \
    --port <targetPort> \
    --opStart <opLogStartTimeStamp> \
    --opEnd <opLogEndTimeStamp> \
    --logFile <logPath> \
    --apiKey <apiKey> \
    --groupId <groupId> \
    --rsId <rsId> \
    --whitelist <database1.collection1, database2, etc.> \
    --blacklist <database1.collection1, database2, etc.> \
    --seedReplSetMember \
    --oplogSizeMB <size> \
    --seedTargetPort <port> \
    --ssl \
    --sslCAFile </path/to/ca.pem> \
    --sslPEMKeyFile </path/to/pemkey.pem>
    --sslClientCertificateSubject <distinguishedName> \
    --sslRequireValidServerCertificates <true|false> \
    --sslServerClientCertificate </path/to/client.pem> \
    --sslServerClientCertificatePassword <password> \
    --sslRequireValidMMSBackupServerCertificate <true|false> \
    --sslTrustedMMSBackupServerCertificate </path/to/mms-certs.pem> \
    --httpProxy <proxyURL>

    mongodb-backup-restore-util 명령은 다음 옵션을 사용합니다.

    옵션
    필요성
    설명
    --host
    필수 사항
    mongod 를 적용해야 하는 oplog 를 제공하는 호스팅하다 의 호스트 이름, FQDN , IPv4주소 또는 IPv6주소 를 제공합니다. Cloud Manager 에 제공된 mongodb-backup-restore-util 명령을 복사한 경우 이 필드 는 미리 구성됩니다.
    --port
    필수 사항
    oplog mongod 를 적용해야 하는 를 제공하는 호스팅하다 의 포트를 제공합니다.
    --opStart
    필수 사항

    복원 에 포함할 첫 번째 oplog 항목에 대한 BSON 타임스탬프 를 제공합니다. 이 정보는 다운로드한 스냅샷 과 함께 제공된 restoreInfo.txt 파일 의 "Last oplog Applied" 항목에 표시됩니다.

    이 값은 --opEnd 값보다 작거나 같아야 합니다.

    --opEnd
    필수 사항

    복원 에 포함할 마지막 oplog 항목에 대한 BSON 타임스탬프 를 제공합니다.

    이 값은 oplog 의 끝보다 클 수 없습니다.

    --logFile
    옵션
    파일 이름을 포함하여 MBRU 로그 가 기록되는 경로를 제공합니다.
    --oplogSourceAddr
    필수 사항
    Cloud Manager 리소스 엔드포인트의 URL 을 제공합니다.
    --apiKey
    필수 사항
    Cloud Manager 에이전트 API 키를 제공합니다.
    --groupId
    필수 사항
    그룹 ID 를 입력합니다.
    --rsId
    필수 사항
    복제본 세트 ID 를 입력합니다.
    --whitelist
    옵션
    복원 을 제한하려는 데이터베이스 및/또는 컬렉션 목록을 제공합니다.
    --blacklist
    옵션
    복원 에서 제외하려는 데이터베이스 및/또는 컬렉션 목록을 제공합니다.
    --seedReplSetMember
    옵션

    oplog 컬렉션 을 다시 생성하고 올바른 타임스탬프로 시드하기 위해 복제본 세트 멤버가 필요한 경우 사용합니다.

    --oplogSizeMB--seedTargetPort 이(가) 필요합니다.

    --oplogSizeMB
    조건부

    oplog 크기를 MB 단위로 입력합니다.

    --seedReplSetMember 가 설정하다 경우 필수입니다.

    --seedTargetPort
    조건부

    복제본 세트프라이머리 포트를 제공합니다. 이는 임시 포트 와 다를 수 있습니다. 사용.

    --seedReplSetMember 가 설정하다 경우 필수입니다.

    --ssl
    조건부

    mongod oplog 적용하기 위해 TLS /SSL 이 필요한 경우 사용합니다.

    --sslCAFile--sslPEMKeyFile 이(가) 필요합니다.

    --sslCAFile
    조건부

    인증 기관 파일 의 경로를 입력합니다.

    --ssl 가 설정하다 경우 필수입니다.

    --sslPEMKeyFile
    조건부

    PEM 인증서 파일 의 경로를 입력합니다.

    --ssl 가 설정하다 경우 필수입니다.

    --sslPEMKeyFilePwd
    조건부

    --sslPEMKeyFile 에 지정된 PEM 인증서 파일 의 비밀번호를 입력합니다.

    --ssl 이(가) 설정하다 있고 해당 PEM 키 파일 이 암호화됨 경우 필수입니다.

    --sslClientCertificateSubject
    대상 MongoDB 프로세스 에 대한 클라이언트 인증서 주체 또는 고유 이름(DN)을 제공합니다.
    --sslRequireValidServerCertificates
    옵션
    도구가 대상 MongoDB 프로세스 가 제공하는 인증서의 유효성을 검사해야 하는지 여부를 나타내는 플래그를 설정합니다.
    --sslServerClientCertificate
    옵션
    Cloud Manager 호스팅하다 에 연결하는 데 사용할 클라이언트 인증서 파일 의 절대 경로를 제공합니다.
    --sslServerClientCertificatePassword
    조건부

    Cloud Manager 호스팅하다 에 연결하는 데 사용할 클라이언트 인증서 파일 비밀번호의 절대 경로를 입력합니다.

    --sslServerClientCertificate 가 설정하다 있고 해당 인증서가 암호화됨 경우 필수입니다.

    --sslRequireValidMMSBackupServerCertificate
    옵션
    Cloud Manager 호스팅하다 에 연결할 때 유효한 인증서가 필요한지 여부를 나타내는 플래그를 설정합니다. 기본값은 true 입니다.
    --sslTrustedMMSBackupServerCertificate
    옵션
    Cloud Manager 호스팅하다 에 대해 신뢰할 수 있는 인증 기관 인증서의 절대 경로를 PEM 형식으로 제공합니다. 이 플래그를 지정하지 않으면 시스템 인증 기관이 사용됩니다.
    --httpProxy
    옵션
    도구에서 사용할 수 있는 HTTP 프록시 서버 의 URL 을 입력합니다.

    는 Cloud Manager 에 제공된 mongodb-backup-restore-util 명령을 복사한 경우 이 필드 가 미리 구성되어 있음을 의미합니다.

11

데이터를 수동으로 복원 하기 전에 자동화에서 복제본 세트 를 제거 합니다.

12

MongoDB 매뉴얼의 튜토리얼에 따라 복제본 세트 를 복원 하세요.

13

자동화 를 통해 복제본 세트를 다시 관리 하려면 복제본 세트 를 Cloud Manager 로 다시 복제본 세트 옵니다 .

중요

AES256-GCM으로 암호화된 스냅샷을 복원한 후 마스터 키 순환

Cloud Manager가 AES256-GCM으로 암호화된 암호화 스냅샷을 복원하는 경우, 복원을 완료한 후마스터 키를 순환시키십시오.

돌아가기

샤딩된 클러스터 복원