Xcopy 배포(SQL Server Express)

Microsoft SQL Server 2005 Express Edition(SQL Server Express)은 응용 프로그램과 SQL Server Express 데이터베이스의 Xcopy 배포를 지원하므로 SQL Server Express 데이터베이스를 사용하는 응용 프로그램을 간단하게 배포할 수 있습니다.

Xcopy 배포 정의

Xcopy 배포는 추가 구성 없이 응용 프로그램과 데이터베이스(.mdf) 파일을 다른 컴퓨터나 같은 컴퓨터의 다른 위치로 복사하는 기능입니다. SQL Server Express가 대상 컴퓨터에 이미 설치되어 있고 Xcopy 배포를 사용할 인스턴스가 실행되고 있어야 합니다. 인스턴스에 대한 자세한 내용은 명명된 인스턴스 사용을 참조하십시오.

Xcopy를 사용하면 응용 프로그램을 사용자에게 배포할 때 .exe 파일과 .mdf 파일만 보내면 됩니다. 각 사용자는 이러한 파일을 폴더에 넣고 .exe를 두 번 클릭하여 응용 프로그램을 사용할 수 있습니다.

Xcopy 배포 작동 방법

SQL Server Express는 응용 프로그램이 처음 연결을 설정할 때 실행 중인 SQL Server Express 인스턴스에 자동으로 .mdf 파일을 연결할 수 있습니다. 사용자가 응용 프로그램을 닫거나 종료하면 SQL Server Express는 해당 인스턴스에서 .mdf 파일을 분리합니다. 이 기능을 사용하면 .mdf 파일의 이식이 가능하므로 파일을 복사 및 이동하고 같은 인스턴스에서 동시에 여러 개의 파일 복사본을 실행할 수 있습니다.

논리적 데이터베이스 이름 지정

SQL Server Express는 데이터베이스를 연결할 때 응용 프로그램의 연결 문자열이 논리적 이름을 지정하지 않는 경우 자동으로 데이터베이스의 논리적 이름을 생성합니다. 이 논리적 이름은 고유해야 합니다. SQL Server Express는 드라이브 문자, 디렉터리 이름 및 데이터베이스 파일 이름을 논리적 이름으로 사용합니다. 예를 들어 .mdf 파일이 C:\Program Files\My Application\Data\MainData.mdf 경로에 있을 경우 SQL Server Express는 C:\Program Files\My Application\Data\MainData.mdf 경로와 정확하게 일치하는 논리적 데이터베이스 이름을 할당합니다.

[!참고] 전체 경로와 파일 이름의 길이가 127자를 초과하면 논리적 데이터베이스 이름이 짧게 줄여지고 앞에 GUID 접두사가 추가되어 고유한 논리적 이름을 만듭니다.

로그 파일 만들기 및 이름 지정

응용 프로그램을 배포하는 경우 응용 프로그램 파일과 .mdf 파일만 Xcopy를 수행합니다. 로그 파일(.ldf)은 포함하면 안 됩니다. SQL Server Express에서 데이터베이스를 연결할 때 자동으로 새 로그 파일을 만듭니다. SQL Server Express는 로그 파일의 이름을 database_name_log.ldf로 지정합니다. 동일한 이름의 파일이 .mdf 파일과 같은 디렉터리에 있으면 기존 파일이 사용됩니다.

Xcopy 배포 사용 시 제한 사항

응용 프로그램에 Xcopy 배포를 사용하는 경우 일부 SQL Server Express 기능이 예상대로 작동하지 않을 수 있습니다. 다음 목록에서는 발생할 수 있는 제한에 대해 설명합니다.

  • 논리적 데이터베이스 이름이 포함된 Transact-SQL 코드는 실행되지 않습니다.
    데이터베이스의 논리적 이름이 각 Xcopy마다 변경되는 파일 위치에 따라 달라지기 때문에 논리적 데이터베이스 이름을 지정하는 코드는 모두 실패합니다.
  • 복제 시나리오가 실행되지 않습니다.
    복제 시 영구 논리적 데이터베이스 이름이 필요합니다. 응용 프로그램이 복제를 사용하는 경우에는 Xcopy 배포를 사용할 수 없습니다.

SQL Server Express 인스턴스의 관리자용 Xcopy 배포

SQL Server Express의 Xcopy 배포 기능을 응용 프로그램에 실행하려면 응용 프로그램에서 사용하는 연결 문자열에 해당 매개 변수가 있는지 확인해야 합니다.

  • data source 매개 변수를 사용하지만 컴퓨터 이름을 마침표(.) 또는 (local)로 변경합니다. SQL Server Express가 항상 명명되지 않은 인스턴스에 설치되는 경우를 제외하고 인스턴스 이름도 지정해야 합니다. 명명된 인스턴스 및 명명되지 않은 인스턴스에 대한 자세한 내용은 명명된 인스턴스 사용을 참조하십시오.
  • initial catalog 또는 database 매개 변수를 사용하되 매개 변수를 값으로 설정하지 마십시오.
  • AttachDBFileName 매개 변수를 추가하고 .mdf 파일의 이름과 경로로 설정합니다. Attachdbfilename은 런타임 시 데이터베이스 연결을 허용하고 데이터베이스 이름을 자동 생성하는 SqlClient 연결 문자열 옵션입니다. DataDirectory 키워드를 사용하면 데이터베이스 파일의 상대 경로를 지정할 수 있습니다. Attachdbfilename은 데이터베이스 이식성에도 도움이 됩니다. Attachdbfilename에 대한 자세한 내용은 Visual Studio 2005 설명서를 참조하십시오.

다음 연결 문자열은 응용 프로그램 실행 파일과 같은 폴더에 있는 MyDb.mdf 데이터베이스 파일을 로컬 컴퓨터에서 실행 중인 SQL Server Express 인스턴스에 연결합니다.

@"Data Source='.\SQLExpress'; Initial Catalog=; Integrated 
Security=true; AttachDBFileName='" |DataDirectory| + 
@"\MyDb.mdf'"

SQL Server Express 인스턴스의 비관리자용 Xcopy 배포

인스턴스의 관리자용 Xcopy 배포에 대한 연결 문자열에 지정된 모든 매개 변수 외에도 user instance 매개 변수를 지정하여 SQL Server Express 인스턴스에 대한 관리 권한이 없는 사용자용 응용 프로그램을 배포해야 합니다. 사용자 인스턴스에 대한 자세한 내용은 비관리자용 사용자 인스턴스를 참조하십시오.

참고 항목

관련 자료

SQL Server Express 배포

도움말 및 정보

SQL Server 2005 지원 받기