MS SQL 서버에 필요하지 않은 데이터를 보관하는 방법

MS SQL 서버에 필요하지 않은 데이터를 보관하는 방법

MS SQL Server 2008에서 큰 테이블을 자르라는 요청을 받았습니다. 데이터는 필요하지 않지만 2년에 한 번씩 필요할 수 있습니다. 절대 변경할 필요가 없으며 보기만 하면 됩니다.

문제는 매일 데이터가 필요하지 않은데 데이터를 보호하고 백업하려면 어떻게 해야 하느냐는 것입니다.

대략 2년에 한 번씩 액세스할 수 있도록 해야 하며 복구 프로세스에 몇 시간이 걸리더라도 괜찮습니다.

전체 테이블은 약 300만 행이므로 약 100만 행으로 잘라야 합니다.

답변1

테이블 데이터에 어떻게 액세스할 계획인가요?

약간 유연한 것(자신의 코드 또는 단순히 SQL 쿼리)을 사용하는 경우 쉬운 방법은 필요한 테이블을 다른 데이터베이스에 복사하고 서버에서 분리하는 것입니다. 그런 다음 테이블을 자릅니다(또는 T-Log 크기를 확인하고 싶을 수도 있지만 원하지 않는 행을 삭제합니다).

필요할 때 언제든지 읽기 전용 모드로 스토리지에서 관련 데이터베이스를 다시 탑재할 수 있습니다. 한 번에 여러 백업에 대해 쿼리를 실행해야 하는 경우 모든 데이터를 재그룹화하는 보기를 생성할 수 있습니다.

해당 테이블에 액세스하는 방법을 사용자 정의할 수 없는 소프트웨어를 사용하는 경우 테이블을 자체적으로 다른 데이터베이스에 복사할 수 있지만 기존 컨텍스트를 병합해야 하기 때문에 해당 백업을 복원하는 것이 문제가 될 수 있습니다. (다른 테이블 상태)를 이전 데이터로 바꿉니다. 또한 데이터 구조가 변경되어 복원이 거의 불가능할 수도 있습니다.

따라서 그러한 경우에는 전체 데이터베이스를 백업하여 저장하는 것이 좋습니다(가급적이면 해당 데이터베이스에 액세스하는 소프트웨어 버전과 함께).

답변2

300만 행은 특히 SQL Server의 경우 그다지 많지 않습니다. 또한 테이블을 자르고 행을 유지할 수 없습니다. 잘라내기는 완전히 비워집니다.

또한 시간이 있어도 삭제 속도가 느립니다.

테이블을 마우스 오른쪽 버튼으로 클릭하고 스크립트를 작성하여 새 테이블을 만듭니다. Table_Backup11232011처럼 이름을 바꾸려면 기본 키의 이름도 바꿔야 합니다.

insert into Table_Backup11232011 select * from oldtable

truncate table oldtable

이제 백업과 새로운 테이블이 생겼습니다. 300만 행의 비용은 아마도 수백 메가바이트에 불과할 것입니다. 이는 아무것도 아닙니다.

답변3

보관/접근성: 생각은 다음과 같습니다... 1) 데이터 삭제 수행 2) 자체 SQL 파일 그룹에 tyhat 테이블 배치 3) 파일을 읽기 전용 장치에 굽기(공간 허용) 4) ALTER TABLE을 사용하여 whaere 재정의 파일은 읽기 전용으로 정의됩니다. 5) 파티 시작, Garth!

이제 데이터는 하드 드라이브에 없어 변경할 수 없지만 필요할 때 계속 사용할 수 있습니다.

관련 정보