프로덕션 데이터 저장소와 마찬가지로 동기화에 관련있는 데이터 저장소도 정기적으로 백업해야 합니다. 백업에서 데이터 저장소를 복원해야 하는 경우에는 다음과 같은 사항을 고려하십시오.
복원 후에 데이터 저장소에 대해 수행한 변경 내용이 다른 복제본으로 전파되지 않을 수 있습니다.
원본 복제본의 변경 내용에 버전을 할당하는 데 사용되는 틱 수로 인해 변경 내용이 사용되지 않은 것으로 검색될 수 있으므로 이러한 문제가 발생할 수 있습니다. 예를 들어 원본 공급자가 대상 공급자에게 변경 내용을 보냅니다. 대상 공급자는 변경 내용을 적용하고 정보를 업데이트합니다. 원본 복제본이 이전의 백업으로부터 복원되고 여기에는 이전의 틱 수가 포함됩니다. 이러한 이전 틱 수를 기준으로 원본 복제본의 변경 사항에 버전이 할당됩니다. 동기화가 다시 수행됩니다. 원본 공급자에서 열거된 일부 변경 내용에는 대상 정보에 포함된 부정확한 틱 수가 있으므로 이 내용은 사용하지 않는 것으로 검색되고 대상 복제본에 적용되지 않습니다.
이러한 상황에서 좋은 해결 방법은 복제본이 백업에서 복원될 때마다 새로운 복제본 ID를 할당하는 것입니다. 이렇게 하면 복원된 복제본을 백업된 복제본으로부터 모든 데이터를 받은 새로운 복제본으로 취급하고, 백업된 복제본을 동기화 커뮤니티에서 제외된 것으로 취급합니다. 새로운 복제본 ID로 인하여 동기화 커뮤니티의 다른 복제본에 복원된 복제본에 대한 정보가 없으므로 복원된 복제본에 추가된 새 항목이 동기화 중에 올바로 전송됩니다.
메타데이터를 저장하기 위해 Metadata Storage Service를 사용하는 경우 복제본 ID를 변경하려면 별도의 단계가 필요합니다. 다음과 같습니다.
백업으로부터의 복원을 위해 디자인된 특수 모드에서 작동할 수 있도록 공급자를 구현합니다. 복원 모드에서 대상 공급자는 메타데이터 변경 내용만 대상 복제본에 적용합니다. 공급자는 로컬 변경 내용을 검색하지 않고 데이터 변경 내용을 복제본에 적용하지 않습니다.
백업에서 복제본을 복원합니다. 복제본이 백업으로부터 복원되면 공급자의 인스턴스를 두 개 만듭니다. 원본 공급자는 이전 복제본 ID로 복원된 복제본을 나타내고 대상 공급자는 새로운 복제본 ID와 새로운 메타데이터 저장소로 복원된 복제본을 나타냅니다. 대상 공급자를 복원 모드로 설정합니다.
원본 공급자에서 대상 공급자로 동기화합니다. 이렇게 하면 새 복제본 ID의 새 메타데이터 저장소를 채웁니다.
이전 메타데이터 저장소를 삭제하고 새 메타데이터 저장소와 새 복제본 ID를 사용하여 복제본을 나타냅니다. 이제 나머지 동기화 커뮤니티와 동기화할 수 있습니다.
이름이 같은 항목이 이전에 만들어지고 동기화된 경우 복원 이후 만들어진 새 항목으로 인해 이름 충돌이 발생할 수 있습니다.
예를 들어 원본 복제본이 파일을 저장합니다. 원본 공급자가 "MyChange.txt" 파일에 대한 만들기 변경 내용을 보냅니다. 원본 복제본이 이전의 백업으로부터 복원되고 여기에는 MyChange.txt가 포함되지 않습니다. 새로운 MyChange.txt 파일이 만들어지고 원본 공급자에 의해 새로운 항목 ID가 할당됩니다. 동기화가 다시 수행됩니다. MyChange.txt에 대한 변경 내용이 전송되면 MyChange.txt 파일 두 개가 이름은 같지만 항목 ID가 다르므로 대상 공급자가 제약 조건 충돌을 검색합니다.
이러한 상황에서 좋은 해결 방법은 공급자에서 제약 조건 충돌을 처리하는 것입니다. 이 방법을 통해 이름 충돌이 발생할 때 제약 조건 충돌로 보고되고 올바로 해결될 수 있습니다. 제약 조건 충돌에 대한 자세한 내용은 제약 조건 충돌 검색 및 해결을 참조하십시오.