데이터베이스 연결Attach a Database

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 항목에서는 SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL의 데이터베이스를 연결하는 방법에 대해 설명합니다.This topic describes how to attach a database in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. 이 기능을 사용하여 SQL Server 데이터베이스를 복사, 이동 또는 업그레이드할 수 있습니다.You can use this feature to copy, move, or upgrade a SQL Server database.

필수 구성 요소Prerequisites

  • 먼저 데이터베이스를 분리해야 합니다.The database must first be detached. 분리되지 않은 데이터베이스를 연결하려고 하면 오류가 반환됩니다.Attempting to attach a database that has not been detached will return an error. 자세한 내용은 데이터베이스 분리를 참조하세요.For more information, see Detach a Database.

  • 데이터베이스를 연결할 경우 모든 데이터 파일(MDF 및 LDF 파일)이 사용 가능해야 합니다.When you attach a database, all data files (MDF and LDF files) must be available. 데이터베이스가 처음 생성되었을 때 또는 마지막으로 연결되었을 때와 경로가 다른 데이터 파일이 있으면 해당 파일의 현재 경로를 지정해야 합니다.If any data file has a different path from when the database was first created or last attached, you must specify the current path of the file.

  • 데이터베이스를 분리하는 경우 MDF 및 LDF 파일이 서로 다른 디렉터리에 있고 경로 중 하나에 \\?\GlobalRoot가 포함되어 있으면 작업이 실패합니다.When you attach a database, if MDF and LDF files are located in different directories and one of the paths includes \\?\GlobalRoot, the operation will fail.

연결하는 게 가장 좋은 방법일까요?Is Attach the best choice?

같은 인스턴스에서 데이터베이스 파일을 옮길 때는 분리와 연결 작업을 하는 대신 계획된 ALTER DATABASE 재배치 프로시저를 사용하여 데이터베이스를 옮기는 것이 좋습니다.We recommend that you move databases by using the ALTER DATABASE planned relocation procedure instead of using detach and attach, when moving database files within the same instance. 자세한 내용은 Move User Databases을 참조하세요.For more information, see Move User Databases.

백업 및 복구에는 분리 및 연결 작업을 하지 않는 것이 좋습니다.We don't recommend using detach and attach for Backup and Recovery. 트랜잭션 로그 백업이 없으며 실수로 파일을 삭제할 수 있습니다.There are no transaction log backups, and it possible to accidently delete files.

보안Security

파일 액세스 권한은 데이터베이스 분리, 연결 등의 여러 데이터베이스 작업 중에 설정됩니다.File access permissions are set during a number of database operations, including detaching or attaching a database. 데이터베이스를 분리 및 연결할 때마다 설정되는 파일 사용 권한에 대한 자세한 내용은 온라인 설명서에서 데이터 및 로그 파일 보안 SQL Server 2008 R2SQL Server 2008 R2 을 참조하세요(현재도 제공됨).For information about file permissions that are set whenever a database is detached and attached, see Securing Data and Log Files from SQL Server 2008 R2SQL Server 2008 R2 Books Online (Still a valid read!)

알 수 없거나 신뢰할 수 없는 출처의 데이터베이스는 연결 또는 복원하지 않는 것이 좋습니다.We recommend that you do not attach or restore databases from unknown or untrusted sources. 이러한 데이터베이스에 포함된 악성 코드가 의도하지 않은 Transact-SQLTransact-SQL 코드를 실행하거나 스키마 또는 물리적 데이터베이스 구조를 수정하여 오류가 발생할 수 있습니다.Such databases could contain malicious code that might execute unintended Transact-SQLTransact-SQL code or cause errors by modifying the schema or the physical database structure. 알 수 없거나 신뢰할 수 없는 소스의 데이터베이스를 사용하기 전에 비프로덕션 서버의 데이터베이스에서 DBCC CHECKDB 를 실행하여 데이터베이스에서 코드(예: 저장 프로시저 또는 다른 사용자 정의 코드)를 시험해 보세요.Before you use a database from an unknown or untrusted source, run DBCC CHECKDB on the database on a nonproduction server and also examine the code, such as stored procedures or other user-defined code, in the database. 데이터베이스 연결에 대한 자세한 내용 및 데이터베이스를 연결할 때 메타데이터에 대해 이루어지는 변경에 대한 자세한 내용은 데이터베이스 분리 및 연결(SQL Server)을 참조하세요.For more information about attaching databases and information about changes that are made to metadata when you attach a database, see Database Detach and Attach (SQL Server).

PermissionsPermissions

CREATE DATABASE, CREATE ANY DATABASE 또는 ALTER ANY DATABASE 권한이 필요합니다.Requires CREATE DATABASE, CREATE ANY DATABASE, or ALTER ANY DATABASE permission.

SQL Server Management Studio 사용Using SQL Server Management Studio

데이터베이스를 연결하려면To Attach a Database

  1. SQL Server Management StudioSQL Server Management Studio 개체 탐색기에서 SQL Server 데이터베이스 엔진SQL Server Database Engine의 인스턴스에 연결한 다음 SSMS에서 해당 인스턴스 뷰를 클릭하여 확장합니다.In SQL Server Management StudioSQL Server Management Studio Object Explorer, connect to an instance of the SQL Server 데이터베이스 엔진SQL Server Database Engine, and then click to expand that instance view in SSMS.

  2. 마우스 오른쪽 단추로 데이터베이스 를 클릭하고 연결을 클릭합니다.Right-click Databases and click Attach.

  3. 데이터베이스 연결 대화 상자에서 연결할 데이터베이스를 지정하려면 추가를 클릭하고 데이터베이스 파일 찾기 대화 상자에서 데이터베이스가 있는 디스크 드라이브를 선택한 다음 디렉터리 트리를 확장하여 데이터베이스의 .mdf 파일을 선택합니다. 파일의 경로를 예로 들면 다음과 같습니다.In the Attach Databases dialog box, to specify the database to be attached, click Add; and in the Locate Database Files dialog box, select the disk drive where the database resides and expand the directory tree to find and select the .mdf file of the database; for example:

    C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.mdf

    중요

    이미 연결된 데이터베이스를 선택하려고 하면 오류가 발생합니다.Trying to select a database that is already attached generates an error.

    연결할 데이터베이스Databases to attach
    선택한 데이터베이스에 대한 정보를 표시합니다.Displays information about the selected databases.

    <열 머리글 없음><no column header>
    연결 작업의 상태를 나타내는 아이콘을 표시합니다.Displays an icon indicating the status of the attach operation. 가능한 아이콘은 아래의 상태 에 대한 설명에 설명되어 있습니다.The possible icons are described in the Status description, below).

    MDF 파일 위치MDF File Location
    선택한 MDF 파일의 경로와 파일 이름을 표시합니다.Displays the path and file name of the selected MDF file.

    Database NameDatabase Name
    데이터베이스 이름을 표시합니다.Displays the name of the database.

    다른 이름으로 연결Attach As
    필요에 따라 연결할 데이터베이스의 이름을 다른 이름으로 지정합니다.Optionally, specifies a different name for the database to attach as.

    소유자Owner
    필요에 따라 다른 소유자를 선택할 수 있도록 가능한 데이터베이스 소유자의 드롭다운 목록을 제공합니다.Provides a drop-down list of possible database owners from which you can optionally select a different owner.

    상태Status
    다음 표에 설명된 내용과 같이 데이터베이스의 상태를 표시합니다.Displays the status of the database according to the following table.

    아이콘Icon 상태 텍스트Status text 설명Description
    (아이콘 없음)(No icon) (텍스트 없음)(No text) 연결 작업이 시작되지 않았거나 이 개체에 대해 보류 중입니다.Attach operation has not been started or may be pending for this object. 대화 상자가 열려 있는 경우에 표시되는 기본 설정입니다.This is the default when the dialog is opened.
    녹색, 오른쪽 방향 삼각형Green, right-pointing triangle 진행 중In progress 연결 작업이 시작되었지만 아직 완료되지 않았습니다.Attach operation has been started but it is not complete.
    녹색 확인 표시Green check mark 성공Success 개체가 성공적으로 연결되었습니다.The object has been attached successfully.
    흰색 십자 표시가 있는 빨강 원Red circle containing a white cross 오류Error 연결 작업을 수행하는 동안 오류가 발생하여 완료하지 못했습니다.Attach operation encountered an error and did not complete successfully.
    오른쪽과 왼쪽에 두 개의 검정 사분면이 있고 위쪽과 아래쪽에 두 개의 흰색 사분면이 있는 원Circle containing two black quadrants (on left and right) and two white quadrants (on top and bottom) 중지됨Stopped 사용자가 작업을 중지하여 연결 작업이 완료되지 않았습니다.Attach operation was not completed successfully because the user stopped the operation.
    시계 반대 방향을 가리키는 곡선 모양의 화살표가 있는 원Circle containing a curved arrow pointing counter-clockwise 롤백됨Rolled Back 연결 작업이 성공적으로 완료되었지만 다른 개체를 연결하는 동안 발생한 오류로 인해 롤백되었습니다.Attach operation was successful but it has been rolled back due to an error during attachment of another object.

    메시지Message
    빈 메시지 또는 "파일을 찾을 수 없습니다"라는 하이퍼링크를 표시합니다.Displays either a blank message or a "File not found" hyperlink.

    추가Add
    필요한 기본 데이터베이스 파일을 찾습니다.Find the necessary main database files. 사용자가 .mdf 파일을 선택하면 연결할 데이터베이스 표의 각 필드에 적절한 정보가 자동으로 입력됩니다.When the user selects an .mdf file, applicable information is automatically filled in the respective fields of the Databases to attach grid.

    제거Remove
    선택한 파일을 연결할 데이터베이스 표에서 제거합니다.Removes the selected file from the Databases to attach grid.

    " <database_name> " 데이터베이스 정보" <database_name> " database details
    연결할 파일의 이름을 표시합니다.Displays the names of the files to be attached. 파일의 경로 이름을 확인하거나 변경하려면 찾아보기 단추()를 클릭합니다.To verify or change the pathname of a file, click the Browse button ().

    참고

    파일이 없으면 메시지 열에 "찾을 수 없음"이 표시됩니다.If a file does not exist, the Message column displays "Not found." 로그 파일을 찾을 수 없는 경우 다른 디렉터리에 있거나 삭제된 것입니다.If a log file is not found, it exists in another directory or has been deleted. 올바른 위치를 가리키도록 데이터베이스 정보 표의 파일 경로를 업데이트하거나 표에서 로그 파일을 제거해야 합니다.You need to either update the file path in the database details grid to point to the correct location or remove the log file from the grid. .ndf 데이터 파일을 찾을 수 없는 경우 올바른 위치를 가리키도록 표에서 해당 파일의 경로를 업데이트해야 합니다.If an .ndf data file is not found, you need to update its path in the grid to point to the correct location.

    원래 파일 이름Original File Name
    데이터베이스에 속한 연결된 파일의 이름을 표시합니다.Displays the name of the attached file belonging to the database.

    파일 유형File Type
    파일의 형식( 데이터 또는 로그)을 나타냅니다.Indicates the type of file, Data or Log.

    현재 파일 경로Current File Path
    선택한 데이터베이스 파일의 경로를 표시합니다.Displays the path to the selected database file. 이 경로는 직접 편집할 수 있습니다.The path can be edited manually.

    메시지Message
    빈 메시지 또는 "파일을 찾을 수 없습니다"라는 하이퍼링크를 표시합니다.Displays either a blank message or a "File not found" hyperlink.

Transact-SQL 사용Using Transact-SQL

데이터베이스를 연결하려면To attach a database

  1. 데이터베이스 엔진Database Engine에 연결합니다.Connect to the 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.From the Standard bar, click New Query.

  3. FOR ATTACH 절과 함께 CREATE DATABASE 문을 사용합니다.Use the CREATE DATABASE statement with the FOR ATTACH close.

    다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute. 이 예에서는 AdventureWorks2012AdventureWorks2012 데이터베이스의 파일을 연결하고 데이터베이스 이름을 MyAdventureWorks로 바꿉니다.This example attaches the files of the AdventureWorks2012AdventureWorks2012 database and renames the database to MyAdventureWorks.

    CREATE DATABASE MyAdventureWorks   
        ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'),   
        (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf')   
        FOR ATTACH;  
    

    참고

    또는 sp_attach_db 또는 sp_attach_single_file_db 저장 프로시저를 사용할 수 있습니다.Alternatively, you can use the sp_attach_db or sp_attach_single_file_db stored procedure. 그러나 이 프로시저는 이후 버전의 Microsoft SQL ServerSQL Server에서 제거될 예정입니다.However, these procedures will be removed in a future version of Microsoft SQL ServerSQL Server. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. CREATE DATABASE를 사용하는 것이 좋습니다.We recommend that you use CREATE DATABASE … FOR ATTACH 대신.FOR ATTACH instead.

후속 작업: SQL Server 데이터베이스를 업그레이드한 후Follow Up: After Upgrading a SQL Server Database

연결 방법을 사용하여 데이터베이스를 업그레이드하면 데이터베이스를 바로 사용할 수 있으며 자동으로 업그레이드됩니다.After you upgrade a database by using the attach method, the database becomes available immediately and is automatically upgraded. 데이터베이스에 전체 텍스트 인덱스가 있는 경우 업그레이드 프로세스는 전체 텍스트 업그레이드 옵션 서버 속성의 설정에 따라 인덱스를 가져오거나, 다시 설정하거나, 다시 작성합니다.If the database has full-text indexes, the upgrade process either imports, resets, or rebuilds them, depending on the setting of the Full-Text Upgrade Option server property. 업그레이드 옵션이 가져오기 또는 다시 작성으로 설정되어 있는 경우 업그레이드하는 동안 전체 텍스트 인덱스를 사용할 수 없습니다.If the upgrade option is set to Import or Rebuild, the full-text indexes will be unavailable during the upgrade. 인덱싱되는 데이터 양에 따라 가져오기 작업은 몇 시간씩 걸릴 수 있으며 다시 작성 작업은 10배 정도 더 걸릴 수 있습니다.Depending the amount of data being indexed, importing can take several hours, and rebuilding can take up to ten times longer. 업그레이드 옵션이 가져오기로 설정되어 있으면 전체 텍스트 카탈로그를 사용할 수 없는 경우 관련된 전체 텍스트 인덱스가 다시 작성됩니다.Note also that when the upgrade option is set to Import, if a full-text catalog is not available, the associated full-text indexes are rebuilt.

사용자 데이터베이스의 호환성 수준이 업그레이드 이전에 100 이상이면 업그레이드 후에도 동일하게 유지됩니다.If the compatibility level of a user database is 100 or higher before upgrade, it remains the same after upgrade. 업그레이드 이전에 호환성 수준이 90이면 업그레이드된 데이터베이스에서는 호환성 수준이 SQL Server 2017SQL Server 2017에서 지원되는 가장 낮은 호환성 수준인 100으로 설정됩니다.If the compatibility level is 90 before upgrade, in the upgraded database, the compatibility level is set to 100, which is the lowest supported compatibility level in SQL Server 2017SQL Server 2017. 자세한 내용은 ALTER DATABASE 호환성 수준(Transact-SQL)을 참조하세요.For more information, see ALTER DATABASE Compatibility Level (Transact-SQL).

참고

CDC(변경 데이터 캡처)가 사용하도록 설정된 SQL Server 2014 이하를 실행하는 인스턴스에서 데이터베이스를 연결하는 경우 아래 명령을 실행하여 CDC(변경 데이터 캡처) 메타데이터도 업그레이드해야 합니다.If you are attaching a database from an instance running SQL Server 2014 or below which had Change Data Capture (CDC) enabled, you will also need to execute the command below to upgrade the Change Data Capture (CDC) metadata.

USE <database name>
EXEC sys.sp_cdc_vupgrade  

관련 항목:See Also

CREATE DATABASE(SQL Server Transact-SQL) CREATE DATABASE (SQL Server Transact-SQL)
데이터베이스 분리Detach a Database