Docs Menu
Docs Home
/
MongoDB Ops Manager
/ /

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

이 페이지의 내용

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

백업 에서 복제본 세트 를 복원 하면 MongoDB 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 데이터베이스는 적절한 백업 고려 사항을 충족해야 합니다.

수동 복원을 수행하려면 에서 백업 관리자 역할 이 있어야 MongoDB 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

경고

자동 복원 고려

이 절차에는 많은 단계가 포함됩니다. 이러한 단계 중 일부는 보안에 심각한 영향을 미칩니다. MongoDB 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 를 사용하는 경우 MongoDB Ops Manager 는 2FA 코드를 입력하라는 메시지를 표시합니다. 2FA 코드를 입력한 다음 Finalize Request 를 클릭합니다.

6

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

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

  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
저장 용량
대상 호스트의 hardware 에는 복원된 데이터를 저장할 수 있는 충분한 여유 저장 공간이 있어야 합니다. 이 호스팅하다 에 기존 클러스터 데이터를 유지하려면 호스팅하다 에 클러스터 데이터와 복원된 데이터를 위한 충분한 여유 공간이 있는지 확인합니다.
MongoDB 버전
복원하려는 대상 호스팅하다 와 복원하는 소스 호스팅하다 는 동일한 MongoDB Server 버전을 실행 해야 합니다. MongoDB 버전을 확인하려면 터미널 또는 shell 에서 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

수동 복원을 수행하려면 에서 백업 관리자 역할 이 있어야 MongoDB 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.4 을 실행 하는 mongod 를 사용하여 MongoDB 4.2 스냅샷 을 복원 하려고 하면 oplog 에 불필요한 문서가 포함될 수 있습니다.

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

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

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

  • MongoDB 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 명령

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

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

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

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

    --opEnd
    필수 사항

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

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

    --logFile
    옵션
    파일 이름을 포함하여 MBRU 로그 가 기록되는 경로를 제공합니다.
    --oplogSourceAddr
    필수 사항
    리소스 URL MongoDB Ops Manager 엔드포인트의 을 입력합니다.
    --apiKey
    필수 사항
    MongoDB 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
    옵션
    MongoDB Ops Manager 호스팅하다 에 연결하는 데 사용할 클라이언트 인증서 파일 의 절대 경로를 제공합니다.
    --sslServerClientCertificatePassword
    조건부

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

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

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

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

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

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

    는 MongoDB 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.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
2

자동화 를 통해 복제본 세트를 다시 관리 하려면복제본 세트 MongoDB 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 를 사용하는 경우 MongoDB Ops Manager 는 2FA 코드를 입력하라는 메시지를 표시합니다. 2FA 코드를 입력한 다음 Finalize Request 를 클릭합니다.

6

MongoDB 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 명령

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

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

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

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

    --opEnd
    필수 사항

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

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

    --logFile
    옵션
    파일 이름을 포함하여 MBRU 로그 가 기록되는 경로를 제공합니다.
    --oplogSourceAddr
    필수 사항
    리소스 URL MongoDB Ops Manager 엔드포인트의 을 입력합니다.
    --apiKey
    필수 사항
    MongoDB 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
    옵션
    MongoDB Ops Manager 호스팅하다 에 연결하는 데 사용할 클라이언트 인증서 파일 의 절대 경로를 제공합니다.
    --sslServerClientCertificatePassword
    조건부

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

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

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

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

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

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

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

9

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

10

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

11

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

중요

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

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

돌아가기

샤딩된 클러스터