SQL Server 실행 하는 컴퓨터 간에 데이터베이스를 이동 하는 방법

요약

이 문서는 Microsoft SQL Server 사용자 데이터베이스와 대부분의 공통 SQL Server 구성 요소를 SQL Server 실행 하는 컴퓨터 간에 이동 하는 방법을 설명 합니다.

이 문서에서 설명 하는 단계는 마스터, 모델, tempdb또는 msdb 시스템 데이터베이스를 이동 하지 않습니다 가정 합니다. 로그인과 mastermsdb 데이터베이스에 포함 된 가장 일반적인 구성 요소를 전송 하기 위한 다른 옵션도 제공 합니다.

이 문서에 나와 있는 단계를 수행 하는 경우 변환 되지 않는 특정 항목에 대 한 내용은 "추가 정보" 절을 참조.

참고: SQL Server 2008 관리 메타 데이터는 다른 서버 인스턴스에서 데이터베이스 사용 하는 경우 Microsoft Developer Network (MSDN) 웹 사이트를 방문 합니다.


참고: SQL Server 2000에서 Microsoft SQL Server 2000 (64 비트)의 데이터 마이그레이션 지원 됩니다. 64 비트 데이터베이스에 sp_attach_db 시스템 저장 프로시저 또는 sp_attach_single_file_db 시스템 저장 프로시저를 사용 하 여 또는 백업을 사용 하 여 32 비트 데이터베이스를 연결 하 고 32 비트 엔터프라이즈 관리자를 복원할 수 있습니다. 32 비트와 64 비트 버전의 SQL Server 데이터베이스를 이동할 수 있습니다. 동일한 방법을 사용 하 여 SQL Server 7.0에서 데이터를 마이그레이션할 수 있습니다. 그러나 SQL Server 7.0으로 데이터를 SQL Server 2000 (64 비트)에서 다운 그레이드 수 없습니다. 각 방법에 대 한 설명은 다음과 같습니다.



1 단계: 사용자 데이터베이스를 이동 하는 방법
SQL Server 2005를 사용 하는 경우 데이터를 마이그레이션하려면 SQL Server 7.0 또는 SQL Server 2000에서 동일한 방법을 사용할 수 있습니다. 그러나 SQL Server 2005에서 관리 도구가 관리 도구 SQL Server 7.0에서 또는 SQL Server 2000에서에서 다릅니다. SQL Server 엔터프라이즈 관리자 대신 SQL Server Management Studio 사용 해야 합니다. 또한 데이터 변환 서비스 가져오기 및 내보내기 데이터 마법사 대신 SQL Server 가져오기 및 내보내기 마법사 (DTSWizard.exe)를 사용 해야 하면.

사용자 데이터베이스를 이동 하려면 다음 방법 중 하나를 사용 합니다.

방법 1: 백업 및 사용자 데이터베이스를 복원 합니다.
원본 서버에 사용자 데이터베이스를 백업 하 고 대상 서버에 사용자 데이터베이스를 복원 키를 누릅니다.
  • 데이터베이스는 백업이 진행 중인 경우 사용할 수 있습니다. 백업이 완료 된 후 데이터베이스에서 INSERT, UPDATE 또는 DELETE 문을 수행 하는 사용자, 백업 이러한 변경 내용은 포함 되지 않습니다. 모든 변경 내용을 전송 해야 할 경우 한 트랜잭션 로그 백업과 전체 데이터베이스 백업을 수행 하는 경우 최소의 다운 시간으로 변경 내용을 전송할 수 있습니다.
    1. 대상 서버에서 전체 데이터베이스 백업을 복원 하 고 있는 NORECOVERY 옵션을 지정 합니다.

      참고: 추가 데이터베이스 수정을 방지, 원본 서버에서 데이터베이스 작업을 중지 하는 사용자를 직접.
    2. 트랜잭션 로그 백업을 수행 하 고 WITH RECOVERY 옵션을 사용 하 여 대상 서버로 트랜잭션 로그 백업을 복원 합니다. 가동 중지 시간 제한 시간이 트랜잭션 로그 백업 및 복원 됩니다. 자세한 내용은 SQL Server 온라인 설명서의 "Transact SQL 참조" 항목의 "복원" 하위 항목을 참조 하십시오.
  • 대상 서버의 데이터베이스 크기가 원본 서버에 데이터베이스와 됩니다. 데이터베이스의 크기를 줄이기 위해 하거나 줄여야 원본 데이터베이스 백업을 수행 하기 전이나 복원이 완료 된 후 대상 데이터베이스를 줄입니다. 자세한 내용은 SQL Server 온라인 설명서의 "데이터베이스 만들기 및 유지 관리" 제목에 "데이터베이스를 축소" 하위 항목을 참조 하십시오.
  • 원본 데이터베이스 파일을 다른 위치로 데이터베이스를 복원 하는 경우 WITH MOVE 옵션을 지정 해야 합니다. 예를 들어, 원본 서버에서 데이터베이스가 D:\Mssql\Data 폴더에서입니다. 대상 서버에 D 드라이브가 없고 C:\Mssql\Data 폴더에 데이터베이스를 복원 하려면.
    다른 위치로 데이터베이스를 복원 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하는 다음 문서 번호를 클릭 합니다.

    221465 RESTORE 문에 WITH MOVE 옵션 사용

    304692 이동 SQL Server 7.0 데이터베이스 백업 및 복원을 사용 하 여 새 위치로

  • 대상 서버의 기존 데이터베이스를 덮어쓰지 않으려면 지정 해야 합니다. 자세한 내용은 SQL Server 온라인 설명서의 "Transact SQL 참조" 항목의 "복원" 하위 항목을 참조 하십시오.
  • 복원할 대상 SQL Server 버전에 따라 문자 집합, 정렬 순서 및 유니코드 데이터 정렬이 원본 서버와 대상 서버에서 동일 하 게 해야 합니다. 자세한 내용은 참조 하십시오 "데이터 정렬에 대 한"이이 섹션의 뒷부분에 나오는.


방법 2: 사용 sp_detach_db 및 sp_attach_db 저장 프로시저
Sp_detach_dbsp_attach_db 를 사용 하 여 저장 프로시저, 다음이 단계를 수행 합니다.
  1. Sp_detach_db 저장 프로시저를 사용 하 여 원본 서버에서 데이터베이스를 분리 합니다. .Mdf,.ndf 및.ldf 파일을 대상 서버에 데이터베이스와 연관 된 복사 해야 합니다. 이 파일 형식에 대 한 설명은이 표를 참조 하십시오.
    파일 이름 확장명설명
    .mdf주 데이터 파일
    .ndf보조 데이터 파일
    .ldf트랜잭션 로그 파일
  2. Sp_attach_db 저장 프로시저를 사용 하 여 대상 서버에 데이터베이스를 연결 하 고 이전 단계에서 대상 서버로 복사한 파일을 가리킵니다. 이러한 메서드를 사용 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.:

    224071 SQL Server 분리 / 연결 기능을 사용 하 여 새 위치로 SQL Server 데이터베이스를 이동 하는 방법

  • 데이터베이스를 분리 한 후 액세스할 수 없는 및 파일을 복사할 때 데이터베이스를 사용할 수 없습니다. 분리 시에는 데이터베이스에 포함 된 모든 데이터가 이동 됩니다.
  • 문자 집합, 정렬 순서 및 유니코드 데이터 정렬이 Attach 메서드나 Detach 메서드를 사용 하면 두 서버에서 동일 해야 할 수 있습니다. 자세한 내용은 데이터 정렬에 대 한 다음 참고를 참조 하십시오.
참고: 백업 및 복원 또는 AttachDetach 메서드를 사용 하 여 SQL Server 7.0 서버 간에 데이터베이스를 이동 하는 경우 문자 집합, 정렬 순서 및 유니코드 데이터 정렬이 동일 해야 서버. SQL Server 2000 또는 SQL Server 2000 서버 간에 SQL Server 7.0에서 데이터베이스를 이동할 원본 데이터베이스의 데이터 정렬이 데이터베이스에 유지 합니다. 즉, SQL Server 2000을 실행 하는 대상 서버를 원본 데이터베이스에 다른 데이터 정렬을 있으면 대상 데이터베이스에 다른 데이터 정렬을 대상 서버의 마스터, 모델, tempdbmsdb 데이터베이스를 보다. 자세한 내용은 SQL Server 2000 온라인 설명서의 "혼합 데이터 정렬 환경" 항목을 참조 하십시오.



방법 3: 가져오기 및 내보내기 데이터 마법사를 사용 하 여 SQL Server 데이터베이스 간 개체 및 데이터 복사

전체 데이터베이스를 복사 하거나 선택적으로 복사할 개체와 데이터 원본 데이터베이스에서 대상 데이터베이스로 데이터 변환 서비스 가져오기 및 내보내기 데이터 마법사를 사용 하 여 수 있습니다.
  • 전송 하는 동안 원본 데이터베이스를 사용할 수 있습니다. 원본 데이터베이스를 전송 하는 동안 사용 하는 경우 전송이 진행 중일 때 일부 차단이 나타날 수 있습니다.
  • 때 가져오기 및 내보내기 데이터 마법사, 문자 집합, 정렬 순서를 사용 하 고 데이터 정렬이 원본 서버와 대상 서버 간에 동일 해야 필요가 없습니다.
  • 소스 데이터베이스에서 사용 되지 않는 공간으로 이동 되지 않으므로 대상 데이터베이스가 원본 데이터베이스 만큼 클 필요가 있습니다. 마찬가지로 일부 개체만 이동 하면 대상 데이터베이스 해야 원본 데이터베이스 만큼 클.
  • SQL Server 7.0 데이터 변환 서비스 수 올바르게 64 KB 보다 긴 텍스트 및 이미지 데이터를 전송 하지 않았습니다. 이 문제는 SQL Server 2000 버전의 데이터 변환 서비스 적용 되지 않습니다.
    자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 다음 문서를 확인하십시오.

    257425 수정: DTS 개체 전송 64KB 보다 큰 BLOB 데이터를 전송 하지 않습니다



2 단계: 로그인 및 암호를 전송 하는 방법
대상 서버에 로그인 원본 서버에서 전송 하지 않으면 현재 SQL Server 사용자가 대상 서버에 로그온 할 수 있습니다. 다음 Microsoft 기술 자료 문서에서 지침을 사용 하 여 로그인과 암호를 전송할 수 있습니다.
246133 SQL Server 인스턴스 간에 로그인 및 암호를 전송 하는 방법

대상 서버의 로그인 용 기본 데이터베이스가 원본 서버의 로그인 용 기본 데이터베이스에서 다를 수 있습니다. 기본 데이터베이스는 sp_defaultdb 저장 프로시저를 사용 하 여 로그온을 변경할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서의 "Transact SQL 참조" 항목의 "sp_defaultdb" 하위 주제를 참조 하십시오.


3 단계: 분리 된 사용자를 해결 하는 방법
대상 서버로 로그인과 암호를 전송 하는 후 사용자가 데이터베이스에 액세스 하지 못할 수 있습니다. 로그인은 보안 식별자 (SID)를 사용자에 게 연결 하 고 데이터베이스 이동 후 SID 일치 하지 않습니다 경우 SQL Server 데이터베이스에 대 한 사용자 액세스를 거부할 수 있습니다. 이 문제를 분리 된 사용자 라고 합니다. SQL Server 2000 DTS 로그인 전송 기능을 사용 하 여 로그인과 암호를 전송 하는 경우 사용자가 아마도 분리 사용자. 또한 통합된 로그인 서버 인해 분리 된 사용자 다른 원본 도메인에서 대상 서버에 대 한 액세스를 부여 합니다.
  1. 분리 된 사용자를 찾습니다. 대상 서버에서 쿼리 분석기를 연 후 이동한 사용자 데이터베이스에서 다음 코드를 실행 합니다.
    exec sp_change_users_login 'Report'
    프로시저는 로그온에 연결 되지 않은 분리 된 사용자를 나열 합니다. 사용자가 표시 되 면 2 단계와 3 단계 건너뛰고 4 단계로 이동 합니다.
  2. 분리 된 사용자를 확인 합니다. 사용자가 분리 된 경우 경우 데이터베이스 사용자가 성공적으로 서버에 로그온 할 수 있지만 데이터베이스에 액세스할 권한이 없는. 데이터베이스에 대 한 로그온 액세스 권한을 부여 하려고 하면 사용자가 이미 있기 때문에 다음과 같은 오류 메시지가 나타납니다.
    Microsoft SQL-DMO (ODBC SQLState: 42000) 오류 15023: 사용자 또는 역할 '%s'는 현재 데이터베이스에 이미 있습니다.
    분리 된 사용자를 해결 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하는 다음 문서 번호를 클릭 합니다.

    240872 SQL Server 실행 하는 서버 간에 데이터베이스를 이동할 때 사용 권한 문제를 해결 하는 방법


    Microsoft 기술 자료의 다음 문서를 참조에서는 로그인을 데이터베이스 사용자에 매핑하는 방법에 대해 설명 하 고 표준 SQL Server 로그인에서 분리 및 통합 로그인 사용자를 확인 합니다.


    Sp_change_users_login 저장 프로시저를 사용 하 여 개별적으로 분리 된 사용자를 해결 하는 방법을 설명 합니다. Sp_change_users_login 저장 프로시저만 표준 SQL Server 로그인에서 분리 된 사용자를 해결 합니다.
  3. 데이터베이스 소유자 (dbo)로 표시 되어 분리 된 경우 사용자 데이터베이스에서이 코드를 실행 합니다.
    exec sp_changedbowner 'sa'
    저장된 프로시저가 데이터베이스 소유자를 dbo 로 변경 하 고 해당 문제를 해결. 다른 사용자에 게 데이터베이스 소유자를 변경 하려면 sp_changedbowner 사용 하 여 사용자를 다시 실행 합니다. 자세한 내용은 SQL Server 온라인 설명서의 "Transact SQL 참조" 항목에 "sp_changedbowner" 하위 항목을 참조 하십시오.
  4. 대상 서버가 SQL Server 2000 서비스 팩 1을 실행 중인 경우는 연결이 나 복원 또는 두 가지 모두를 수행한 후 엔터프라이즈 관리자의 사용자 폴더 목록에 데이터베이스 소유자 사용자 없을 수 있습니다. 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.:

    305711 버그: DBO 사용자 엔터프라이즈 관리자에 표시 되지 않습니다

  5. 원본 서버에서 dbo 매핑된 로그온이 대상 서버에 없는 경우에 엔터프라이즈 관리자를 통해 시스템 관리자 (SA) 암호를 변경 하려고 하면 다음과 같은 오류 메시지가 나타날 수 있습니다.
    21776 오류: [SQL DMO] 'dbo' 이름이 없습니다 Users 컬렉션에. 이름이 정규화 된 이름인 경우 사용 하 여 이름의 다양 한 부분을 분리 하 고 다시 시도 하십시오.
    자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 다음 문서를 확인하십시오.

    218172 엔터프라이즈 관리자에서 SA 암호를 변경할 수 없습니다.

경고 다시 복원 하거나 데이터베이스를 연결 하는 경우 데이터베이스 사용자가 다시 분리 될 수 있습니다 및 3 단계를 반복 해야 합니다.


4 단계: 작업, 경고 및 운영자를 이동 하는 방법
4 단계는 선택 사항입니다. 모든 작업, 경고 및 운영자 원본 서버에 대 한 스크립트를 생성할 수 있으며 대상 서버에서 스크립트를 실행 합니다.
  • 작업, 경고 및 운영자를 이동 하려면 다음과이 같이 하십시오.
    1. SQL Server 엔터프라이즈 관리자를 연 다음 관리 폴더를 확장 합니다.
    2. SQL Server 에이전트확장 한 다음 경고, 작업또는 운영자를 마우스 오른쪽 단추로.
    3. 모든 작업클릭 한 다음 SQL 스크립트 생성을 클릭 합니다. SQL Server 7.0에 대 한 스크립트의 모든 작업, 경고또는 연산자를 클릭 합니다.
    모든 경고, 모든 작업대 한 스크립트를 생성 하는 옵션을 갖게 됩니다 또는 모든 연산자 를 마우스 오른쪽 단추로 항목에 따라.
  • SQL Server 2000 또는 SQL Server 7.0을 실행 하는 컴퓨터 서버와 SQL Server 2000에서 SQL Server 7.0 작업, 경고 및 운영자를 이동할 수 있습니다.
  • 설정 된 알림을 SQLMail에서 원본 서버의 운영자가 있으면 같은 기능을 대상 서버에도 sqlmail을 설치 설정 해야 합니다.
    자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 다음 문서를 확인하십시오.

    263556 SQL 메일을 구성 하는 방법



5 단계: DTS 패키지를 이동 하는 방법
5 단계는 선택 사항입니다. DTS 패키지가 원본 서버에서 SQL Server 또는 리포지토리에 저장 되 면을 이동할 수 있습니다. 서버 간에 DTS 패키지를 이동 하려면 다음 방법 중 하나를 사용 합니다.

방법 1: SQL Server DTS 패키지 저장

  1. 파일을 원본 서버에서 DTS 패키지를 저장 한 다음 대상 서버에서이 DTS 패키지 파일을 엽니다.
  2. 대상 서버 저장소 또는 SQL Server 패키지를 저장 합니다.
    참고: 각 패키지는 개별적으로 별도의 파일로 이동 해야 합니다.


방법 2: DTS 디자이너에서 DTS 패키지를 열려면

  1. DTS 디자이너에서 각 DTS 패키지를 엽니다.
  2. 패키지 메뉴에서 다른 이름으로 저장을 클릭 합니다.
  3. SQL Server 대상을 지정 합니다.
참고: 패키지가 새 서버에 제대로 실행 되지 않을 수 있습니다. 패키지를 변경 하 고 연결, 파일, 데이터 원본, 프로필 및 새 대상 서버를 참조 하도록, 이전 원본 서버에 있는 기타 정보를 패키지에 대 한 참조를 변경 해야 할 수 있습니다. 각 패키지의 디자인에 따라 패키지 단위로 이러한 변경을 수행 해야 합니다.

6 단계: 이전 컴퓨터와 일치 하도록 sp_configure 설정 변경
새 컴퓨터의 설정을 일치 하도록 설정을 변경 해야 할 수 있습니다. 예를 들어, 새 컴퓨터의 메모리 또는 다른 SQL 인스턴스 및 응용 프로그램을 실행 중인 경우 최소 및 최대 서버 메모리 설정 또는 AWE 설정을 변경 하는 것이 좋습니다. MAXDOP 설정을 운영 체제에 노출 되는 CPU 코어 수가 변경 된 경우 변경 해야 할 수 있습니다.

자세한 내용

연결 된 서버, 미러링, 복제, 로그 전달, 전체 텍스트 카탈로그를 백업 장치, 유지 관리 계획, 데이터베이스 다이어그램, 데이터베이스 스냅숏, 자격 증명 및 프록시 계정, 끝점, 서버 범위 DDL 트리거 (예: 로그온 트리거) 또는 마스터나 msdb를 포함 하는 다른 항목과 이름이 같은 다른 항목을 이동할 수도 있습니다. 이러한 구성에 대 한 원본 서버를 확인 하 고 원할 경우 대상 서버에서 수동으로를 설정 하는 단계를 수행.

전체 텍스트 구성 요소를 이동 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.

240867 이동, 복사 및 전체 텍스트 카탈로그 폴더와 파일을 백업 하는 방법

이 문서에 나와 있는 단계를 수행 하는 경우에 데이터베이스 다이어그램, 백업 및 복원 기록 이동 되지 않습니다. 이 정보를 이동 해야 하는 경우 msdb 시스템 데이터베이스를 이동 합니다. Msdb 데이터베이스를 이동 하는 방법에 대 한 정보를 보려면 Microsoft 기술 자료 문서에서 참조 되는 해당 "1 단계: 사용자 데이터베이스를 이동 하는 방법" 절. Msdb 데이터베이스를 이동 하면 다음과 필요가 없습니다 "4 단계: 작업, 경고 및 운영자를 이동 하는 방법" 또는 "5 단계: DTS 패키지를 이동 하는 방법."

참조

자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 다음 문서를 확인하십시오.

320125 데이터베이스 다이어그램을 이동 하는 방법

속성

문서 ID: 314546 - 마지막 검토: 2017. 2. 7. - 수정: 2

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft SQL Server 7.0 Standard Edition

피드백