SQL Server/SSIS 강좌

데이터베이스 전송 작업

SungWookKang 2015. 7. 16. 10:32
반응형

데이터베이스 전송 작업

 

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

이번 시간에는 [데이터베이스 전송 작업]에 대해서 알아 보도록 하겠습니다.

 

데이터베이스 전송 작업은 SQL Server 개체 전송 작업과는 달리 데이터베이스 전체를 대상으로 복사 또는 이전 하는 작업 입니다.

이 작업은 동일 인스턴스 내에서 데이터베이스를 복사하는 경우에도 사용할 수 있습니다.

 

개체전송작업 관련 링크

http://blog.naver.com/jevida/140158933424

 

데이터베이스 전송 작업 시 온라인 또는 오프라인으로 수행할 수 있으며 온라인으로 설정시하면 원본 데이터베이스가 온라인 상태에서 전송되며 SMO를 이용하여 데이터베이스 개체 및 데이터가 전송 됩니다.

오프라인으로 설명하면 데이터베이스를 분리(Detach)한 후 데이터 파일 및 로그 파일을 대상 위치로 복사하고 다시 연결(Attach)하는 방식으로 작업이 이루어 집니다.

 

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

 

 

[제어 흐름] 탭에서 [데이터베이스 전송 태스크]를 마우스를 이용하여 드래그 앤 드롭으로 끌어다 놓습니다.

 

 

[데이터베이스 전송 태스크]에서 마우스 오른쪽 버튼을 클릭하여 [편집]을 선택 합니다.

 

 

[데이터 베이스 전송 태스크 편집기]가 나타납니다.

 

[일반]탭에서는 작업의 이름과 설명을 입력 할 수 있습니다.

 

 

[데이터베이스] 탭에서는 대상 서버, 원본서버 등 다양한 연결을 설정합니다.

 

연결

  • SourceConnection – 원본 서버에 대한 연결을 지정.
  • DestinationConnection – 대상 서버에 대한 연결을 지정

아래 그림처럼 SMO 연결관리자를 통하여 연결 설정을 합니다.

 

 

원본 데이터베이스

  • Action – 원본 서버의 데이터베이스를 대상 서버로 복사(copy) 또는 이동(move)할지 설정.
  • Method – 데이터베이스를 온라인 또는 오프라인으로 전송할지 설정. 온라인 상태로 전송하기 위해서는 패키지를 실행하는 사용자가 sysadmin 고정 서버 역할의 멤버이거나 전송할 데이터베이스의 소유자(dbo)이어야 합니다. 오프라인 상태로 전송하기 위해서는 sysadmin 고정 서버 역할의 멤버이면 됩니다.

 

오프라인으로 수행하기 위해서는 원본 서버 및 대상 서버에 네트워크 파일공유를 지정해야 합니다.

  • SourceDatabaseName – 원본 서버에서 전송할 데이터베이스 이름을 지정.
  • SourceDatabaseFile – 원본 서버에서 전송할 데이터베이스의 파일을 지정.
  • ReattachSourceDatabase – 전송 작업 수행 중 오류가 발생하였을 때 원본 데이터베이스를 자동으로 연결(Attach)시킬지 설정.

 

 

대상 데이터 베이스

  • DestinationDatabaseName – 대상 서버에 전송될 데이터베이스의 이름을 지정
  • DestinationDatabaseFile – 대상 서버에 전송될 데이터베잇의 파일 지정.
  • DestinationOverwrite – 대상 서버에 이미 동일한 데이터베이스가 있는 경우 덮어 쓸지 설정.

대상 데이터베이스에 동일한 데이터베이스명이 존재하지 않아야 합니다

 

다음과 같이 설정이 완료 되었는지 확인 합니다.

(원본의 SSIS_TEST를 대상의 SSIS_TEST2로 복사 합니다. 위치는 Local 입니다.)

 

 

편집이 완료 되었으면 패키지를 실행 합니다.

늘 그러듯!

녹색 : 정상 실행

빨간색 : 오류 발생

 

패키지 작업이 완료 되었으면 SSMS를 이용하여 데이터베이스가 복사되었는지 확인 합니다.

 

SSIS_TEST가 SSIS_TEST2로 복사된 것을 확인 할 수 있습니다.

 

반응형