Xcopy 배포(SQL Server Express)
Xcopy는 응용 프로그램과 SQL Server Express 데이터베이스를 배포하는 간편한 방법입니다. Xcopy 배포를 사용하면 새 응용 프로그램(.exe) 및 데이터베이스(.mdf) 파일을 다른 컴퓨터로 복사하거나 동일한 컴퓨터의 다른 위치로 복사할 수 있습니다. 추가적인 서버 구성은 필요하지 않습니다.
응용 프로그램을 사용자에게 배포하려면 .exe 및 .mdf 파일만 보냅니다. 각 사용자는 해당 파일을 로컬에 저장하고 해당 .exe를 두 번 클릭하여 응용 프로그램을 시작할 수 있습니다. 응용 프로그램이 복제를 사용하는 경우에는 Xcopy 배포를 사용할 수 없습니다.
Xcopy 배포를 사용하려면 SQL Server Express가 대상 컴퓨터에 설치되어 있어야 하고 실행 중인 인스턴스가 있어야 합니다. 자세한 내용은 비관리자용 사용자 인스턴스를 참조하십시오.
Xcopy 배포 사용 방법
응용 프로그램이 실행 중인 SQL Server Express 인스턴스에서 처음 연결을 설정할 때 SQL Server Express는 자동으로 .mdf 파일을 연결합니다. 사용자가 응용 프로그램을 닫을 경우 SQL Server Express는 해당 인스턴스에서 .mdf 파일을 분리합니다. Xcopy 기능을 통해 .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 배포
SQL Server Express 인스턴스에 대한 관리 권한이 없는 사용자용 응용 프로그램을 배포하려면 다음 사항을 지정해야 합니다.
Xcopy 배포를 위한 연결 문자열의 매개 변수
user instance 매개 변수
자세한 내용은 비관리자용 사용자 인스턴스를 참조하십시오.