문서 메뉴
문서 홈
/
MongoDB Ops Manager
/ /

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

이 페이지의 내용

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

백업에서 복제본 세트를 복원하면 Ops 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 시작 옵션

  • 암호화 (스냅샷에 암호화가 활성화된 경우에만 표시됨)

  • 마스터 키 UUID (스냅샷에 암호화가 활성화된 경우에만 표시됨)

    암호화된 백업에서 복원하는 경우 이 마스터 키에 대해 인증서가 프로비저닝되어 있어야 합니다.

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

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

암호화된 백업에서 복원하려면 백업을 암호화하는 데 사용된 것과 동일한 마스터 키와 백업 데몬 호스트에 있는 것과 동일한 인증서 또는 KMIP 호스트에서 해당 키로 프로비저닝된 새 인증서가 필요합니다.

스냅샷이 암호화된 경우 복원 패널에 KMIP 마스터 키 ID와 KMIP 서버 정보가 표시됩니다. 스냅샷 자체와 restoreInfo.txt 파일을 볼 때도 정보를 찾을 수 있습니다.

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

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

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

Ops Manager가 스냅샷을 자동으로 복원하도록 하려면 다음과 같이 하세요:

1
2
3
  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를 클릭합니다.

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

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

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

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

    Ops Manager는 대상 복제본 세트를 managed 해야 합니다 .

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

  1. Restore를 클릭합니다.

    Ops Manager가 복원에 필요한 스토리지 공간의 양을 기록합니다.

5

경고

자동 복원 고려

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

1
2
3
  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를 클릭합니다.

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

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

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

6

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

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

  1. 복원 패널을 닫은 경우 Continuous Backup 을 클릭한 다음 Restore History 을 클릭합니다.

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

  3. 다음을 클릭합니다.

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

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

1

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

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

2

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

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

자세한 내용은 설치를 참조하세요.

4

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

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

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

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

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

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

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

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

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

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

2

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

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

mongosh --port <ephemeralPort>

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

3

수동 복원을 수행하려면 Ops 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 })
4

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

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

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

  • <finalPortNewReplicaSet> 새 복제본 세트의 최종 포트에 연결합니다. 자동 복원의 경우 이전에 지정한 <ephemeralPort> 이외의 다른 포트를 지정해야 합니다.

members 배열에 새 복제본 세트의 모든 멤버를 포함하고 구성해야 합니다.

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>:<finalPortNewReplicaSet>"
9 },
10 {
11 . . .
12 },
13 . . .
14 ],
15 "settings" : {
16
17 }
18})

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

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

다음 명령을 실행합니다.

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

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

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

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 을(를) 복원하려고 하는 경우. MongoDB 4 를 실행하는 mongod 가 있는 2 스냅샷입니다.4, oplog에 불필요한 문서가 포함되어 있을 수 있습니다.

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

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

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

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

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

1

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

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

다음 명령을 사용하여 mongod 를 시작합니다. 이 작업은 mongod 상태를 최대 Restore timestamp 까지 oplog와 조정합니다. 경로에 따라 mongod 바이너리의 경로를 지정해야 할 수도 있습니다.

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

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

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

이 단계는 조건부입니다. 특정 시점 복원이 필요한 경우 실행합니다.

이 단계에서는 복제본 세트의 대상 인스턴스에서 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 \
    --bind_ip <hostname_or_IP>

    경고

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

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

    중요

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

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

    Ops Manager 애플리케이션에 제공된 mongodb-backup-restore-util 명령을 복사해야 합니다.

    ./mongodb-backup-restore-util --https --host <targetHost> \
    --port <ephemeralPort> \
    --opStart <opLogStartTimeStamp> \
    --opEnd <opLogEndTimeStamp> \
    --logFile <logPath> \
    --oplogSourceAddr <oplogSourceAddr> \
    --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
    필수 사항
    oplog 를 적용해야 하는 mongod 를 제공하는 호스트의 호스트 이름, FQDN , IPv4주소 또는 IPv 주소를 제공합니다.6 mongodb-backup-restore-util Ops Manager 애플리케이션에 제공된 명령을 복사한 경우 이 필드는 미리 구성됩니다.
    --port
    필수 사항
    oplog mongod 를 적용해야 하는 를 제공하는 호스트에 대한 임시 포트를 제공합니다.
    --opStart
    필수 사항

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

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

    --opEnd
    필수 사항

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

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

    --logFile
    옵션
    파일 이름을 포함하여 MBRU 로그가 기록되는 경로를 제공합니다.
    --oplogSourceAddr
    필수 사항
    Ops Manager 리소스 엔드포인트의 URL 을 입력합니다.
    --apiKey
    필수 사항
    Ops 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)을 제공합니다.

    --ssl 이 설정된 경우 필수입니다.

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

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

    --sslServerClientCertificate 이(가) 설정되어 있고 해당 인증서가 암호화된 경우 필수입니다.

    --sslRequireValidMMSBackupServerCertificate
    옵션
    Ops Manager 호스트에 연결할 때 유효한 인증서가 필요한지 여부를 나타내는 플래그를 설정합니다. 기본값은 true 입니다.
    --sslTrustedMMSBackupServerCertificate
    옵션

    Ops Manager 호스트에 대해 신뢰할 수 있는 인증 기관 인증서의 절대 경로를 PEM 형식으로 제공합니다. 이 플래그를 지정하지 않으면 시스템 인증 기관이 사용됩니다.

    Ops Manager가 자체 서명된 SSL 인증서를 사용하는 경우 이 설정이 필요합니다.

    --httpProxy
    옵션
    도구에서 사용할 수 있는 HTTP 프록시 서버의 URL 을 입력합니다.

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

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

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

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

  • <bind_ip> 복제본 세트 구성에서 지정한 이 복제본 세트 멤버를 제공하는 호스트에 연결합니다.

  • <port> 임시 독립형 인스턴스를 시작할 때 지정한 <ephemeralPort> 로 변경합니다.

이 작업은 MongoDB 백업 복원 유틸리티를 실행할 때 삽입된 항목을 포함하여 최신 항목까지 oplog를 재생합니다.

mongod --dbpath </path/to/datafiles> \
--port <ephemeralPort> \
--bind_ip <host-serving-this-replica-set-member>
--setParameter recoverFromOplogAsStandalone=true
--setParameter takeUnstableCheckpointOnShutdown=true
--setParameter startupRecoveryForRestore=true

이 단계를 완료하면 실제 복원 프로세스가 완료됩니다.

3

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

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

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

다음 명령을 실행합니다:

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

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

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

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

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

Ops Manager가 스냅샷을 자동으로 복원하도록 하려면 다음과 같이 하세요:

1
2
3
  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는 이 서비스를 지원하지 않습니다. 해당 참고는 정보 제공 목적으로만 사용됩니다.

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

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

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

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

    Ops Manager는 대상 복제본 세트를 managed 해야 합니다 .

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

  1. Restore를 클릭합니다.

    Ops Manager가 복원에 필요한 스토리지 공간의 양을 기록합니다.

5
1
2
3
  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는 이 서비스를 지원하지 않습니다. 해당 참고는 정보 제공 목적으로만 사용됩니다.

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

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

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

6

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

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

  1. 복원 패널을 닫은 경우 Continuous Backup 을 클릭한 다음 Restore History 을 클릭합니다.

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

  3. 다음을 클릭합니다.

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

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

중요

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

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

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

7

예제

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

    참고

    복원 패널을 닫은 경우 Continuous Backup 을 클릭한 다음 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 명령

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

    Ops Manager 애플리케이션에 제공된 mongodb-backup-restore-util 명령을 복사해야 합니다.

    ./mongodb-backup-restore-util --https --host <targetHost> \
    --port <ephemeralPort> \
    --opStart <opLogStartTimeStamp> \
    --opEnd <opLogEndTimeStamp> \
    --logFile <logPath> \
    --oplogSourceAddr <oplogSourceAddr> \
    --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
    필수 사항
    oplog 를 적용해야 하는 mongod 를 제공하는 호스트의 호스트 이름, FQDN , IPv4주소 또는 IPv 주소를 제공합니다.6 mongodb-backup-restore-util Ops Manager 애플리케이션에 제공된 명령을 복사한 경우 이 필드는 미리 구성됩니다.
    --port
    필수 사항
    oplog mongod 를 적용해야 하는 를 제공하는 호스트에 대한 임시 포트를 제공합니다.
    --opStart
    필수 사항

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

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

    --opEnd
    필수 사항

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

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

    --logFile
    옵션
    파일 이름을 포함하여 MBRU 로그가 기록되는 경로를 제공합니다.
    --oplogSourceAddr
    필수 사항
    Ops Manager 리소스 엔드포인트의 URL 을 입력합니다.
    --apiKey
    필수 사항
    Ops 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)을 제공합니다.

    --ssl 이 설정된 경우 필수입니다.

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

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

    --sslServerClientCertificate 이(가) 설정되어 있고 해당 인증서가 암호화된 경우 필수입니다.

    --sslRequireValidMMSBackupServerCertificate
    옵션
    Ops Manager 호스트에 연결할 때 유효한 인증서가 필요한지 여부를 나타내는 플래그를 설정합니다. 기본값은 true 입니다.
    --sslTrustedMMSBackupServerCertificate
    옵션

    Ops Manager 호스트에 대해 신뢰할 수 있는 인증 기관 인증서의 절대 경로를 PEM 형식으로 제공합니다. 이 플래그를 지정하지 않으면 시스템 인증 기관이 사용됩니다.

    Ops Manager가 자체 서명된 SSL 인증서를 사용하는 경우 이 설정이 필요합니다.

    --httpProxy
    옵션
    도구에서 사용할 수 있는 HTTP 프록시 서버의 URL 을 입력합니다.

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

9

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

10

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

11

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

중요

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

Ops Manager가 AES256-GCM으로 암호화한 암호화된 스냅샷을 복원하는 경우, 복원 작업 완료 후 마스터 키를 로테이션합니다.

돌아가기

샤드 클러스터 복원

다음

백업 스냅샷 쿼리