2014-06-10 1 views
0

나는 그가 우리를 위해 호스팅하고있는 응용 프로그램 뒤에 데이터베이스의 정규 복사본을 얻을 것이라고 약속 한 클라이언트가 있습니다.데이터베이스의 일부를 동일한 서버에 복사하기위한 SSIS 또는 복제?

복사본은 사실 SFTP를 통해 다운로드 한 백업 파일 (DB_EXPORT.BAK)입니다.

(나는 그 약속을하지 않았다). 나는 그에게 모든 독점적 인 저장 프로 시저, 함수, 사용자 및 다른 것들을 전체에게주고 싶지 않습니다. 나는 그에게 대부분의 테이블들, 선택된 sp들, 몇몇 기능들, 사용자들없는 그 데이터베이스의 슬림화 된 버전을주고 싶다. 나는이 두 가지 방법이있다시피 : 복사 특정 물건 (가져 오기/내보내기 마법사를 사용하여)

  • 복제 (스냅 숏 또는 트랜잭션이)
  • 것은이라고

    1. SSIS 작업이 원본 (DB1)과 사본 (DB_EXPORT)은 동일한 서버에서 호스팅됩니다. 그래서 복제를 사용하는 것은 다소 어색함을 느낍니다 (자신에게 게시 하시겠습니까?)하지만 복제 할 기사를 구성하기위한 쉬운 인터페이스를 제공합니다. SSIS 패키지를 사용하는 것이 더 논리적이지만 실제로 변경하기는 어렵습니다.

      이 점에 대해 무엇을 말할 수 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까? SQL 서버를 이해하는 사람들이 이해할 수있는 방법을 찾고 있습니다.

      저와 함께 생각해 주셔서 감사합니다!

    +0

    원본 테이블을 가리키는보기가있는 두 번째 데이터베이스 (사용하는 기준으로 필터링 됨)는 어떻습니까? 그런 다음 데이터를 복사하지 않고도 2 차 데이터베이스에 액세스 권한을 부여 할 수 있습니다. 2 차 DB에서 새로운 프로 시저/함수를 생성해야하지만 저장 장치에 저장해야합니다. 사용자가 원본 db 테이블에 대한 읽기 액세스 권한을 필요로 할 때이 경로로 이동하면 사용 권한에주의해야합니다. – JiggsJedi

    +0

    글쎄, 복사본이 백업되어 클라이언트에 전달되어 가능한 경로가 아닙니다. – Henrov

    +1

    알았습니다. 스냅 샷의 행을 필터링 할 수 있다고 생각하지 않으므로 행 필터링을 사용하려면 초 국가적 복제를 수행해야합니다. 그러나 이것이 SFTP 잡기라면이 데이터베이스를 24 시간 최신 상태로 유지할 필요가 없을 것입니다. 그러면 복제 오버 헤드가 발생하게됩니까? SSIS에 관심이 없다면 SQL2005 이상을 가정하면 일정에 따라 실행되는 간단한 저장 프로 시저를 작성하여 원본에서 대상으로 데이터를 병합 한 다음 병합이 완료되면 백업 작업을 호출 할 수 있습니다. 그것은 내가 믿는 나의 표가 될 것입니다. – JiggsJedi

    답변

    0

    이것이 최선의 대답인지 확실하지 않지만 토론과 스냅 숏 복제를 통해 TSQL 스크립팅을 피할 수 있습니다.

    복제는 설정이 비교적 간단하지만 문제를 해결할 때 악몽 일 수 있습니다 (특히 트랜잭션). 종종 게시/가입 및 재 작성을 완전히 삭제하는 것이 더 쉽습니다.

    복제 구성을 완전히 스크립팅 할 수 있습니다. 다른 사람이이를 유지 관리해야하는 경우 복제 제거 (펍 및 하위 제거)를 스크립팅하고 복제 빌드 아웃을 스크립팅하는 것처럼 간단 할 수 있습니다. 아웃. 그들이해야 할 일은 드롭/빌드 스크립트를 실행하는 것뿐입니다.

    스냅 샷 생성 직후 백업을 실행하도록 예약 된 작업을 변경할 수도 있습니다.

    +0

    좋은 팁 @jiggsjedi, 특히 예약 된 작업을 채택! 디스크에 백업하기위한 별도의 작업이있었습니다. 예약하고 걱정할 작업이 하나 더 적었습니다.) – Henrov

    관련 문제