SQL Server/SQL Server Tip

SSMS를 이용한 데이터베이스 복사 하기

SungWookKang 2015. 7. 17. 10:20
반응형

SSMS를 이용한 데이터베이스 복사 하기

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SSMS에는 많은 기능들이 숨어 있다. 정말 쿼리로만 할 수 있다던 기능의 대부분이 SSMS의 UI를통해서 할 수 있다. 오늘은 SSMS의 UI기능을 통한 데이터베이스 복사 및 이동이다.

우선 데이터베이스 이동 및 복사를 하기 위해서 필수 조건이 있다.

  1. 데이터베이스의 데이터 파일이 존재할 폴더에 공유를 설정하고 권한을 부여한다.
  2. SQL Agent 계정을 사용하여 통신하므로 SQL Agent 계정을 맞추어 준다.

 

 

이제 데이터베이스를 복사 및 이동하는 실습을 해 보자.

 

대부분의 SQL Server는 물리적으로 다른 서버에 운영하겠지만 편의상 인스턴스를 설치하여 진행 하였다.

 

다음과 같이 2개의 인스턴스가 설치 된 것을 확인 할 수 있으며 SECOND 인스턴스에는 사용자 데이터베이스가 생성되어 있지 않다.

 

 

원본 데이터베이스에서 [SW_TEST] 라는 데이터베이스를 SECOND 인스턴스로 복사 하여 보겠다.

원본의 [SW_TEST] 데이터베이스에서 마우스 오른쪽을 클릭하여 [데이터베이스 복사]를 선택 한다.

 

 

데이터베이스 복사 마법사가 시작 된다.

 

 

원본 서버를 선택 한다. 인증방법 선택하고 계정과 패스워드를 입력 한다.

 

 

대상 서버를 선택 한다. 나의 경우에는 인스턴스로 복사하기 때문에 인스턴스 명을 입력 하였다.

 

 

전송 방법 선택에 있어서는 2가지가있다. 분리/연결 방법은 데이터베이스를 오프라인으로 만들어 복사하기 때문에 속도가 빠르지만 서비스를 운영 할 수 없는 단점이 있다. SQL 관리 개체를 사용하면 속도는 느리지만 원본 서버가 온라인 상태로 유지되기 때문에 운영은 가능하다.

 

 

데이터베이스를 선택 한다. 처음 선택한 데이터베이스 외에 추가적인 데이터베이스 선택이 가능하다.

 

 

대상 데이터베이스가 설치될 폴더의 경로 및 파일 이름을 설정 한다. (필수 조건에 해당하는 공유 폴더를 설정 한다.)

 

 

서버 개체에서 외부 추가 개체를 선택 한다. 특별히 사용하는 것이 없다면 따로 지정을 하지 않아도 된다.

 

 

패키지 이름을 입력한다. (자동으로 생성됨으로 특별히 수정 할 필요는 없다.)

 

 

즉시 실행 또는 예약을 설정 할 수 있다. SQL Server Agent 계정으로 실행 된다.

 

 

마법사 완료 창에는 지금까지 설정한 내용이 요약표시 된다. 아직 복사 작업이 진행된 것은 아니다. 마침을 클릭하면 복사 작업이 시작 된다.

 

 

다음과 같은 진행창에서 모두 성공으로 나타나면 복사 작업이 완료 된 것이다.

 

 

복사가 어떻게 진행되는지 프로파일러를 통해서 알아 확인해 보았다.

 

[원본 서버]

 

 

[대상 서버]

 

 

작업이 완료 되고 SECOND 인스턴스에 SW_TEST 데이터베이스가 복사 된 것을 확인 할 수 있으며 테이블 및 데이터 모두 복사된 것을 확인 할 수 있다.

 

 

사실 이 방법은 실제 운영중인 서버나 용량이 큰 경우에는 성능 문제를 발생 할 수 있는 요소이다. 보통 SSMS에서 제공하는 기능은 초보 개발자를 위한 내용이 많으므로 실습 환경이나 사내 서버 구성시 이용하면 매우 편리 할 듯 하다.

 

2012-12-07 / 강성욱 / http://sqlmvp.kr

 

반응형