Mover bancos de dados do sistemaMove System Databases

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Este tópico descreve como mover bancos de dados do sistema no SQL ServerSQL Server.This topic describes how to move system databases in SQL ServerSQL Server. Mover bancos de dados do sistema pode ser útil nas seguintes situações:Moving system databases may be useful in the following situations:

  • Recuperação de falha.Failure recovery. Por exemplo, o banco de dados está em modo de suspeição ou foi desligado devido a uma falha de hardware.For example, the database is in suspect mode or has shut down because of a hardware failure.

  • Realocação planejada.Planned relocation.

  • Realocação para manutenção de disco programada.Relocation for scheduled disk maintenance.

Os procedimentos a seguir se aplicam para mover arquivos de banco de dados dentro da mesma instância do SQL ServerSQL Server.The following procedures apply to moving database files within the same instance of SQL ServerSQL Server. Para mover um banco de dados para outra instância do SQL ServerSQL Server ou para outro servidor, use as operações de backup e restauração .To move a database to another instance of SQL ServerSQL Server or to another server, use the backup and restore operation.

Os procedimentos neste tópico exigem o nome lógico dos arquivos de banco de dados.The procedures in this topic require the logical name of the database files. Para obter o nome, consulte a coluna de nome na exibição de catálogo sys.master_files.To obtain the name, query the name column in the sys.master_files catalog view.

Importante

Se você mover um banco de dados do sistema e, posteriormente, recriar o banco de dados mestre, será necessário mover o banco de dados do sistema novamente porque a operação de recriação instala todos os bancos de dados do sistema em seus locais padrão.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.

Importante

Após a movimentação dos arquivos, a conta de serviço do SQL ServerSQL Server deve ter permissão para acessar os arquivos no novo local de pasta do arquivo.After moving files, the SQL ServerSQL Server service account must have permission to access the files in new file folder location.

Realocação planejada e procedimento de manutenção de disco agendadoPlanned Relocation and Scheduled Disk Maintenance Procedure

Para mover um arquivo de dados de um banco de dados do sistema ou arquivo de log como parte de uma realocação planejada ou operação de manutenção, execute as etapas a seguir.To move a system database data or log file as part of a planned relocation or scheduled maintenance operation, follow these steps. Este procedimento se aplica a todos os bancos de dados do sistema exceto os bancos de dados mestre e Recurso.This procedure applies to all system databases except the master and Resource databases.

  1. Para cada arquivo a ser movido, execute a seguinte instrução.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. Pare a instância do SQL ServerSQL Server ou desligue o sistema para realizar a manutenção.Stop the instance of SQL ServerSQL Server or shut down the system to perform maintenance. Para obter mais informações, consulte Iniciar, parar, pausar, retomar e reiniciar os serviços SQL Server.For more information, see Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service.

  3. Mova o arquivo ou os arquivos para o novo local.Move the file or files to the new location.

  4. Reinicialize a instância do SQL ServerSQL Server ou o servidor.Restart the instance of SQL ServerSQL Server or the server. Para obter mais informações, consulte Iniciar, parar, pausar, retomar e reiniciar os serviços SQL Server.For more information, see Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service.

  5. Execute a consulta a seguir para verificar se houve alteração no arquivo.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>');  
    

Se o banco de dados msdb for movido e a instância do SQL ServerSQL Server estiver configurada para Database Mail, execute estas etapas adicionais.If the msdb database is moved and the instance of SQL ServerSQL Server is configured for Database Mail, complete these additional steps.

  1. Verifique se o Service BrokerService Broker está habilitado para o banco de dados msdb executando a consulta a seguir.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';  
    

    Para obter mais informações sobre como habilitar o Service BrokerService Broker, veja ALTER DATABASE (Transact-SQL).For more information about enabling Service BrokerService Broker, see ALTER DATABASE (Transact-SQL).

  2. Verifique se o Database Mail está funcionando, enviando um email de teste.Verify that Database Mail is working by sending a test mail.

Falha no procedimento de recuperaçãoFailure Recovery Procedure

Se um arquivo tiver de ser movido devido à falha de um hardware, siga estas etapas para realocar o arquivo para o novo local.If a file must be moved because of a hardware failure, follow these steps to relocate the file to a new location. Este procedimento se aplica a todos os bancos de dados do sistema exceto os bancos de dados mestre e Recurso.This procedure applies to all system databases except the master and Resource databases.

Importante

Se o banco de dados não puder ser inicializado, significa que ele está em modo de suspeição ou em estado não recuperado, e apenas os membros de função fixa sysadmin podem mover o arquivo.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. Interrompa a instância do SQL ServerSQL Server , se tiver sido iniciado.Stop the instance of SQL ServerSQL Server if it is started.

  2. Inicie a instância do SQL ServerSQL Server no modo somente recuperação mestre, inserindo um dos seguintes comandos no prompt de comando.Start the instance of SQL ServerSQL Server in master-only recovery mode by entering one of the following commands at the command prompt. Os parâmetros especificados nestes comandos diferenciam maiúsculas e minúsculas.The parameters specified in these commands are case sensitive. Os comandos falham quando os parâmetros não são especificados como demonstrado.The commands fail when the parameters are not specified as shown.

    • Para a instância padrão (MSSQLSERVER), execute o seguinte comando:For the default (MSSQLSERVER) instance, run the following command:

      NET START MSSQLSERVER /f /T3608
      
    • Para uma instância nomeada, execute o seguinte comando:For a named instance, run the following command:

      NET START MSSQL$instancename /f /T3608
      

    Para obter mais informações, consulte Iniciar, parar, pausar, retomar e reiniciar os serviços SQL Server.For more information, see Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service.

  3. Para cada arquivo a ser movido, use comandos sqlcmd ou SQL Server Management StudioSQL Server Management Studio para executar a instrução a seguir.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' )  
    

    Para obter mais informações sobre como usar o utilitário sqlcmd , veja Usar o Utilitário sqlcmd.For more information about using the sqlcmd utility, see Use the sqlcmd Utility.

  4. Saia do utilitário sqlcmd ou SQL Server Management StudioSQL Server Management Studio.Exit the sqlcmd utility or SQL Server Management StudioSQL Server Management Studio.

  5. Pare a instância do SQL ServerSQL Server.Stop the instance of SQL ServerSQL Server. Por exemplo, execute NET STOP MSSQLSERVER.For example, run NET STOP MSSQLSERVER.

  6. Mova o arquivo ou os arquivos para o novo local.Move the file or files to the new location.

  7. Reinicie a instância do SQL ServerSQL Server.Restart the instance of SQL ServerSQL Server. Por exemplo, execute NET START MSSQLSERVER.For example, run NET START MSSQLSERVER.

  8. Execute a consulta a seguir para verificar se houve alteração no arquivo.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>');  
    

Movendo o banco de dados mestreMoving the master Database

Para mover o banco de dados mestre, siga estas etapas.To move the master database, follow these steps.

  1. Pelo menu Iniciar , aponte para Todos os Programas, aponte para Microsoft SQL Server, aponte para Ferramentas de Configuraçãoe clique em SQL Server Configuration Manager.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. No nó Serviços do SQL Server , clique com o botão direito do mouse na instância do SQL ServerSQL Server (por exemplo, SQL Server [MSSQLSERVER] ) e escolha Propriedades.In the SQL Server Services node, right-click the instance of SQL ServerSQL Server (for example, SQL Server (MSSQLSERVER)) and choose Properties.

  3. Na caixa de diálogo Propriedades do SQL Server ( nome_instância ) , clique na guia Parâmetros de Inicialização .In the SQL Server (instance_name) Properties dialog box, click the Startup Parameters tab.

  4. Na caixa Parâmetros existentes, selecione o parâmetro -d para mover o arquivo de dados mestre.In the Existing parameters box, select the -d parameter to move the master data file. Clique em Atualizar para salvar a alteração.Click Update to save the change.

    Na caixa Especificar um parâmetro de inicialização , altere o parâmetro para o novo caminho do banco de dados mestre.In the Specify a startup parameter box, change the parameter to the new path of the master database.

  5. Na caixa Parâmetros existentes, selecione o parâmetro -l para mover o arquivo de log mestre.In the Existing parameters box, select the -l parameter to move the master log file. Clique em Atualizar para salvar a alteração.Click Update to save the change.

    Na caixa Especificar um parâmetro de inicialização , altere o parâmetro para o novo caminho do banco de dados mestre.In the Specify a startup parameter box, change the parameter to the new path of the master database.

    O valor do parâmetro para o arquivo de dados deve seguir o parâmetro -d e o valor para o arquivo de log deve seguir o parâmetro -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. O exemplo a seguir mostra os valores de parâmetro da localização padrão do arquivo de dados mestre.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

    Se a realocação planejada para o arquivo de dados mestre for E:\SQLData, os valores de parâmetros serão alterados da seguinte maneira: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. Interrompa a instância do SQL ServerSQL Server clicando com o botão direito do mouse no nome da instância e escolhendo Interromper.Stop the instance of SQL ServerSQL Server by right-clicking the instance name and choosing Stop.

  7. Mova os arquivos do master.mdf e mastlog.ldf para o local novo.Move the master.mdf and mastlog.ldf files to the new location.

  8. Reinicie a instância do SQL ServerSQL Server.Restart the instance of SQL ServerSQL Server.

  9. Verifique a alteração do arquivo para o banco de dados mestre executando a consulta a seguir.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. Neste ponto, o SQL Server deverá ser executado normalmente.At this point SQL Server should run normally. Porém, a Microsoft também recomenda ajustar a entrada do Registro em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance_ID\Setup, em que instance_ID é como MSSQL13.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. Neste Hive, altere o valor SQLDataRoot para o novo caminho.In that hive, change the SQLDataRoot value to the new path. Uma falha em atualizar o Registro poderá causar falha na atualização e aplicação de patch.Failure to update the registry can cause patching and upgrading to fail.

Movendo o banco de dados de recursosMoving the Resource Database

A localização do banco de dados Resource é <drive>:\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\. O banco de dados não pode ser movido.The database cannot be moved.

Acompanhamento: depois de mover todos os bancos de dados do sistemaFollow-up: After Moving All System Databases

Se você moveu todos os bancos de dados do sistema para uma nova unidade ou volume ou para outro servidor com uma letra de unidade diferente, faça as atualizações a seguir.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.

  • Altere o caminho do log do SQL Server Agent.Change the SQL Server Agent log path. Se você não atualizar este caminho, o SQL Server Agent não iniciará.If you do not update this path, SQL Server Agent will fail to start.

  • Altere o local padrão do banco de dados.Change the database default location. Criar um novo banco de dados pode falhar se a letra da unidade e do caminho especificados como a localização padrão não existir.Creating a new database may fail if the drive letter and path specified as the default location do not exist.

Altere o caminho do log do SQL Server Agent.Change the SQL Server Agent Log Path

  1. No SQL Server Management Studio, em Pesquisador de Objetos, expanda SQL Server Agent.From SQL Server Management Studio, in Object Explorer, expand SQL Server Agent.

  2. Clique com o botão direito do mouse em Logs de Erros e clique em Configurar.Right-click Error Logs and click Configure.

  3. Na caixa de diálogo Configurar Logs de Erros do SQL Server Agent , especifique o novo local do arquivo SQLAGENT.OUT.In the Configure SQL Server Agent Error Logs dialog box, specify the new location of the SQLAGENT.OUT file. A localização padrão é 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\.

Altere o local padrão do banco de dadosChange the database default location

  1. No SQL Server Management Studio, em Pesquisador de Objetos, clique com o botão direito do mouse no servidor do SQL Server e clique em Propriedades.From SQL Server Management Studio, in Object Explorer, right-click the SQL Server server and click Properties.

  2. Na caixa de diálogo Propriedades do Servidor da caixa de diálogo, selecione Configurações de Banco de Dados.In the Server Properties dialog box, select Database Settings.

  3. Em Locais padrão de banco de dados, navegue até o novo local para os arquivos de dados e log.Under Database Default Locations, browse to the new location for both the data and log files.

  4. Pare e inicie o serviço do SQL Server para concluir a alteração.Stop and start the SQL Server service to complete the change.

ExemplosExamples

A.A. Movendo o banco de dados tempdbMoving the tempdb database

O seguinte exemplo move os arquivos de log e de dados tempdb para um novo local como parte de uma realocação planejada.The following example moves the tempdb data and log files to a new location as part of a planned relocation.

Observação

Como o tempdb é recriado a cada vez que a instância do SQL ServerSQL Server é iniciada, você não precisa mover fisicamente os arquivos de log e de dados.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. Os arquivos são criados no local novo quando o serviço é reiniciado na etapa 3.The files are created in the new location when the service is restarted in step 3. Até que o serviço seja reiniciado, o tempdb continua usando os arquivos de dados e de log no local existente.Until the service is restarted, tempdb continues to use the data and log files in existing location.

  1. Determine os nomes de arquivo lógicos do banco de dados tempdb e o seu local atual no disco.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. Altere o local de cada arquivo usando 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. Pare e reinicie a instância do SQL ServerSQL Server.Stop and restart the instance of SQL ServerSQL Server.

  4. Verifique a alteração do arquivo.Verify the file change.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb');  
    
  5. Exclua os arquivos tempdb.mdf e templog.ldf do local original.Delete the tempdb.mdf and templog.ldf files from the original location.

Consulte TambémSee Also

Banco de dados de recursos Resource Database
Banco de dados tempdb tempdb Database
Banco de dados mestre master Database
Banco de dados msdb msdb Database
Banco de dados modelo model Database
Mover bancos de dados de usuário Move User Databases
Mover arquivos de banco de dados Move Database Files
Iniciar, parar, pausar, retomar, reiniciar o mecanismo de banco de dados, o SQL Server Agent ou o serviço 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)
Recompilar bancos de dados do sistemaRebuild System Databases