스냅샷에서 복제본 세트 복원
백업 에서 복제본 세트 를 복원 하면 MongoDB Ops Manager 가 선택한 복원 점 에 대한 복원 파일 을 제공합니다. 복원 프로세스 에 학습 보려면 복원 개요를 참조하세요.
고려 사항
BSON 하위 유형에 대한 변경 BinData
사항 검토
BSON 사양 BSON 바이너리 데이터 유형(BinData
)의 기본 하위 유형을 2
에서 0
로 변경했습니다. 스냅샷에 저장된 일부 바이너리 데이터는 BinData
하위 유형 2 일 수 있습니다. 백업은 BinData
하위 유형 2 의 스냅샷 데이터를 자동으로 감지하고 BinData
하위 유형 0 로 변환합니다. 애플리케이션 코드에 BinData
하위 유형 2 가 예상되는 경우 BinData
하위 유형 0 과 함께 작동하도록 애플리케이션 코드를 업데이트해야 합니다.
다음에 지정된 설정을 사용하여 복원 restoreInfo.txt
백업 복원 파일에는 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가 스냅샷을 자동으로 복원하도록 하려면 다음과 같이 하세요:
복원 지점을 선택합니다.
백업을 복원할 지점을 선택합니다.
복원 유형설명작업Snapshot복원할 기존 스냅샷 을 선택합니다.Point In Time선택한 시간까지의 모든 작업을 포함하지만 포함하지 않는 사용자 지정 스냅샷을 생성합니다. 기본적으로 oplog 스토어는 24시간 분량의 데이터를 저장합니다.
예를 예시
12:00
을 선택하는 경우 복원 의 마지막 작업은11:59:59
이하입니다.중요
FCV 4.0 에서는 최신 백업 재동기화 이전의 시간에 대한 PIT 복원 을 수행할 수 없습니다. 재동기화가 발생하는 조건 은 백업 재동기화를 참조하세요. 이 참고 사항은 FCV 4.2 이상에는 적용 되지 않습니다.
Date 및 Time 을(를) 선택합니다.Oplog Timestamp입력 oplog 타임스탬프를 포함하여 해당 시점까지의 모든 작업을 포함하는 사용자 지정 스냅샷을 생성합니다. oplog 타임스탬프에는 두 개의 필드가 포함되어 있습니다.
TimestampUNIX epoch 이후경과된 시간(초)의 타임스탬프
Increment해당 초에 32비트 서수로 적용되는 작업 순서입니다.oplog Timestamp 및 Increment를 입력합니다.
복제본 세트 에서
local.oplog.rs
에 대한 쿼리를 실행하여 원하는 타임스탬프를 찾습니다.Next를 클릭합니다.
경고
자동 복원 고려
이 절차에는 많은 단계가 포함됩니다. 이러한 단계 중 일부는 보안에 심각한 영향을 미칩니다. MongoDB Ops Manager 가 관리 하지 않는 배포서버 로 복원 할 필요가 없는 경우 자동 복원 을 고려하세요.
스냅샷
복원 지점을 선택합니다.
백업을 복원할 지점을 선택합니다.
복원 유형설명작업Snapshot복원할 기존 스냅샷 을 선택합니다.Point In Time선택한 시간까지의 모든 작업을 포함하지만 포함하지 않는 사용자 지정 스냅샷을 생성합니다. 기본적으로 oplog 스토어는 24시간 분량의 데이터를 저장합니다.
예를 예시
12:00
을 선택하는 경우 복원 의 마지막 작업은11:59:59
이하입니다.중요
FCV 4.0 에서는 최신 백업 재동기화 이전의 시간에 대한 PIT 복원 을 수행할 수 없습니다. 재동기화가 발생하는 조건 은 백업 재동기화를 참조하세요. 이 참고 사항은 FCV 4.2 이상에는 적용 되지 않습니다.
Date 및 Time 을(를) 선택합니다.Oplog Timestamp입력 oplog 타임스탬프를 포함하여 해당 시점까지의 모든 작업을 포함하는 사용자 지정 스냅샷을 생성합니다. oplog 타임스탬프에는 두 개의 필드가 포함되어 있습니다.
TimestampUNIX epoch 이후경과된 시간(초)의 타임스탬프
Increment해당 초에 32비트 서수로 적용되는 작업 순서입니다.oplog Timestamp 및 Increment를 입력합니다.
복제본 세트 에서
local.oplog.rs
에 대한 쿼리를 실행하여 원하는 타임스탬프를 찾습니다.Next를 클릭합니다.
스냅샷 다운로드 를 구성합니다.
다음 다운로드 옵션을 구성합니다.
Pull Restore Usage Limit링크를 사용할 수 있는 횟수를 선택합니다.No Limit
을(를) 선택하면 링크가 만료될 때까지 재사용할 수 있습니다.Restore Link Expiration (in hours)링크가 만료될 때까지 남은 시간을 선택합니다. 기본값 은1
입니다. 최대값은 선택한 스냅샷 이 만료될 때까지의 시간 수입니다.Finalize Request를 클릭합니다.
2FA 를 사용하는 경우 MongoDB Ops Manager 는 2FA 코드를 입력하라는 메시지를 표시합니다. 2FA 코드를 입력한 다음 Finalize Request 를 클릭합니다.
Retrieve the Snapshots.
MongoDB Ops Manager 가 스냅샷 에 대한 링크를 생성합니다. 기본값 으로 이러한 링크는 1시간 동안 사용할 수 있으며 한 번만 사용할 수 있습니다.
스냅샷을 다운로드 하려면 다음을 수행합니다.
복원 패널을 닫은 경우 Continuous Backup 을 클릭한 다음 Restore History 을 클릭합니다.
복원 작업 이 완료되면 표시되는 각 복제본 세트 에 대해 (get link) 를 클릭합니다.
다음을 클릭합니다.
링크 오른쪽에 있는 복사 버튼을 클릭하여 링크를 복사하여 나중에 사용하거나
Download 스냅샷 을 즉시 다운로드 할 수 있습니다.
복제본 세트 준비
대상 복제본 세트 관리를 해제합니다.
데이터를 수동으로 복원 하기 전에 자동화에서 복제본 세트 를 제거 합니다.
Unmanage this item in Ops Managers but continue to monitor 옵션을 선택합니다.
대상 복제본 세트를 중지합니다.
경로에 따라 mongosh
경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.
mongosh --port <port> \ --eval "db.getSiblingDB('admin').shutdownServer()"
대상 복제본 세트의 하드웨어 및 소프트웨어 요구 사항을 확인합니다.
저장 용량 | 대상 호스트의 hardware 에는 복원된 데이터를 저장할 수 있는 충분한 여유 저장 공간이 있어야 합니다. 이 호스팅하다 에 기존 클러스터 데이터를 유지하려면 호스팅하다 에 클러스터 데이터와 복원된 데이터를 위한 충분한 여유 공간이 있는지 확인합니다. |
MongoDB 버전 | 복원하려는 대상 호스팅하다 와 복원하는 소스 호스팅하다 는 동일한 MongoDB Server 버전을 실행 해야 합니다. MongoDB 버전을 확인하려면 터미널 또는 shell 에서 mongod
--version 를 실행 합니다. |
학습 내용은 설치를 참조하세요.
인스턴스 초기화 및 구성
임시 포트에서 임시 독립형 인스턴스를 시작합니다.
임시 조치로 독립형 모드 에서 mongod
프로세스 를 시작합니다. 이렇게 하면 후속 단계에서 system.replset
컬렉션 에 새 구성 매개 변수를 추가할 수 있습니다.
이 절차의 모든 단계에서 임시 독립형 mongod
프로세스 에 대해 언급된 경우 <ephemeralPort>
를 사용합니다. 이 포트는 소스 및 대상 호스팅하다 포트와 달라야 합니다.
다음과 같이 mongod
프로세스 를 실행합니다. 경로에 따라 mongod
바이너리의 경로를 지정해야 할 수도 있습니다.
mongod --dbpath </path/to/datafiles> \ --port <ephemeralPort> \
네임스페이스 필터링된 스냅샷 에서 복원하는 경우 --restore
옵션을 사용합니다.
mongod --dbpath </path/to/datafiles> \ --port <ephemeralPort> \ --restore
mongod
프로세스 가 연결을 수락하기 시작하면 계속 진행합니다.
을(를) 사용하여 mongosh
임시 독립형인스턴스에 연결합니다.
이 mongod
프로세스 를 실행 하는 호스팅하다 에서 mongosh
을(를) 시작합니다. 경로에 따라 mongosh
경로를 지정해야 할 수도 있습니다.
이전 단계에서 지정된 동일한 <ephemeralPort>
에서 로컬 호스트를 수신 대기 중인 mongod
에 연결하려면 다음을 실행.
mongosh --port <ephemeralPort>
데이터베이스에서 복제본 세트 관련 컬렉션을 제거합니다.local
수동 복원을 수행하려면 에서 백업 관리자 역할 이 있어야 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 })
새 복제본 세트 구성을 추가합니다.
다음 문서 를 local
데이터베이스 의 system.replset
컬렉션 에 삽입합니다. 다음 변수를 변경합니다.
<replaceMeWithTheReplicaSetName>
를 복제본 세트 의 이름으로 변경합니다. 이 이름은 이전 이름과 동일할 필요가 없습니다.<host>
이 복제본 세트 멤버를 제공하는 호스팅하다 에 연결합니다.<finalPortNewReplicaSet>
새 복제본 세트 의 최종 포트에 연결합니다. 자동 복원 의 경우 이전에 지정한<ephemeralPort>
이외의 다른 포트를 지정해야 합니다.
members
배열 에 새 복제본 세트 의 모든 멤버를 포함하고 구성해야 합니다.
1 db.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>" }
복원 지점을 의 값으로 Restore Timestamp
restoreInfo.txt
설정합니다.
oplogTruncateAfterPoint
문서 를 restoreInfo.txt 파일 의 Restore Timestamp
필드 에 제공된 값으로 설정합니다.
해당 파일 의 Restore Timestamp
필드 에는 두 개의 값이 포함되어 있습니다. 다음 예시 에서 첫 번째 값은 타임스탬프이고 두 번째 값은 증분입니다.
1 ... 2 Restore timestamp: (1609947369, 2) 3 Last Oplog Applied: Wed Jan 06 15:36:09 GMT 2021 (1609947369, 1) 4 MongoDB 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 이상 스냅샷에는 적용 되지 않습니다.
인스턴스 관리
임시 독립형 인스턴스를 중지합니다.
경로에 따라 mongosh
경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.
mongosh --port <ephemeralPort> \ --eval "db.getSiblingDB('admin').shutdownServer()"
임시 포트에서 임시 인스턴스를 중지합니다.
경로에 따라 mongosh
경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.
mongosh --port <ephemeralPort> \ --eval "db.getSiblingDB('admin').shutdownServer()"
특정 시점 스냅샷 복원
(특정 시점 복원만 해당) MongoDB 백업 복원 유틸리티를 실행합니다.
이 단계는 조건부입니다. 특정 시점 복원이 필요한 경우 실행합니다.
이 단계에서는 복제본 세트 의 대상 인스턴스 에서 MongoDB 백업 복원 유틸리티를 다운로드 하여 실행 한 다음 인스턴스 를 중지합니다.
MongoDB 백업 복원 유틸리티를 호스팅하다 에 다운로드합니다.
복원 패널을 닫은 경우 Continuous Backup in Deployment, More, Download MongoDB Backup Restore Utility 를 차례로 클릭합니다.
추출한 스냅샷 디렉토리 를 데이터 디렉토리 로 사용하여 인증 을 활성화하지 않고
mongod
인스턴스 를 시작합니다. 경로에 따라mongod
바이너리의 경로를 지정해야 할 수도 있습니다.mongod --port <ephemeralPort> \ --dbpath </path/to/datafiles> \ --setParameter ttlMonitorEnabled=false \ --bind_ip <hostname_or_IP> 경고
MongoDB 백업 복원 유틸리티는 인증 을 지원 하지 않으므로 이 임시 데이터베이스 를 인증 으로 시작할 수 없습니다.
대상 호스팅하다 에서 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
필수 사항--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
옵션--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
명령을 복사한 경우 이 필드 가 미리 구성되어 있음을 의미합니다.인스턴스 에서
mongod
을(를) 중지합니다. 경로에 따라mongosh
경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.mongosh --port <ephemeralPort> \ --eval "db.getSiblingDB('admin').shutdownServer()"
(특정 시점 복원만 해당) 인스턴스를 다시 시작하여 oplog 를 복구합니다.
매개변수를 지정하여 다음 명령을 사용하여 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
이 단계를 완료하면 실제 복원 프로세스 가 완료됩니다.
(특정 시점 복원만 해당) 독립형 인스턴스를 중지합니다.
경로에 따라 mongosh
경로를 지정해야 할 수도 있습니다. 다음을 실행합니다.
mongosh --port <port> \ --eval "db.getSiblingDB('admin').shutdownServer()"
자동화 재개
복제본 세트의 모든 노드를 다시 시작합니다.
이 점 에서 복제본 세트 의 데이터 파일은 일관적인 상태 이지만 각 노드 가 서로를 인식할 수 있도록 복제본 세트 구성을 업데이트해야 합니다.
다음 명령을 실행합니다:
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
복제본 세트를 다시 가져옵니다.
자동화 를 통해 복제본 세트를 다시 관리 하려면복제본 세트 MongoDB Ops Manager를 로 다시 복제본 세트 옵니다 .
Deployment 페이지에서 Add 을 클릭하고 Existing MongoDB Deployment 을 선택한 다음 클러스터 에 Automation 을 다시 추가합니다.
Ops Manager가 스냅샷을 자동으로 복원하도록 하려면 다음과 같이 하세요:
복원 지점을 선택합니다.
백업을 복원할 지점을 선택합니다.
복원 유형설명작업Snapshot복원할 기존 스냅샷 을 선택합니다.Point In Time선택한 시간까지의 모든 작업을 포함하지만 포함하지 않는 사용자 지정 스냅샷을 생성합니다. 기본적으로 oplog 스토어는 24시간 분량의 데이터를 저장합니다.
예를 예시
12:00
을 선택하는 경우 복원 의 마지막 작업은11:59:59
이하입니다.중요
FCV 4.0 에서는 최신 백업 재동기화 이전의 시간에 대한 PIT 복원 을 수행할 수 없습니다. 재동기화가 발생하는 조건 은 백업 재동기화를 참조하세요. 이 참고 사항은 FCV 4.2 이상에는 적용 되지 않습니다.
Date 및 Time 을(를) 선택합니다.Oplog Timestamp입력 oplog 타임스탬프를 포함하여 해당 시점까지의 모든 작업을 포함하는 사용자 지정 스냅샷을 생성합니다. oplog 타임스탬프에는 두 개의 필드가 포함되어 있습니다.
TimestampUNIX epoch 이후경과된 시간(초)의 타임스탬프
Increment해당 초에 32비트 서수로 적용되는 작업 순서입니다.oplog Timestamp 및 Increment를 입력합니다.
복제본 세트 에서
local.oplog.rs
에 대한 쿼리를 실행하여 원하는 타임스탬프를 찾습니다.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
값의 부분은 Timestamp 및 Increment 상자에 필요한 값에 해당합니다.
참고
에포크 시간을 사람이 읽을 수 있는 타임스탬프로 변환하려면 에포크 변환기 와 같은 도구를 사용해 보세요.
MongoDB는 이 서비스를 지원하지 않습니다. 해당 참고는 정보 제공 목적으로만 사용됩니다.
복원 지점을 선택합니다.
백업을 복원할 지점을 선택합니다.
복원 유형설명작업Snapshot복원할 기존 스냅샷 을 선택합니다.Point In Time선택한 시간까지의 모든 작업을 포함하지만 포함하지 않는 사용자 지정 스냅샷을 생성합니다. 기본적으로 oplog 스토어는 24시간 분량의 데이터를 저장합니다.
예를 예시
12:00
을 선택하는 경우 복원 의 마지막 작업은11:59:59
이하입니다.중요
FCV 4.0 에서는 최신 백업 재동기화 이전의 시간에 대한 PIT 복원 을 수행할 수 없습니다. 재동기화가 발생하는 조건 은 백업 재동기화를 참조하세요. 이 참고 사항은 FCV 4.2 이상에는 적용 되지 않습니다.
Date 및 Time 을(를) 선택합니다.Oplog Timestamp입력 oplog 타임스탬프를 포함하여 해당 시점까지의 모든 작업을 포함하는 사용자 지정 스냅샷을 생성합니다. oplog 타임스탬프에는 두 개의 필드가 포함되어 있습니다.
TimestampUNIX epoch 이후경과된 시간(초)의 타임스탬프
Increment해당 초에 32비트 서수로 적용되는 작업 순서입니다.oplog Timestamp 및 Increment를 입력합니다.
복제본 세트 에서
local.oplog.rs
에 대한 쿼리를 실행하여 원하는 타임스탬프를 찾습니다.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
값의 부분은 Timestamp 및 Increment 상자에 필요한 값에 해당합니다.
참고
에포크 시간을 사람이 읽을 수 있는 타임스탬프로 변환하려면 에포크 변환기 와 같은 도구를 사용해 보세요.
MongoDB는 이 서비스를 지원하지 않습니다. 해당 참고는 정보 제공 목적으로만 사용됩니다.
스냅샷 다운로드 를 구성합니다.
다음 다운로드 옵션을 구성합니다.
Pull Restore Usage Limit링크를 사용할 수 있는 횟수를 선택합니다.No Limit
을(를) 선택하면 링크가 만료될 때까지 재사용할 수 있습니다.Restore Link Expiration (in hours)링크가 만료될 때까지 남은 시간을 선택합니다. 기본값 은1
입니다. 최대값은 선택한 스냅샷 이 만료될 때까지의 시간 수입니다.Finalize Request를 클릭합니다.
2FA 를 사용하는 경우 MongoDB Ops Manager 는 2FA 코드를 입력하라는 메시지를 표시합니다. 2FA 코드를 입력한 다음 Finalize Request 를 클릭합니다.
Retrieve the snapshots.
MongoDB Ops Manager 가 스냅샷 에 대한 링크를 생성합니다. 기본값 으로 이러한 링크는 한 시간 동안 사용할 수 있으며 한 번만 사용할 수 있습니다.
스냅샷을 다운로드 하려면 다음을 수행합니다.
복원 패널을 닫은 경우 Continuous Backup 을 클릭한 다음 Restore History 을 클릭합니다.
복원 작업 이 완료되면 각 복제본 세트 에 대해 (get link) 를 클릭하면 나타납니다.
다음을 클릭합니다.
링크 오른쪽에 있는 복사 버튼을 클릭하여 링크를 복사하여 나중에 사용하거나
Download 스냅샷 을 즉시 다운로드 할 수 있습니다.
중요
특정 시점 복원을 위한 추가 단계
특정 시점 및 oplog 타임스탬프 복원의 경우 추가 지침이 표시됩니다. 마지막 단계에서는 MBRU 를 사용하여 실행 해야 하는 전체 명령을 보여 줍니다. 여기에는 전체 복원 을 보장하는 데 필요한 모든 옵션이 포함되어 있습니다.
Run Binary with PIT Options 아래에 제공된 mongodb-backup-restore-util
명령을 선택하여 복사합니다.
MongoDB 백업 복원 유틸리티를 실행합니다(특정 시점 복원만 해당).
MongoDB 백업 복원 유틸리티를 호스팅하다 에 다운로드합니다.
참고
복원 패널을 닫은 경우 Continuous Backup 을 클릭한 다음 More , Download MongoDB Backup Restore Utility 를 차례로 클릭합니다.
추출한 스냅샷 디렉토리 를 데이터 디렉토리 로 사용하여 인증 을 활성화하지 않고
mongod
인스턴스 를 시작합니다.예시
mongod --port <port number> \ --dbpath <temp-database-path> \ --setParameter ttlMonitorEnabled=false 경고
MongoDB 백업 복원 유틸리티는 인증 을 지원 하지 않으므로 이 임시 데이터베이스 를 인증 으로 시작할 수 없습니다.
대상 호스팅하다 에서 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
필수 사항--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
옵션--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
명령을 복사한 경우 이 필드 가 미리 구성되어 있음을 의미합니다.
복제본 세트 관리를 해제합니다.
데이터를 수동으로 복원 하기 전에 자동화에서 복제본 세트 를 제거 합니다.
복제본 세트를 수동으로 복원합니다.
MongoDB 매뉴얼의 튜토리얼에 따라 복제본 세트 를 복원 하세요.
복제본 세트를 다시 가져옵니다.
자동화 를 통해 복제본 세트를 다시 관리 하려면복제본 세트 MongoDB Ops Manager를 로 다시 복제본 세트 옵니다 .
중요
AES256-GCM으로 암호화된 스냅샷을 복원한 후 마스터 키 순환
Ops Manager가 AES256-GCM으로 암호화한 암호화된 스냅샷을 복원하는 경우, 복원 작업 완료 후 마스터 키를 로테이션합니다.