sql-server에서 데이터베이스의 일부를 백업 및 복원 할 수 있습니까?


19

우리는 클라이언트 사이트에서 정기적으로 sql-server 2005 데이터베이스를 전송합니다. 직접 연결되어 있지 않고 웹 기반 파일 전송 응용 프로그램을 통해 파일을 전송해야하므로 시간이 오래 걸립니다. 데이터베이스는 현재 약 10GB이지만 모든 데이터가 필요하지는 않습니다. 대부분의 데이터는 다시 생성 할 수있는 계산 된 값을 보유하는 감사 테이블 및 테이블에 있습니다.

감사 테이블을 보유하기 위해 파일 그룹을 작성하는 것을 살펴 보았고 기본 파일 그룹을 백업하고 복원 할 수 있기를 바랐습니다. 나는 잘 백업 할 수 있지만 복원 할 때 동일한 데이터베이스로 복원하지 않는다는 오류가 발생합니다. 파일 그룹을 사용하여 데이터베이스의 일부를 다른 서버로 복원 할 수 있습니까? 더 좋은 방법이 있습니까?


1
이 질문을 읽으면 도움이 될 수 있습니다. SQL Server를 통한 가능한 가장 작은 백업 , 특히 Brent의 답변.
Marian

많은 Hackery 없이는 이것이 불가능 해 보이므로 모든 감사 로그 테이블을 별도의 데이터베이스로 옮길 수 있다고 생각합니다.
Adam Butler

응용 프로그램에서 코드를 변경할 필요가 없습니까? 그것은 클라이언트가 통과하도록 요구하는 것입니다.
Shawn Melton

답변:


15

솔직히 말하면 가장 쉬운 방법입니다.

  • 복사본을 로컬로 백업 / 복원
  • 사본에서 원치 않는 데이터를 제거합니다 ( DROP가 아닌 DELETE 또는 TRUNCATE TABLE 사용 ).
  • 사본을 배송

추가 된 복잡성 때문에 파일 그룹을 귀찮게하지 않을 것입니다 ...


1
이 새로 복원 된 데이터베이스를 간단한 복구 모델로 변경하는 것이 좋습니다. msdn.microsoft.com/en-CA/library/ms189272.aspx
datagod

7

기본 파일 그룹 만 필요하다고 말하면 데이터베이스 구조와 매우 적은 양의 데이터 만 원한다고 생각합니다. 모든 객체로 데이터베이스를 간단히 스크립트하기 위해 데이터베이스 구조 (객체, 테이블 등)의 업데이트를 원한다면 제안 할 것입니다. PowerShell을 사용하면 빠르고 쉽게 수행 할 수 있습니다.

그런 다음 실제로 필요한 데이터는 재생성 할 수 없으며 간단히 내 보내면됩니다 (PowerShell 스크립트도 가능). 그런 다음 내보내기 파일을 작은 크기로 압축 한 다음 연결을 통해 사이트로 전송할 수 있습니다.

물론 이와 같이 @gbn 제안은 스크립팅 될 수 있으므로 가장 적은 시간이 걸리는 옵션을 결정하는 것은 귀하에게 달려 있습니다.


2

이것은 단편 복원을 사용하여 가능합니다 . 소스 데이터베이스의 객체와 파일 그룹은이를 지원하는 방식으로 구성되어야합니다. RESTORE에는 추가 특정 키워드가 필요합니다.

이 개념에 익숙해지는 데 약간의 시간이 걸리지 만 구현하는 스크립팅의 양은 제안 된 다른 솔루션보다 크지 않습니다.


-1

마우스 오른쪽 단추를 클릭하고 스크립트를 생성 한 다음 데이터베이스 이름을 대상으로 변경하십시오 (USE db).

여기에 설명


무슨 일이야?
Jude
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.