저는 2억 2천 5백만 개가 넘는 레코드가 포함된 매우 큰 데이터베이스(250기가 이상)를 작업하고 있습니다. 데이터베이스는 그 크기 때문에 작업하기가 어렵습니다. 이 데이터베이스는 읽기 전용으로만 사용됩니다.
우리는 더 빠른 하드웨어를 찾고 있지만 어느 쪽이든 데이터베이스 작업에 가장 효율적인 방법을 찾으려고 노력하고 있습니다. 이 데이터베이스는 마스터 데이터베이스에서 매일 밤 업데이트되어야 하며 가동 중지 시간을 최소한으로 유지해야 합니다. 마스터 데이터베이스는 제3자에 의해 유지 관리됩니다.
나는 밤마다 데이터베이스를 효율적으로 업데이트하는 가장 좋은 방법을 찾으려고 노력하고 있지만 운이 좋지 않습니다. 차등 및 트랜잭션 로그 백업을 살펴봤지만 이러한 백업을 적용하려면 먼저 전체 데이터베이스 백업을 복원해야 합니다. 내 경우에는 가동 중지 시간이 절약되지 않으므로 차등 백업의 목적이 완전히 무산됩니다. 마스터 데이터베이스에서 밤마다 전체 백업을 수행한 다음 전체 백업을 복원하면 더 빨라질 수도 있습니다.
저는 전체 백업을 한 번(또는 한 달에 한 번) 수행한 다음 이후에는 서로를 기반으로 하는 일부 유형의 증분 백업(원본 전체 백업 기반)을 간단히 적용할 수 있는 솔루션을 찾고 싶었습니다. . 첫 번째 전체 백업이 완료되면 밤마다 증분 백업만 적용하므로 가동 중지 시간이 최소화됩니다. 나는 속도를 위해 모든 "증분" 백업 후에 인덱스를 다시 작성하기만 하면 됩니다. 나는 이와 같이 실제로 실행 가능한 솔루션을 찾는 데 성공하지 못했습니다.
테스트 데이터베이스에서 WITH STANDBY로 전체 복원을 시도했는데 이 방법으로 데이터를 쿼리한 다음 나중에 트랜잭션 로그와 트랜잭션 로그만 적용할 수 있었습니다. 이는 기술적으로 데이터베이스에 쓰기 때문에 인덱스를 추가하는 등의 작업을 수행할 수 없기 때문에 다소 제한적인 성공이었습니다. 그러나 이는 데이터 자체가 읽기 전용이므로 내가 찾고 있는 것과 매우 유사합니다. 이와 같이 작동하는 솔루션이 있습니까? STANDBY 옵션은 이런 방식으로 사용되지 않기 때문에 이 옵션을 사용하지 않는 것이 좋습니다.
저는 지금 데이터베이스 백업과 성능에 대해 많은 연구를 하고 있으며 끊임없이 MSDN을 읽고 있습니다. 그러나 이 솔루션은 옵션이 아닌 것 같습니다. 최후의 수단으로 물어볼까 생각했습니다. 여기에는 야간에 복원을 수행하는 것이 비실용적인 대규모 데이터베이스를 관리하는 곳도 있습니다.
어떤 제안이 있으십니까? 나는 또한 이 정도 크기의 데이터베이스로 작업한 적이 없기 때문에 성능에 대한 제안/페이지 링크에 열려 있습니다.
복제만이 유일한 답이 아닐까 걱정됩니다.
답변1
로그 전달은 다른 서버의 대기 복사본으로 전달된 로그와 함께 기본(300GB) 데이터베이스를 사용 가능하게 유지해야 하는 요구 사항을 충족합니다. 트랜잭션 로그는 15분마다 적용됩니다. 우리의 보고는 대기 사본을 활용합니다.