Mover bases de datos del sistemaMove System Databases

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

En este tema se describe cómo mover bases de datos del sistema en SQL ServerSQL Server.This topic describes how to move system databases in SQL ServerSQL Server. Mover bases de datos del sistema puede resultar útil en las situaciones siguientes:Moving system databases may be useful in the following situations:

  • Recuperación de un error.Failure recovery. Por ejemplo, la base de datos se encuentra en modo sospechoso o se ha cerrado a causa de un error de hardware.For example, the database is in suspect mode or has shut down because of a hardware failure.

  • Reubicación planeada.Planned relocation.

  • Reubicación para el mantenimiento planeado del disco.Relocation for scheduled disk maintenance.

    Los siguientes procedimientos se aplican para mover archivos de base de datos dentro de una misma instancia de SQL ServerSQL Server.The following procedures apply to moving database files within the same instance of SQL ServerSQL Server. Para mover una base de datos a otra instancia de SQL ServerSQL Server o a otro servidor, use la operación copia de seguridad y restauración .To move a database to another instance of SQL ServerSQL Server or to another server, use the backup and restore operation.

    Los procedimientos descritos en este tema requieren el nombre lógico de los archivos de la base de datos.The procedures in this topic require the logical name of the database files. Para obtener el nombre, consulte la columna de nombre de la vista de catálogo sys.master_files .To obtain the name, query the name column in the sys.master_files catalog view.

Importante

Si se mueve una base de datos del sistema y posteriormente se vuelve a generar la base de datos maestra, se debe mover de nuevo la base de datos del sistema porque la operación de regeneración instala todas las bases de datos del sistema en su ubicación predeterminada.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

Después de mover los archivos, la cuenta del servicio de SQL ServerSQL Server debe tener permiso de acceso a los archivos en la nueva ubicación de la carpeta de archivos.After moving files, the SQL ServerSQL Server service account must have permission to access the files in new file folder location.

Procedimiento de reubicación planeada y mantenimiento de disco programado Planned Relocation and Scheduled Disk Maintenance Procedure

Para mover un archivo de registro o datos de bases de datos del sistema como parte de una operación de reubicación planeada o de mantenimiento programado, siga estos pasos.To move a system database data or log file as part of a planned relocation or scheduled maintenance operation, follow these steps. Este procedimiento se aplica a todas las bases de datos del sistema, excepto las bases de datos maestras y Resource.This procedure applies to all system databases except the master and Resource databases.

  1. Para cada archivo que se va a mover, ejecute la siguiente instrucción.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. Detenga la instancia de SQL ServerSQL Server o cierre el sistema para realizar el mantenimiento.Stop the instance of SQL ServerSQL Server or shut down the system to perform maintenance. Para más información, consulte Iniciar, detener, pausar, reanudar y reiniciar el motor de base de datos, Agente SQL Server o el Servicio SQL Server Browser.For more information, see Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service.

  3. Mueva el archivo o los archivos a la nueva ubicación.Move the file or files to the new location.

  4. Reinicie la instancia de SQL ServerSQL Server o el servidor.Restart the instance of SQL ServerSQL Server or the server. Para obtener más información, vea Iniciar, detener, pausar, reanudar y reiniciar el motor de base de datos, Agente SQL Server o el Servicio SQL Server Browser.For more information, see Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent, or SQL Server Browser Service.

  5. Compruebe el cambio de los archivos ejecutando la consulta siguiente.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>');  
    

    Si se mueve la base de datos msdb y se configura la instancia de SQL ServerSQL Server para Correo electrónico de base de datos, complete estos pasos adicionales.If the msdb database is moved and the instance of SQL ServerSQL Server is configured for Database Mail, complete these additional steps.

  6. Compruebe que Service BrokerService Broker se haya habilitado para la base de datos msdb; para ello, ejecute la siguiente consulta.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 obtener más información sobre cómo habilitar Service BrokerService Broker, vea ALTER DATABASE (Transact-SQL).For more information about enabling Service BrokerService Broker, see ALTER DATABASE (Transact-SQL).

  7. Envíe un mensaje de correo electrónico para comprobar que el Correo electrónico de base de datos funciona.Verify that Database Mail is working by sending a test mail.

Procedimiento de recuperación de errores Failure Recovery Procedure

Si se debe mover un archivo a causa de un error de hardware, siga los pasos que se indican a continuación para colocar el archivo en otra ubicación.If a file must be moved because of a hardware failure, follow these steps to relocate the file to a new location. Este procedimiento se aplica a todas las bases de datos del sistema, excepto las bases de datos maestras y Resource.This procedure applies to all system databases except the master and Resource databases.

Importante

Si no se puede iniciar la base de datos, es decir, si se encuentra en modo sospechoso o en un estado no recuperado, solo los miembros del rol fijo sysadmin podrán mover el archivo.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. Detenga la instancia de SQL ServerSQL Server si se inició.Stop the instance of SQL ServerSQL Server if it is started.

  2. Inicie la instancia de SQL ServerSQL Server en modo de recuperación solo de master especificando uno de los siguientes comandos en el símbolo del sistema.Start the instance of SQL ServerSQL Server in master-only recovery mode by entering one of the following commands at the command prompt. Los parámetros especificados en estos comandos distinguen entre mayúsculas y minúsculas.The parameters specified in these commands are case sensitive. Los comandos generan un error cuando los parámetros no se especifican como se indica.The commands fail when the parameters are not specified as shown.

  3. En cada uno de los archivos que se van a mover, use los comandos sqlcmd o SQL Server Management StudioSQL Server Management Studio para ejecutar la siguiente instrucción.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 obtener más información sobre cómo usar la utilidad sqlcmd , vea Usar la utilidad sqlcmd.For more information about using the sqlcmd utility, see Use the sqlcmd Utility.

  4. Salga de la utilidad sqlcmd o SQL Server Management StudioSQL Server Management Studio.Exit the sqlcmd utility or SQL Server Management StudioSQL Server Management Studio.

  5. Detenga la instancia de SQL ServerSQL Server.Stop the instance of SQL ServerSQL Server. Por ejemplo, ejecute NET STOP MSSQLSERVER.For example, run NET STOP MSSQLSERVER.

  6. Mueva el archivo o los archivos a la nueva ubicación.Move the file or files to the new location.

  7. Reinicie la instancia de SQL ServerSQL Server.Restart the instance of SQL ServerSQL Server. Por ejemplo, ejecute NET START MSSQLSERVER.For example, run NET START MSSQLSERVER.

  8. Compruebe el cambio de los archivos ejecutando la consulta siguiente.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>');  
    

Mover la base de datos maestra Moving the master Database

Para mover la base de datos maestra, siga estos pasos.To move the master database, follow these steps.

  1. Desde el menú Inicio , seleccione Todos los programas, Microsoft SQL Server 2005, Herramientas de configuracióny, finalmente, haga clic en Administrador de configuración de 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. En el nodo Servicios de SQL Server , haga clic con el botón derecho en la instancia de SQL ServerSQL Server (por ejemplo, SQL Server (MSSQLSERVER)) y elija Propiedades.In the SQL Server Services node, right-click the instance of SQL ServerSQL Server (for example, SQL Server (MSSQLSERVER)) and choose Properties.

  3. En el cuadro de diálogo Propiedades de (nombre_de_instancia) de SQL Server , haga clic en la pestaña Parámetros de inicio .In the SQL Server (instance_name) Properties dialog box, click the Startup Parameters tab.

  4. En el cuadro Parámetros existentes , seleccione el parámetro –d para mover el archivo de datos maestros.In the Existing parameters box, select the –d parameter to move the master data file. Haga clic en Actualizar para guardar el cambio.Click Update to save the change.

    En el cuadro Especifique un parámetro de inicio , cambie el parámetro a la nueva ruta de acceso de la base de datos maestra.In the Specify a startup parameter box, change the parameter to the new path of the master database.

  5. En el cuadro Parámetros existentes , seleccione el parámetro –l para mover el archivo de registro maestro.In the Existing parameters box, select the –l parameter to move the master log file. Haga clic en Actualizar para guardar el cambio.Click Update to save the change.

    En el cuadro Especifique un parámetro de inicio , cambie el parámetro a la nueva ruta de acceso de la base de datos maestra.In the Specify a startup parameter box, change the parameter to the new path of the master database.

    El valor de parámetro del archivo de datos debe ir a continuación del parámetro -d y el valor del archivo de registro debe ir a continuación del 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. En el siguiente ejemplo se muestran los valores de los parámetros para la ubicación predeterminada del archivo de datos maestros.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

    Si la reubicación planeada para el archivo de datos maestros es E:\SQLData, los valores de parámetros se cambiarán de la siguiente manera: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. Para detener la instancia de SQL ServerSQL Server , haga clic con el botón derecho en el nombre de la instancia y elija Detener.Stop the instance of SQL ServerSQL Server by right-clicking the instance name and choosing Stop.

  7. Mueva los archivos master.mdf y mastlog.ldf a la nueva ubicación.Move the master.mdf and mastlog.ldf files to the new location.

  8. Reinicie la instancia de SQL ServerSQL Server.Restart the instance of SQL ServerSQL Server.

  9. Compruebe el cambio de archivo de la base de datos maestra ejecutando la siguiente consulta.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. En este punto, SQL Server se debería ejecutar con normalidad.At this point SQL Server should run normally. Sin embargo, Microsoft también recomienda ajustar la entrada del Registro en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance_ID\Setup, donde instance_ID es similar a 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. En ese subárbol, cambie el valor de SQLDataRoot a la ruta de acceso nuevo.In that hive, change the SQLDataRoot value to the new path. Si no actualiza el Registro, puede que la aplicación de revisiones y las actualizaciones presenten errores.Failure to update the registry can cause patching and upgrading to fail.

Mover la base de datos Resource Moving the Resource Database

La ubicación de la base de datos Resource es <unidad>:\Archivos de programa\Microsoft SQL Server\MSSQL<versión>.<nombreDeInstancia>\MSSQL\Binn\.The location of the Resource database is <drive>:\Program Files\Microsoft SQL Server\MSSQL<version>.<instance_name>\MSSQL\Binn\. No se puede mover la base de datos.The database cannot be moved.

Seguimiento: después de mover todas las bases de datos del sistema Follow-up: After Moving All System Databases

Si ha movido todas las bases de datos del sistema a una nueva unidad o volumen o a otro servidor con una letra de unidad diferente, realice las actualizaciones siguientes.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.

  • Cambie la ruta de acceso del registro del Agente SQL Server.Change the SQL Server Agent log path. Si no actualiza esta ruta de acceso, el Agente SQL Server no se podrá iniciar.If you do not update this path, SQL Server Agent will fail to start.

  • Cambie la ubicación predeterminada de la base de datos.Change the database default location. Si la letra de unidad y la ruta de acceso especificada como ubicación predeterminada no existen, es posible que no se pueda crear una nueva base de datos.Creating a new database may fail if the drive letter and path specified as the default location do not exist.

Cambiar la ruta de acceso del registro del Agente SQL ServerChange the SQL Server Agent Log Path

  1. En SQL Server Management Studio, en el Explorador de objetos, expanda Agente SQL Server.From SQL Server Management Studio, in Object Explorer, expand SQL Server Agent.

  2. Haga clic con el botón derecho en Registros de errores y haga clic en Configurar.Right-click Error Logs and click Configure.

  3. En el cuadro de diálogo Configurar registros de errores del Agente SQL Server , especifique la nueva ubicación del archivo SQLAGENT.OUT.In the Configure SQL Server Agent Error Logs dialog box, specify the new location of the SQLAGENT.OUT file. La ubicación predeterminada es C:\Archivos de programa\Microsoft SQL Server\MSSQL<versión>.\MSSQL\Log\.The default location is C:\Program Files\Microsoft SQL Server\MSSQL<version>.\MSSQL\Log\.

Cambiar la ubicación predeterminada de la base de datosChange the database default location

  1. En SQL Server Management Studio, en el Explorador de objetos, haga clic con el botón derecho en el servidor de SQL Server y, después, haga clic en Propiedades.From SQL Server Management Studio, in Object Explorer, right-click the SQL Server server and click Properties.

  2. En el cuadro de diálogo Propiedades del servidor , seleccione Configuración de base de datos.In the Server Properties dialog box, select Database Settings.

  3. En Ubicaciones predeterminadas de la base de datos, busque la nueva ubicación de los archivos de registro y datos.Under Database Default Locations, browse to the new location for both the data and log files.

  4. Detenga e inicie el servicio SQL Server para completar el cambio.Stop and start the SQL Server service to complete the change.

Ejemplos Examples

A.A. Mover la base de datos tempdbMoving the tempdb database

En el ejemplo siguiente se mueven los archivos de datos y registro de tempdb a una nueva ubicación como parte de una reubicación planeada.The following example moves the tempdb data and log files to a new location as part of a planned relocation.

Nota

Puesto que tempdb se vuelve a crear cada vez que se inicia la instancia de SQL ServerSQL Server , no hay que mover físicamente los archivos de datos y registro.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. Los archivos se crean en la ubicación nueva cuando se reinicia el servicio en el paso 3.The files are created in the new location when the service is restarted in step 3. Hasta que se reinicie el servicio, tempdb continúa utilizando los archivos de datos y de registro de la ubicación existente.Until the service is restarted, tempdb continues to use the data and log files in existing location.

  1. Determine los nombres de los archivos lógicos de la base de datos tempdb y su ubicación actual en el 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. Cambie la ubicación de cada archivo con 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. Detenga y reinicie la instancia de SQL ServerSQL Server.Stop and restart the instance of SQL ServerSQL Server.

  4. Compruebe el cambio de los archivos.Verify the file change.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb');  
    
  5. Elimine los archivos tempdb.mdf y templog.ldf de la ubicación original.Delete the tempdb.mdf and templog.ldf files from the original location.

Vea tambiénSee Also

Base de datos Resource Resource Database
Base de datos tempdb tempdb Database
Base de datos maestra master Database
Base de datos msdb msdb Database
Base de datos model model Database
Mover bases de datos de usuario Move User Databases
Mover archivos de base de datos Move Database Files
Iniciar, detener, pausar, reanudar y reiniciar el motor de base de datos, Agente SQL Server o el Servicio 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)
Volver a generar bases de datos del sistema Rebuild System Databases