사용자 데이터베이스 이동Move User Databases

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse SQL ServerSQL Server에서는 ALTER DATABASE 문의 FILENAME 절에 새 파일 위치를 지정하여 사용자 데이터베이스의 데이터, 로그 및 전체 텍스트 카탈로그 파일을 새 위치로 이동할 수 있습니다. In SQL ServerSQL Server, you can move the data, log, and full-text catalog files of a user database to a new location by specifying the new file location in the FILENAME clause of the ALTER DATABASE statement. 이 방법은 동일한 SQL ServerSQL Server인스턴스 내에서 데이터베이스 파일을 이동하는 경우에 적용됩니다.This method applies to moving database files within the same instance SQL ServerSQL Server. 데이터베이스를 다른 SQL ServerSQL Server 인스턴스나 다른 서버로 이동하려면 백업 및 복원 작업이나 분리/연결작업을 사용합니다.To move a database to another instance of SQL ServerSQL Server or to another server, use backup and restore or detach and attach operations.

고려 사항Considerations

데이터베이스를 다른 서버 인스턴스로 이동하는 경우 사용자와 응용 프로그램에 일관된 환경을 제공하려면 데이터베이스의 일부 또는 모든 메타데이터를 다시 만들어야 할 수도 있습니다.When you move a database onto another server instance, to provide a consistent experience to users and applications, you might have to re-create some or all the metadata for the database. 자세한 내용은 다른 서버 인스턴스에서 데이터베이스를 사용할 수 있도록 할 때 메타데이터 관리(SQL Server)를 참조하세요.For more information, see Manage Metadata When Making a Database Available on Another Server Instance (SQL Server).

SQL Server 데이터베이스 엔진SQL Server Database Engine의 일부 기능 중 데이터베이스 엔진Database Engine에서 데이터베이스 파일의 정보를 저장하는 방법이 변경되었습니다.Some features of the SQL Server 데이터베이스 엔진SQL Server Database Engine change the way that the 데이터베이스 엔진Database Engine stores information in the database files. 이러한 기능은 특정 SQL ServerSQL Server버전으로 제한됩니다.These features are restricted to specific editions of SQL ServerSQL Server. 이러한 기능을 포함하는 데이터베이스는 이러한 기능이 지원되지 않는 SQL ServerSQL Server 버전으로 이동할 수 없습니다.A database that contains these features cannot be moved to an edition of SQL ServerSQL Server that does not support them. 현재 데이터베이스에 설정된 모든 버전별 기능 목록을 보려면 sys.dm_db_persisted_sku_features 동적 관리 뷰를 사용합니다.Use the sys.dm_db_persisted_sku_features dynamic management view to list all edition-specific features that are enabled in the current database.

이 항목의 절차를 사용하려면 데이터베이스 파일의 논리적 이름이 필요합니다.The procedures in this topic require the logical name of the database files. 논리적 파일 이름을 구하려면 sys.master_files 카탈로그 뷰의 name 열을 쿼리합니다.To obtain the name, query the name column in the sys.master_files catalog view.

SQL Server 2008 R2SQL Server 2008 R2에서 시작하여 전체 텍스트 카탈로그는 파일 시스템에 저장되는 대신 데이터베이스에 통합됩니다.Starting with SQL Server 2008 R2SQL Server 2008 R2, full-text catalogs are integrated into the database rather than being stored in the file system. 데이터베이스를 이동할 때 전체 텍스트 카탈로그는 이제 자동으로 이동합니다.The full-text catalogs now move automatically when you move a database.

계획된 재배치 절차Planned Relocation Procedure

계획된 재배치의 일부로 데이터 또는 로그 파일을 이동하려면 다음 단계를 따릅니다.To move a data or log file as part of a planned relocation, follow these steps:

  1. 다음 문을 실행합니다.Run the following statement.

    ALTER DATABASE database_name SET OFFLINE;  
    
  2. 파일을 새 위치로 이동합니다.Move the file or files to the new location.

  3. 이동한 각 파일에 대해 다음 문을 실행합니다.For each file moved, run the following statement.

    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );  
    
  4. 다음 문을 실행합니다.Run the following statement.

    ALTER DATABASE database_name SET ONLINE;  
    
  5. 다음 쿼리를 실행하여 파일 변경 내용을 확인합니다.Verify the file change by running the following query.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'<database_name>');  
    

예약된 디스크 유지 관리를 위한 재배치Relocation for Scheduled Disk Maintenance

예약된 디스크 유지 관리 프로세스의 일부로 파일을 재배치하려면 다음 단계를 따릅니다.To relocate a file as part of a scheduled disk maintenance process, follow these steps:

  1. 이동할 각 파일에 대해 다음 문을 실행합니다.For each file to be moved, run the following statement.

    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' );  
    
  2. SQL ServerSQL Server 인스턴스를 중지하거나 시스템을 종료하여 유지 관리를 수행합니다.Stop the instance of SQL ServerSQL Server or shut down the system to perform maintenance. 자세한 내용은 데이터베이스 엔진, SQL Server 에이전트 또는 SQL Server Browser 서비스 시작, 중지, 일시 중지, 재개 및 다시 시작을 참조하세요.For more information, see Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service.

  3. 파일을 새 위치로 이동합니다.Move the file or files to the new location.

  4. SQL ServerSQL Server 인스턴스나 서버를 다시 시작합니다.Restart the instance of SQL ServerSQL Server or the server. 자세한 내용은 데이터베이스 엔진, SQL Server 에이전트 또는 SQL Server Browser 서비스 시작, 중지, 일시 중지, 재개 및 다시 시작를 참조하세요For more information, see Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service

  5. 다음 쿼리를 실행하여 파일 변경 내용을 확인합니다.Verify the file change by running the following query.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'<database_name>');  
    

오류 복구 절차Failure Recovery Procedure

하드웨어 오류로 인해 파일을 이동해야 하는 경우 다음 단계에 따라 파일을 새 위치에 재배치합니다.If a file must be moved because of a hardware failure, use the following steps to relocate the file to a new location.

중요

데이터베이스가 주의 대상 모드에 있거나 복구할 수 없는 상태여서 시작할 수 없는 경우에는 sysadmin 고정 역할의 멤버만 파일을 이동할 수 있습니다.If the database cannot be started, that is it is in suspect mode or in an unrecovered state, only members of the sysadmin fixed role can move the file.

  1. SQL ServerSQL Server 인스턴스가 시작된 경우 중지합니다.Stop the instance of SQL ServerSQL Server if it is started.

  2. 명령 프롬프트에서 다음 명령 중 하나를 입력하여 SQL ServerSQL Server 인스턴스를 마스터 전용 복구 모드로 시작합니다.Start the instance of SQL ServerSQL Server in master-only recovery mode by entering one of the following commands at the command prompt.

  3. 이동할 각 파일에 대해 sqlcmd 명령 또는 SQL Server Management StudioSQL Server Management Studio 를 사용하여 다음 문을 실행합니다.For each file to be moved, use sqlcmd commands or SQL Server Management StudioSQL Server Management Studio to run the following statement.

    ALTER DATABASE database_name MODIFY FILE( NAME = logical_name , FILENAME = 'new_path\os_file_name' );  
    

    sqlcmd 유틸리티 사용 방법은 sqlcmd 유틸리티 사용을 참조하세요.For more information about how to use the sqlcmd utility, see Use the sqlcmd Utility.

  4. sqlcmd 유틸리티 또는 SQL Server Management StudioSQL Server Management Studio를 종료합니다.Exit the sqlcmd utility or SQL Server Management StudioSQL Server Management Studio.

  5. SQL ServerSQL Server인스턴스를 중지합니다.Stop the instance of SQL ServerSQL Server.

  6. 파일을 새 위치로 이동합니다.Move the file or files to the new location.

  7. SQL ServerSQL Server인스턴스를 시작합니다.Start the instance of SQL ServerSQL Server. 예를 들어 NET START MSSQLSERVER을 실행합니다.For example, run: NET START MSSQLSERVER.

  8. 다음 쿼리를 실행하여 파일 변경 내용을 확인합니다.Verify the file change by running the following query.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'<database_name>');  
    

Examples

다음 예에서는 계획된 재배치의 일부로 AdventureWorks2012AdventureWorks2012 로그 파일을 새 위치로 이동합니다.The following example moves the AdventureWorks2012AdventureWorks2012 log file to a new location as part of a planned relocation.

USE master;  
GO  
-- Return the logical file name.  
SELECT name, physical_name AS CurrentLocation, state_desc  
FROM sys.master_files  
WHERE database_id = DB_ID(N'AdventureWorks2012')  
    AND type_desc = N'LOG';  
GO  
ALTER DATABASE AdventureWorks2012 SET OFFLINE;  
GO  
-- Physically move the file to a new location.  
-- In the following statement, modify the path specified in FILENAME to  
-- the new location of the file on your server.  
ALTER DATABASE AdventureWorks2012   
    MODIFY FILE ( NAME = AdventureWorks2012_Log,   
                  FILENAME = 'C:\NewLoc\AdventureWorks2012_Log.ldf');  
GO  
ALTER DATABASE AdventureWorks2012 SET ONLINE;  
GO  
--Verify the new location.  
SELECT name, physical_name AS CurrentLocation, state_desc  
FROM sys.master_files  
WHERE database_id = DB_ID(N'AdventureWorks2012')  
    AND type_desc = N'LOG';  

참고 항목See Also

ALTER DATABASE(Transact-SQL) ALTER DATABASE (Transact-SQL)
CREATE DATABASE(SQL Server Transact-SQL) CREATE DATABASE (SQL Server Transact-SQL)
데이터베이스 분리 및 연결(SQL Server) Database Detach and Attach (SQL Server)
시스템 데이터베이스 이동 Move System Databases
데이터베이스 파일 이동 Move Database Files
BACKUP(Transact-SQL) BACKUP (Transact-SQL)
RESTORE(Transact-SQL) RESTORE (Transact-SQL)
데이터베이스 엔진, SQL Server 에이전트 또는 SQL Server Browser 서비스 시작, 중지, 일시 중지, 재개 및 다시 시작Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service