라이브 SQL Server 백업 중에는 어떻게됩니까?


18

내 동료 중 일부는 SQL Server 데이터베이스가 아직 실행 중일 때 백업 할 수 있고 그것이 어떻게 가능한지 궁금하다고 말했을 때 놀랐습니다. SQL Server가 여전히 온라인 상태 일 때 데이터베이스를 백업 할 수 있지만 가능한 이유를 설명하는 방법을 잘 모르겠습니다. 내 질문은 이것이 데이터베이스에 어떤 영향을 미칩니 까?

백업이 실행되는 동안 데이터가 수정 (삽입, 업데이트 또는 삭제에 의해)되면 백업에 이러한 변경 사항이 포함되거나 나중에 데이터베이스에 추가됩니까?

로그 파일이 여기서 중요한 역할을한다고 가정하지만 방법을 잘 모르겠습니다.

편집 : 참고로, 내 경우에는 SQL Server 에이전트를 사용하여 데이터베이스를 백업 하고이 프로세스 동안 데이터베이스 수정의 영향을 포함합니다.

답변:


24

전체 백업에는 데이터와 로그가 모두 포함됩니다. 데이터의 경우 페이지를 읽는 순간 과 마찬가지로 데이터베이스의 각 페이지를 백업에 복사하기 만하면 됩니다. 그런 다음 모든 '관련'로그를 백업 미디어에 추가합니다. 여기에는 최소한 백업 작업 시작시 LSN과 백업 작업 종료시 LSN 사이의 모든 로그가 포함됩니다. 실제로 백업 시작시 모든 활성 트랜잭션과 복제에 필요한 로그를 포함해야하므로 일반적으로 더 많은 로그가 있습니다. 전체 데이터베이스 백업에 관한 몇 가지 신화 제거를 참조하십시오 .

데이터베이스가 복원되면 모든 데이터 페이지가 데이터베이스 파일로 복사 된 후 모든 로그 페이지가 로그 파일로 복사됩니다. 데이터베이스가 서로 동기화되지 않은 데이터 페이지 이미지를 포함하고 있기 때문에이 시점에서 데이터베이스가 일치하지 않습니다. 그러나 이제 정상적인 복구 가 실행됩니다. 로그에는 백업 중에 모든 로그가 포함되므로 복구가 끝나면 데이터베이스는 일관성이 있습니다.


1
훌륭한 게시물과 링크가 좋은 예를 제공하는 데 도움이되었습니다. 감사.
Sean Howat

매우 간결합니다. 잘 했어!
allen1

2

백업하는 동안 데이터베이스에 대한 스냅 샷이 생성되고 해당 스냅 샷에서 백업을 위해 데이터를 읽습니다. 실제 라이브 DB 작업은 백업 작업에 영향을 미치지 않습니다.


1

질문에서 언급했듯이 복사 중 데이터베이스에 변경 사항이있을 수 있으므로 복사 할 수는 없습니다.

데이터베이스 기능을 인식하고 OS 기능을 통해 "스냅 샷"을 가져 오거나 유틸리티를 사용하여 데이터베이스를 안전한 상태 (mysql을 사용하는 경우 mysqldump와 같은)로 덤프 할 수있는 에이전트로 수행해야합니다.

그렇지 않으면 손상 될 수있는 백업이 생겨 복원 할 때까지 알 수 없습니다. Joel과 Jeff가 최근에 최근 StackOverflow 팟 캐스트에서 그것에 대해 조금 이야기했다고 생각합니다.

그리고 로그 파일이 중요하다는 것이 옳습니다. 저널 / 로그 파일이 실제 데이터와 동기화되지 않은 경우 파일을 복원하면 손상 될 수 있습니다.

데이터베이스 인식 에이전트 또는 스냅 샷 애플리케이션 또는 데이터 덤프 중 업데이트를 방해하지 않고 데이터를 삭제하는 데 데이터베이스를 올바르게 연결하는 방법을 알고있는 애플리케이션을 통해 데이터베이스의 안전한 상태를 사용하여 수행 된 백업으로 요약됩니다. 결과 파일.


이것은 더 일반적인 답변이지만 처음에는 SQL Server 에이전트를 통해 작업하고 있음을 포함하는 것을 잊었습니다. 이 방법에도 불구하고이 프로세스 동안 어떤 일이 벌어지고 있는지에 대한 좋은 세부 정보를 제공하여 어쨌든 도움이되었습니다! 감사.
Sean Howat

0

덤프를 완료 한 후 커밋 된 로그 파일에 변경 사항을 추가하는 것 (파일 시스템 별 스냅 샷 활용)과 같이 데이터베이스에 파일을 덤프하는 것과 같이이 작업을 수행하는 방법에는 여러 가지가 있습니다 (일반적으로 MSSQL의 일반적인 방법은 전혀 모릅니다). Windows의 VSS와 같은 기능.


또한 PostGres와 같은 MVCC 기반의 데이터베이스는 백업 동작 중에 시작되는 트랜잭션에 의해 데이터 파일을 계속 업데이트하면서 백업이 복사하는 스냅 샷을 유지하기 위해 해당 동작 세트를 사용할 수 있습니다. 여러 가지 방법이 있다고하는데 사용되는 방법은 데이터 스토리지 엔진의 핵심 설계 및 트랜잭션 처리 기능에 따라 다릅니다.
David Spillett

-1

복사 전용 백업이라고하는 것을 취할 수 있습니다. 온라인 상태에서 데이터베이스에 영향을 미치지 않습니다


복사 전용 백업이란 무엇입니까? 어떻게 수행됩니까? 고려해야 할 경고가 있습니까? 그런 짐승의 예에 대한 링크가 있습니까? 답변을 제출할 예정이라면 누군가 2 ~ 3 년 안에이 질문이 있는지 알아내는 것이 무엇이 도움이 될지 상상해보십시오.
rnxrx
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.