시스템 데이터베이스 이동Move System Databases

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 항목에서는 SQL ServerSQL Server에서 시스템 데이터베이스를 이동하는 방법에 대해 설명합니다.This topic describes how to move system databases in SQL ServerSQL Server. 시스템 데이터베이스 이동은 다음과 같은 경우에 유용할 수 있습니다.Moving system databases may be useful in the following situations:

  • 오류 복구.Failure recovery. 하드웨어 오류로 인해 데이터베이스가 주의 대상 모드에 있거나 종료된 경우를 예로 들 수 있습니다.For example, the database is in suspect mode or has shut down because of a hardware failure.

  • 계획된 재배치Planned relocation.

  • 예약된 디스크 유지 관리를 위한 재배치Relocation for scheduled disk maintenance.

    다음 절차는 동일한 SQL ServerSQL Server인스턴스 내에서 데이터베이스 파일을 이동하는 경우에 적용됩니다.The following procedures apply to moving database files within the same instance of SQL ServerSQL Server. 데이터베이스를 다른 SQL ServerSQL Server 인스턴스나 다른 서버로 이동하려면 백업 및 복원 작업을 사용합니다.To move a database to another instance of SQL ServerSQL Server or to another server, use the backup and restore operation.

    이 항목의 절차를 사용하려면 데이터베이스 파일의 논리적 이름이 필요합니다.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.

중요

시스템 데이터베이스를 이동한 다음 나중에 master 데이터베이스를 다시 작성하는 경우 다시 작성 작업에서 모든 시스템 데이터베이스를 기본 위치에 설치하기 때문에 시스템 데이터베이스를 다시 이동해야 합니다.If you move a system database and later rebuild the master database, you must move the system database again because the rebuild operation installs all system databases to their default location.

중요

파일을 이동하고 나면 SQL ServerSQL Server 서비스 계정에 새 파일 폴더 위치에서 파일에 액세스할 수 있는 권한이 있어야 합니다.After moving files, the SQL ServerSQL Server service account must have permission to access the files in new file folder location.

계획된 재배치 및 예약된 디스크 유지 관리 절차 Planned Relocation and Scheduled Disk Maintenance Procedure

계획된 재배치 또는 예약된 유지 관리 작업의 일부로 시스템 데이터베이스 데이터나 로그 파일을 이동하려면 다음 단계를 따릅니다.To move a system database data or log file as part of a planned relocation or scheduled maintenance operation, follow these steps. 이 절차는 master 및 리소스 데이터베이스를 제외한 모든 시스템 데이터베이스에 적용됩니다.This procedure applies to all system databases except the master and Resource databases.

  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>');  
    

    msdb 데이터베이스가 이동되고 SQL ServerSQL Server 인스턴스에서 데이터베이스 메일을 구성한 경우 다음 단계를 추가로 완료합니다.If the msdb database is moved and the instance of SQL ServerSQL Server is configured for Database Mail, complete these additional steps.

  6. 다음 쿼리를 실행하여 msdb 데이터베이스에 대해 Service BrokerService Broker가 설정되어 있는지 확인합니다.Verify that Service BrokerService Broker is enabled for the msdb database by running the following query.

    SELECT is_broker_enabled   
    FROM sys.databases  
    WHERE name = N'msdb';  
    

    Service BrokerService Broker를 설정하는 방법은 ALTER DATABASE(Transact-SQL)를 참조하세요.For more information about enabling Service BrokerService Broker, see ALTER DATABASE (Transact-SQL).

  7. 테스트 메일을 보내 데이터베이스 메일이 작동하는지 확인합니다.Verify that Database Mail is working by sending a test mail.

오류 복구 절차 Failure Recovery Procedure

하드웨어 오류로 인해 파일을 이동해야 하는 경우 다음 단계에 따라 파일을 새 위치에 재배치합니다.If a file must be moved because of a hardware failure, follow these steps to relocate the file to a new location. 이 절차는 master 및 리소스 데이터베이스를 제외한 모든 시스템 데이터베이스에 적용됩니다.This procedure applies to all system databases except the master and Resource databases.

중요

데이터베이스가 주의 대상 모드에 있거나 복구할 수 없는 상태여서 시작할 수 없는 경우에는 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. 이러한 명령에 지정된 매개 변수는 대/소문자를 구분합니다.The parameters specified in these commands are case sensitive. 표시된 대로 매개 변수를 지정하지 않으면 명령이 실패합니다.The commands fail when the parameters are not specified as shown.

  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 using 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. 예를 들어 NET STOP MSSQLSERVER를 실행합니다.For example, run NET STOP MSSQLSERVER.

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

  7. SQL ServerSQL Server인스턴스를 다시 시작합니다.Restart 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>');  
    

master 데이터베이스 이동 Moving the master Database

master 데이터베이스를 이동하려면 다음 단계를 수행합니다.To move the master database, follow these steps.

  1. 시작 메뉴에서 모든 프로그램, Microsoft SQL Server, 구성 도구를 차례로 가리킨 다음 SQL Server 구성 관리자를 클릭합니다.From the Start menu, point to All Programs, point to Microsoft SQL Server, point to Configuration Tools, and then click SQL Server Configuration Manager.

  2. SQL Server 서비스 노드에서 SQL ServerSQL Server 인스턴스(예: SQL Server(MSSQLSERVER))를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다.In the SQL Server Services node, right-click the instance of SQL ServerSQL Server (for example, SQL Server (MSSQLSERVER)) and choose Properties.

  3. SQL Server(instance_name) 속성 대화 상자에서 시작 매개 변수 탭을 클릭합니다.In the SQL Server (instance_name) Properties dialog box, click the Startup Parameters tab.

  4. 기존 매개 변수 상자에서 –d 매개 변수를 선택하여 마스터 데이터 파일을 이동합니다.In the Existing parameters box, select the –d parameter to move the master data file. 업데이트 를 클릭하여 변경 내용을 저장합니다.Click Update to save the change.

    시작 매개 변수 지정 상자에서 매개 변수를 master 데이터베이스의 새 경로로 변경합니다.In the Specify a startup parameter box, change the parameter to the new path of the master database.

  5. 기존 매개 변수 상자에서 –l 매개 변수를 선택하여 마스터 로그 파일을 이동합니다.In the Existing parameters box, select the –l parameter to move the master log file. 업데이트 를 클릭하여 변경 내용을 저장합니다.Click Update to save the change.

    시작 매개 변수 지정 상자에서 매개 변수를 master 데이터베이스의 새 경로로 변경합니다.In the Specify a startup parameter box, change the parameter to the new path of the master database.

    데이터 파일의 매개 변수 값은 -d 매개 변수 뒤에 와야 하고 로그 파일의 값은 -l 매개 변수 뒤에 와야 합니다.The parameter value for the data file must follow the -d parameter and the value for the log file must follow the -l parameter. 다음 예에서는 마스터 데이터 파일의 기본 위치에 대한 매개 변수 값을 보여 줍니다.The following example shows the parameter values for the default location of the master data file.

    -dC:\Program Files\Microsoft SQL Server\MSSQL<version>.MSSQLSERVER\MSSQL\DATA\master.mdf

    -lC:\Program Files\Microsoft SQL Server\MSSQL<version>.MSSQLSERVER\MSSQL\DATA\mastlog.ldf

    마스터 데이터 파일의 계획된 재배치가 E:\SQLData인 경우 매개 변수 값은 다음과 같이 변경됩니다.If the planned relocation for the master data file is E:\SQLData, the parameter values would be changed as follows:

    -dE:\SQLData\master.mdf

    -lE:\SQLData\mastlog.ldf

  6. 인스턴스 이름을 마우스 오른쪽 단추로 클릭하고 SQL ServerSQL Server 중지 를 선택하여인스턴스를 중지합니다.Stop the instance of SQL ServerSQL Server by right-clicking the instance name and choosing Stop.

  7. master.mdf 및 mastlog.ldf 파일을 새 위치로 이동합니다.Move the master.mdf and mastlog.ldf files to the new location.

  8. SQL ServerSQL Server인스턴스를 다시 시작합니다.Restart the instance of SQL ServerSQL Server.

  9. 다음 쿼리를 실행하여 master 데이터베이스에 대한 파일 변경 내용을 확인합니다.Verify the file change for the master database by running the following query.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID('master');  
    GO  
    
  10. 이 시점에서 SQL Server는 정상적으로 실행되어야 합니다.At this point SQL Server should run normally. 그러나 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance_ID\Setup에서 레지스트리 항목을 조정하는 것이 좋습니다. 여기서 instance_IDMSSQL13.MSSQLSERVER와 비슷합니다.However Microsoft recommends also adjusting the registry entry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance_ID\Setup, where instance_ID is like MSSQL13.MSSQLSERVER. 해당 Hive에서 SQLDataRoot 값을 새 경로로 변경합니다.In that hive, change the SQLDataRoot value to the new path. 레지스트리 업데이트에 실패하면 패치 및 업그레이드도 실패할 수 있습니다.Failure to update the registry can cause patching and upgrading to fail.

리소스 데이터베이스 이동 Moving the Resource Database

Resource 데이터베이스의 위치는 <드라이브>:\Program Files\Microsoft SQL Server\MSSQL<version>.<instance_name>\MSSQL\Binn\입니다.The location of the Resource database is <drive>:\Program Files\Microsoft SQL Server\MSSQL<version>.<instance_name>\MSSQL\Binn\. 데이터베이스는 이동할 수 없습니다.The database cannot be moved.

후속 작업: 모든 시스템 데이터베이스를 이동한 후 Follow-up: After Moving All System Databases

모든 시스템 데이터베이스를 새 드라이브 또는 볼륨으로 이동했거나 다른 드라이브 문자를 사용하는 다른 서버에 이동한 경우 다음과 같이 업데이트하세요.If you have moved all of the system databases to a new drive or volume or to another server with a different drive letter, make the following updates.

  • SQL Server 에이전트 로그 경로를 변경합니다.Change the SQL Server Agent log path. 이 경로를 업데이트하지 않으면 SQL Server 에이전트가 시작되지 않습니다.If you do not update this path, SQL Server Agent will fail to start.

  • 데이터베이스 기본 위치를 변경합니다.Change the database default location. 기본 위치로 지정한 드라이브 문자 및 경로가 존재하지 않을 경우 새 데이터베이스 만들기가 실패할 수 있습니다.Creating a new database may fail if the drive letter and path specified as the default location do not exist.

SQL Server 에이전트 로그 경로를 변경합니다.Change the SQL Server Agent Log Path

  1. SQL Server Management Studio의 개체 탐색기에서 SQL Server 에이전트를 확장합니다.From SQL Server Management Studio, in Object Explorer, expand SQL Server Agent.

  2. 오류 로그 를 마우스 오른쪽 단추로 클릭한 다음 구성을 클릭합니다.Right-click Error Logs and click Configure.

  3. SQL Server 에이전트 오류 로그 구성 대화 상자에서 SQLAGENT.OUT 파일의 새 위치를 지정합니다.In the Configure SQL Server Agent Error Logs dialog box, specify the new location of the SQLAGENT.OUT file. 기본 위치는 C:\Program Files\Microsoft SQL Server\MSSQL<version>.<instance_name>\MSSQL\Log\입니다.The default location is C:\Program Files\Microsoft SQL Server\MSSQL<version>.<instance_name>\MSSQL\Log\.

데이터베이스 기본 위치 변경Change the database default location

  1. SQL Server Management Studio의 개체 탐색기에서 SQL Server 서비스를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.From SQL Server Management Studio, in Object Explorer, right-click the SQL Server server and click Properties.

  2. 서버 속성 대화 상자에서 데이터베이스 설정을 선택합니다.In the Server Properties dialog box, select Database Settings.

  3. 데이터베이스 기본 위치에서 데이터 및 로그 파일의 새 위치를 찾습니다.Under Database Default Locations, browse to the new location for both the data and log files.

  4. 변경을 완료하려면 SQL Server 서비스를 중지한 후 시작합니다.Stop and start the SQL Server service to complete the change.

Examples

1.A. tempdb 데이터베이스 이동Moving the tempdb database

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

참고

SQL ServerSQL Server 인스턴스를 시작할 때마다 tempdb가 다시 생성되므로 데이터와 로그 파일을 물리적으로 이동할 필요는 없습니다.Because tempdb is re-created each time the instance of SQL ServerSQL Server is started, you do not have to physically move the data and log files. 3단계에서 서비스를 다시 시작할 때 새 위치에 파일이 생성됩니다.The files are created in the new location when the service is restarted in step 3. 서비스를 다시 시작할 때까지는 tempdb에서 계속 기존 위치의 데이터와 로그 파일을 사용합니다.Until the service is restarted, tempdb continues to use the data and log files in existing location.

  1. tempdb 데이터베이스의 논리적 파일 이름 및 디스크에서의 현재 위치를 확인합니다.Determine the logical file names of the tempdb database and their current location on the disk.

    SELECT name, physical_name AS CurrentLocation  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb');  
    GO  
    
  2. ALTER DATABASE를 사용하여 각 파일의 위치를 변경합니다.Change the location of each file by using ALTER DATABASE.

    USE master;  
    GO  
    ALTER DATABASE tempdb   
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');  
    GO  
    ALTER DATABASE tempdb   
    MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');  
    GO  
    
  3. SQL ServerSQL Server인스턴스를 중지한 후 다시 시작합니다.Stop and restart the instance of SQL ServerSQL Server.

  4. 파일 변경 내용을 확인합니다.Verify the file change.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb');  
    
  5. 원래 위치에서 tempdb.mdftemplog.ldf 파일을 삭제합니다.Delete the tempdb.mdf and templog.ldf files from the original location.

참고 항목See Also

Resource 데이터베이스 Resource Database
tempdb 데이터베이스 tempdb Database
master 데이터베이스 master Database
msdb 데이터베이스 msdb Database
model 데이터베이스 model Database
사용자 데이터베이스 이동 Move User Databases
데이터베이스 파일 이동 Move Database Files
데이터베이스 엔진, SQL Server 에이전트 또는 SQL Server Browser 서비스 시작, 중지, 일시 중지, 재개 및 다시 시작 Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service
ALTER DATABASE(Transact-SQL) ALTER DATABASE (Transact-SQL)
시스템 데이터베이스 다시 작성Rebuild System Databases