다음을 통해 공유


복원, 복구 보류 또는 오프라인 상태의 증분 복원 시퀀스 계획

이 항목에서는 데이터베이스의 증분 복구를 계획할 경우 SQL Server 데이터베이스에 여러 개의 파일 그룹이 있는 경우 및 단순 복구 모델에서 데이터베이스에 읽기 전용 파일 그룹만 있는 경우와 관련된 내용을 다룹니다.

복원 시퀀스에 복원, 복구 보류 또는 오프라인 상태의 파일이 포함되어 있는 경우 해당 데이터를 복원하지 않고 파일을 복구할 수 있습니다. 파일의 전체 백업을 복원해야 할지 또는 파일 복구만 수행할 수 있는지를 결정하려면 sys.database_filessys.master_files 카탈로그 뷰에 저장된 메타데이터를 사용합니다.

다시 실행 LSN

첫 번째 단계는 redo_start_lsn, redo_start_fork_guid, redo_target_lsnredo_target_fork_guid와 같은 다시 실행 LSN을 포함하는 카탈로그 뷰 열을 확인하는 것입니다. 다음 표에서는 다시 실행 LSN에 대해 설명하고 이러한 다시 실행 LSN을 해석하는 방법에 대해서도 설명합니다.

설명

redo_start_lsnredo_start_fork_guid

이러한 두 열에서는 파일의 지정 시간을 나타내는 lsn, guid 쌍에 대해 설명합니다. 파일이 롤포워드되면 이 열의 값이 변경됩니다. 이 지점에서부터 롤포워드가 계속됩니다.

중요 정보중요
redo_start_lsn= NULL이면 디스크에서 파일이 어떤 상태인지 알 수 없으므로 전체 백업에서 파일을 복원해야 합니다.

redo_target_lsnredo_target_fork_guid

이러한 두 열에서는 온라인 데이터베이스와의 일치하도록 파일을 복원해야 하는 복구 지점(대상 복구 지점)을 정의하는 lsn, guid 쌍에 대해 설명합니다.

sys.database_files 또는 sys.master_files 사용 여부 결정

sys.database_filessys.master_files 카탈로그 뷰는 모두 다시 실행 LSN 열을 포함하지만 이러한 뷰가 항상 일치하는 것은 아닙니다. 일반적으로 데이터베이스가 온라인 상태이면 sys.database_filessys.master_files의 값이 일치합니다. 하지만 다음과 같이 값이 일치하지 않는 경우가 있습니다.

  • 데이터베이스가 읽기 전용이면 백업에 의한 어떤 변경 사항이 있더라도 sys.database_files는 업데이트되지 않으며 sys.master_files에만 최신 정보가 포함됩니다.

    [!참고]

    파일이 읽기 전용인지 여부를 확인하려면 is_read_onlyread_only_lsn 열을 확인하십시오. is_read_only는 파일이 읽기 전용인지 여부를 나타냅니다. 읽기 전용일 경우 read_only_lsn이 파일이 읽기 전용이 된 지점을 나타냅니다.

  • 데이터베이스가 오프라인이면(예: 복원 중인 경우) 데이터베이스 카탈로그에 액세스할 수 없습니다. 오프라인 데이터베이스의 경우 정보를 가져오려면 sys.master_files를 사용해야 합니다.

  • 현재 복원 작업이 파일에 영향을 미치는 경우 파일의 다시 실행 LSN이 업데이트되거나 일치하지 않게 됩니다. 복원 작업 사이에 다시 실행 LSN 열을 확인해야 합니다.

이 열의 해석

[!참고]

이 섹션에서는 사용자가 복구 경로 및 복구 분기 지점에 대한 개념을 잘 알고 있다고 가정합니다. 자세한 내용은 복구 경로을 참조하십시오.

이 섹션은 지정 시간 복구를 수행했는데 더 이상 존재하지 않는 복구 경로의 백업을 가지고 있는 경우에만 해당됩니다. 복원, 복구 보류 또는 오프라인 상태의 파일을 복원하는 경우 복구 분기 지점이 관련됩니다. 복구 분기 지점을 분석하여 잠재적인 복구 경로를 확인할 수 있습니다. 일반적으로 한 개의 복구 경로가 데이터베이스 복구에 가장 적합합니다.

최상의 복구 경로를 식별하려면 다음과 같이 파일이 대상 복구 분기에 있는지, 아니면 다른 복구 분기에 있는지를 확인해야 합니다.

  • 파일이 다른 복구 분기 지점에 있는 경우

    redo_start_fork_guid!=redo_target_fork_guid이고 redo_target_fork_guid의 상위 항목이 아니면 파일은 대상 분기 지점과 다른 복구 분기 지점에 있습니다.

    [!참고]

    상위 분기 지점을 찾으려면 로그 체인을 역방향으로 따라 갑니다. 자세한 내용은 복구 경로를 참조하십시오.

    이 경우 파일을 전체 백업에서 복원해야 합니다. 이 복원은 파일을 데이터베이스 현재 복구 지점의 유효한 상위 지점에 배치합니다.

    [!참고]

    어떤 파일이든 복원을 위해서는 파일 백업이 데이터베이스 복구 지점의 상위 항목이어야 합니다. 항상 파일의 최신 전체 백업을 찾으십시오. 데이터는 대상 지점으로 롤포워드해야 합니다. 파일이 백업 이전부터 읽기 전용인 경우에만 읽기 전용 파일의 백업을 롤포워드할 필요가 없습니다. 필요할 경우 파일 백업을 복원한 후 차등 파일 백업(있는 경우) 및 로그 백업을 복원하여 파일을 대상 복구 지점으로 가져옵니다.

  • 파일이 현재(대상) 복구 분기 지점에 있거나 대상 분기 지점의 상위 항목인 경우

    [!참고]

    데이터베이스 복구 후 파일의 백업을 가져왔다면 파일은 대상 복구 분기 지점에 있습니다.

    이 경우 파일을 복원해야 할지 여부는 아래 표에 설명되어 있는 것과 같이 redo_start_lsnredo_target_lsn의 관계에 따라 달라집니다.

    조건

    결과

    redo_start_lsn=redo_target_lsn

    파일을 복원할 필요가 없습니다.

    파일이 데이터베이스와 일치하며 RESTORE DATABASE database_name WITH RECOVERY를 사용하지 않고 파일을 온라인 상태로 만들 수 있습니다.

    redo_start_lsn<redo_target_lsn

    파일이 온라인 가능 상태가 되기 전에 롤포워드가 redo_target_lsn에 도달해야 합니다.

    redo_start_lsn>redo_target_lsn

    데이터베이스가 파일보다 이전 상태입니다. 파일을 전체 백업에서 복원해야 합니다. 이렇게 하지 않으면 데이터베이스가 다른 부분 복원 시퀀스에 의해 나중 시점으로 다시 복원될 수 있습니다.

    참고참고
    온라인 복원의 경우 주 파일 그룹이 복구되는 즉시 새 복구 분기 지점이 생성되므로 이러한 상황은 오프라인 복원 시에만 발생할 수 있습니다. 복구되지 않은 모든 보조 파일 그룹은 더 이상 주 파일 그룹과 동일한 복구 경로에 있지 않습니다.

[!참고]

이러한 복구 경로 중 하나에 대한 백업을 복원하면 대체 복구 경로가 더 이상 유효하지 않게 됩니다. 유효하지 않은 복구 경로에 관련된 백업은 존재하지 않는 상태가 됩니다. 가장 좋은 방법은 존재하지 않는 백업을 삭제하거나 해당 백업을 무시하고 명확하게 존재하지 않는 것으로 표시하는 것입니다.