it-swarm-ko.tech

SQL Server 2008의 백업에서 인덱스를 제외하는 방법

야간 전체 (및 주기적 차등) 백업은 대부분 테이블의 인덱스 양으로 인해 상당히 커지고 있습니다. 백업 크기의 약 절반이 인덱스로 구성됩니다.

백업에 Simple 복구 모델을 사용하고 있습니다.

FileGroups 또는 다른 파일 분할 방법을 사용하여 백업에서 인덱스를 제외 할 수 있습니까?

이것이 전체 텍스트 카탈로그로 확장 될 수 있다면 좋을 것입니다.

19
Jarrod Dixon

전체 복구 모드로 전환하면 파일 그룹을 사용하여이 작업을 수행 할 수 있지만 정말 서투른 작업입니다. 데이터를 기본 파일 그룹에두고 인덱스를 별도의 (기본값이 아닌 키) 파일 그룹에 넣습니다.

그런 다음 백업을 시차를두고 매일 밤 기본 파일 그룹 백업을 수행하고 X 분마다 트랜잭션 로그 백업을 수행하도록합니다.

재해가 발생하면 기본 파일 그룹 만 복원됩니다. 데이터가 갑자기 온라인 상태이지만 인덱스는 그렇지 않습니다. 그러나 정상 상태로 돌아가려면 해당 데이터를 새로운 깨끗한 데이터베이스로 내보내고 거기에서 인덱스를 추가해야합니다. 모든 파일 그룹을 복원하지 않고 데이터베이스를 완전히 온라인 상태로 만들 수 없으며 "어차피 다른 파일 그룹이 더 이상 필요하지 않습니다."라고 말할 수 없습니다.

작동 방식에 대한 자세한 내용은 내 파일 그룹 복원에 대한 비디오 자습서를 참조하십시오.

15
Brent Ozar

솔직히 다른 사람들이 여기서 제기하는 다른 문제를 극복하더라도 정말로 이것을하고 싶지 않습니다.

긴급 상황에서 백업을 복원 할 때 인덱스가 재 구축 될 때까지 기다리지 않고 그렇게 할 때까지 끔찍한 성능을 경험하게됩니다.

인덱스없이 백업을 복원하려는 상황을 생각할 수 없으므로 모든 경우에 실제로 동시에 백업하고 싶을 것입니다.

이 문제에 대한 다른 해결책을 찾아야 할 것입니다 ...

-아담

6
Adam Davis

이것이 지원되지 않는 것처럼 들립니다. 이 버그 보고서 정보 에서 :

이것에 대한 많은 관심이 있었으므로이면에서 일어나는 일과이 기능을 구현하는 것이 의미하는 바에 대해 좀 더 자세히 설명하겠습니다. 일부 유형의 인덱스 페이지는 별도의 할당 단위로 분리되고 다른 유형은 데이터 페이지와 혼합됩니다. 현재 익스텐트가 할당되었는지 확인하기 위해 할당 비트 맵 만보고있는 경우 이제 각 할당 단위에 저장된 내용을 해석해야합니다. 또한 데이터를 복사하는 데이터 파일의 선형 스캔 만 수행 할 수 없으며 파일에서 건너 뛰게됩니다. 데이터 구조에 대한 이러한 모든 해석은 백업 속도를 크게 저하시킵니다. 백업의 구멍을 해결하기 위해 수정해야하는 구조가 많이 있기 때문에 복원이 훨씬 더 흥미로워집니다. 그렇지 않으면 백업되지 않은 페이지를 가리키는 할당 맵이있어서 그 안에 가비지 등이있을 것입니다. 따라서이를 구현하면 데이터를 덜 절약하고 더 오래 수행하며 많은 시간이 소요됩니다. 더 이상 복원합니다. 고려해야 할 또 다른 측면은 모든 것을 제대로 처리하기 위해 많은 엔지니어링 노력이 필요하다는 것입니다. 표면적으로는 문제가 아니지만,보고 싶은 다른 기능이 구축되지 않는다는 것을 의미합니다.

3
Jon Galloway

미친 생각 일 수도 있지만 여기에 있습니다.

  1. 많은 공간을 차지하는 비 클러스터형 인덱스 삭제
  2. 백업을하다
  3. 삭제 한 인덱스를 다시 만듭니다.

물론 데이터베이스가 하루 중 약간의 다운 타임을 허용하는 경우에만이 작업을 수행 할 수 있습니다.

또한 SQL Server가 이러한 인덱스를 힙으로 변환하는 데 많은 시간을 낭비하므로 클러스터형 인덱스를 삭제하지 마십시오.

추가 디스크 공간을 구입하는 것이 아직 더 쉬운 해결책처럼 보입니까?

압축 된 백업 을 고려해 보셨습니까? 이것은 2008 년의 새로운 기능으로 여러분을위한 옵션이 될 수 있습니다.

1
Nick Kavadias