SQL Server/SSIS 강좌

개체 전송 태스크 - 개체 속성까지 복사하자

SungWookKang 2015. 7. 16. 09:52
반응형

개체 전송 태스크 - 개체 속성까지 복사하자

 

안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida)

 

이번 시간은 [개체 전송 태스크]에 대해서 알아 보도록 하겠습니다.

 

SSIS를 이용하여 데이터를 가져오거나 SSMS에서 가져오기/내보내기에서 테이블을 복사하여 오는 경우 테이블의 속성이 복사되지 않아 1:1복사 테이블을 만들 때 또는 동일한 환경을 구축할 때 불편한 경우가 있습니다.

[개체 전송 태스크]를 이용하여 개체 속성까지 모두 복사하여 사용할 수 있습니다.

실제로 사용시 스키마 뿐만 아니라 테이블의 파일 그룹까지 모든 속성이 복사됨을 확인 할 수 있습니다.

 

BIDS를 실행하여 [Integration Service 프로젝트]를 생성 합니다.

 

[제어 흐름]탭에서 [데이터 흐름 태스크]를 드래그앤 드롭으로 추가 합니다.

 

[SQL Server 개체 전송 태스크]에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

[개체 전송 태스크 편집기]가 나타나면 [개체]탭에서 [연결] 부분에서 원본소스와 대상소스를 선택 합니다.

(실습에서는 AdventureWorks 데이터베이스를 사용하였습니다.)

 

[개체 전송 태스크 편집기]에는 다양한 옵션을 설정 할 수 있습니다. 자세한 내용은 온라인 도움말 등을 참고하길 바랍니다. 기본적인 설정부터 고급설정까지 다양합니다.

 

[대상 복사 옵션]에서 [CopyAllObjects] 속성이 TURE이면 원본 소스의 모든 개체를 복사 함을 뜻합니다. 여기서는 특정 테이블만 할 것이므로 False를 선택 합니다.

 

[ObjectToCopy]를 확장하여 [TableList]를 선택 합니다.

 

[테이블 선택]창이 나타나면 [Address]테이블을 선택합니다.

 

편집이 완료 되었으면 태스크를 실행 합니다. 태스크를 실행하면 아래의 그림과 같이 실패가 나타납니다.(사용자 환경에 따라 성공이 나타날 수도 있습니다.)

 

[진행률] 탭에서 오류 내용을 확인 합니다. Person 이라는 스키마 소유자가 존재하지 않아 오류가 발생함을 알 수 있습니다. 처음 도입부에 설명하였듯이 개체 복사 시 스키마 속성까지 복사하므로 존재하지 않은 스키마로 인한 오류를 확인 할 수 있습니다.

 

[테이블 선택]창에서 스키마가 dbo 인 테이블을 선택합니다.

 

편집이 완료 되었으면 태스크를 실행 합니다.

이번에는 정상적으로 실행 되었습니다,

 

개체 복사가 잘 되었는지 SSMS를 실행하여 테이블 속성 및 데이터를 조회하여 봅니다.

이번 실습에서는 스키마 복사만 선택하였고 테이블안의 데이터 복사는 실행하지 않았습니다.

(개체 복사시 데이터 복사 가능)

테이블 속성이 원본의 속성과 동일함을 확인 할 수 있습니다.

 

이 작업은 백업 복원을 하기 힘든 (로그성 데이터)경우 원본의 환경을 유지하면서 데이터를 복사 및 이동 하는 작업에 매우 유용할 듯 합니다.

반응형