Volver a generar bases de datos del sistema

Las bases de datos del sistema deben volver a generarse para corregir problemas por daños en las bases de datos maestra, modelo, msdb o de recursos, o para modificar la intercalación de nivel de servidor predeterminada. En este tema se ofrecen instrucciones paso a paso para volver a generar las bases de datos del sistema en SQL Server 2012.

En este tema

  • Antes de empezar:

    Limitaciones y restricciones

    Requisitos previos

  • Procedimientos:  

    Volver a generar bases de datos del sistema

    Volver a generar la base de datos de recursos

    Crear una base de datos msdb

  • Seguimiento:  

    Solucionar errores de recompilación

Antes de empezar

Limitaciones y restricciones

Cuando se vuelven a generar las bases de datos master, model, msdb y tempdb del sistema, las bases de datos se quitan y se vuelven a crear en su ubicación original. Si se especifica una nueva intercalación en la instrucción para volver a generar las bases de datos del sistema, estas se crearán con esa configuración de intercalación. Se perderán las modificaciones que los usuarios hayan realizado en esas bases de datos. Por ejemplo, es posible que haya objetos definidos por los usuarios en la base de datos master, trabajos programados en msdb o cambios en la configuración de la base de datos predeterminada model.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Requisitos previos

Realice las tareas siguientes antes de volver a generar las bases de datos del sistema para asegurarse de que puede restaurar la configuración actual de las mismas.

  1. Registre todos los valores de configuración del servidor.

    SELECT * FROM sys.configurations;
    
  2. Registre todos los Service Pack y todas las revisiones que se hayan aplicado a la instancia de SQL Server y la intercalación actual. Deberá aplicar estas actualizaciones de nuevo después de volver a generar las bases de datos del sistema.

    SELECT
    SERVERPROPERTY('ProductVersion ') AS ProductVersion,
    SERVERPROPERTY('ProductLevel') AS ProductLevel,
    SERVERPROPERTY('ResourceVersion') AS ResourceVersion,
    SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime,
    SERVERPROPERTY('Collation') AS Collation;
    
  3. Registre la ubicación actual de todos los archivos de registro y datos de las bases de datos del sistema. Al volver a generar las bases de datos del sistema, todas ellas se instalan en su ubicación original. Si ha movido los archivos de registro o datos de las bases de datos del sistema a otra ubicación, deberá volver a moverlos.

    SELECT name, physical_name AS current_file_location
    FROM sys.master_files
    WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));
    
  4. Busque la copia de seguridad actual de las bases de datos master, model y msdb.

  5. Si la instancia de SQL Server se configura como Distribuidor de replicación, busque la copia de seguridad actual de la base de datos de distribución.

  6. Asegúrese de que tiene los permisos adecuados para volver a generar las bases de datos del sistema. Para realizar esta operación, debe ser miembro del rol fijo de servidor sysadmin. Para obtener más información, vea Roles de nivel de servidor.

  7. Compruebe que haya copias de los archivos de plantilla de registro y datos de las bases de datos master, model y msdb en el servidor local. La ubicación predeterminada de los archivos de plantilla es C:\Archivos de programa\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\Templates. Estos archivos se usan durante el proceso de volver a generar las bases de datos y deben estar presentes para que la instalación se realice correctamente. Si no lo están, ejecute la característica de reparación del programa de instalación o copie los archivos manualmente desde el disco de instalación. Para encontrar los archivos en el soporte físico de instalación, navegue hasta el directorio de la plataforma correcta (x86 o x64) y, a continuación, navegue hasta setup\sql_engine_core_inst_msi\Pfiles\SqlServr\MSSQL.X\MSSQL\Binn\Templates.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Volver a generar bases de datos del sistema

El procedimiento siguiente vuelve a generar las bases de datos del sistema master, model, msdb y tempdb. No se pueden especificar las bases de datos del sistema que se van a volver a generar. En el caso de las instancias en clúster, este procedimiento se debe realizar en el nodo activo y desconectar el recurso de SQL Server del grupo de aplicaciones en clúster antes de realizar el procedimiento.

Este procedimiento no vuelve a generar la base de datos resource. Vea la sección "Procedimiento para volver a generar la base de datos de recursos" más adelante en este mismo tema.

Para volver a generar las bases de datos del sistema para una instancia de SQL Server:

  1. Inserte el disco de instalación de SQL Server 2012 en la unidad de disco o, en el símbolo del sistema, cambie el directorio a la ubicación del servidor local donde se encuentra el archivo setup.exe. La ubicación predeterminada en el servidor es C:\Archivos de programa\Microsoft SQL Server\110\Setup Bootstrap\Release.

  2. En una ventana del símbolo del sistema, escriba el siguiente comando. Los parámetros entre corchetes son opcionales. No escriba los corchetes. Cuando se usa el sistema operativo Windows Vista con Control de cuentas de usuario (UAC) habilitado, para ejecutar el programa de instalación se requieren privilegios elevados. El símbolo del sistema se debe ejecutar como Administrador.

    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=nombreDeInstancia /SQLSYSADMINACCOUNTS=cuentas [ /SAPWD=contraseñaSegura ] [ /SQLCOLLATION=nombreDeIntercalación]

    Nombre del parámetro

    Descripción

    /QUIET o /Q

    Especifica que el programa de instalación se ejecute sin ninguna interfaz de usuario.

    /ACTION=REBUILDDATABASE

    Especifica que el programa de instalación vuelva a crear las bases de datos del sistema.

    /INSTANCENAME=InstanceName

    Es el nombre de la instancia de SQL Server. Para la instancia predeterminada, escriba MSSQLSERVER.

    /SQLSYSADMINACCOUNTS=accounts

    Especifica las cuentas individuales o de grupos de Windows que se agregarán al rol fijo de servidor sysadmin. Si especifica varias cuentas, sepárelas con un espacio en blanco. Escriba, por ejemplo, BUILTIN\Administrators MiDominio\MiUsuario. Cuando está especificando una cuenta que contiene un espacio en blanco dentro del nombre, agregue la cuenta entre comillas tipográficas. Por ejemplo, escriba NT AUTHORITY\SYSTEM.

    [ /SAPWD=StrongPassword ]

    Especifica la contraseña de la cuenta SQL Server sa. Este parámetro es obligatorio si la instancia usa el modo Autenticación mixta (autenticación de SQL Server y de Windows).

    Nota de seguridadNota de seguridad

    La cuenta sa es una cuenta conocida de SQL Server y suele ser el objetivo de usuarios malintencionados. Es muy importante que use una contraseña segura en el inicio de sesión de sa.

    No especifique este parámetro para el modo Autenticación de Windows.

    [ /SQLCOLLATION=CollationName ]

    Especifica una nueva intercalación de nivel de servidor. Este parámetro es opcional. Cuando no se especifica, se usa la intercalación actual del servidor.

    Nota importanteImportante

    Al cambiar la intercalación de nivel de servidor no se cambia la de las bases de datos de usuario existentes. Todas las bases de datos de usuario nuevas usarán la nueva intercalación de manera predeterminada.

    Para obtener más información, vea Configurar o cambiar la intercalación del servidor.

  3. Una vez completada la regeneración de las bases de datos del sistema, el programa de instalación regresa al símbolo del sistema sin mostrar ningún mensaje. Examine el archivo de registro Summary.txt para comprobar que el proceso se completó correctamente. Este archivo se encuentra en C:\Archivos de programa\Microsoft SQL Server\110\Setup Bootstrap\Logs.

Tareas posteriores al proceso de volver a generar bases de datos

Después de volver a generar la base de datos, quizás deba realizar las tareas adicionales siguientes:

  • Restaurar las copias de seguridad completas más recientes de las bases de datos master, model y msdb. Para obtener más información, vea Realizar copias de seguridad y restaurar bases de datos del sistema (SQL Server).

    Nota importanteImportante

    Si ha cambiado la intercalación del servidor, no restaure las bases de datos del sistema. Si lo hace, reemplazará la nueva intercalación por la antigua.

    Si no dispone de una copia de seguridad o si la copia de seguridad restaurada no es actual, vuelva a crear las entradas que no se encuentren. Por ejemplo, vuelva a crear todas las entradas que no se encuentren de las bases de datos de usuario, los dispositivos de copia de seguridad, los inicios de sesión de SQL Server, los extremos, etc. La mejor forma de volver a crear las entradas es ejecutar los scripts originales que se usaron para crearlas.

Nota de seguridadNota de seguridad

Se recomienda proteger los scripts para evitar que los modifiquen personas no autorizadas.

  • Si la instancia de SQL Server se configura como Distribuidor de replicación, debe restaurar la base de datos de distribución. Para obtener más información, vea Hacer copias de seguridad y restaurar bases de datos replicadas.

  • Mover las bases de datos del sistema a las ubicaciones registradas anteriormente. Para obtener más información, vea Mover bases de datos del sistema.

  • Comprobar que los valores de configuración de todo el servidor coinciden con los valores registrados anteriormente.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Volver a generar la base de datos de recursos

El siguiente procedimiento vuelve a generar la base de datos resource del sistema. Cuando se vuelve a generar la base de datos resource, se pierden todos los Service Pack y las revisiones y, por lo tanto, se deben volver a aplicar.

Para volver a generar la base de datos de recursos:

  1. Inicie el programa de instalación de SQL Server 2012 (setup.exe) desde los discos de distribución.

  2. En el área de navegación izquierda, haga clic en Mantenimiento y, a continuación, en Reparar.

  3. Las rutinas de archivo y de reglas auxiliares del programa de instalación se ejecutan para asegurarse de que el sistema tiene instalados los requisitos previos y que el equipo supera las reglas de validación del programa de instalación. Haga clic en Aceptar o en Instalar para continuar.

  4. En la página Seleccionar instancia, seleccione la instancia que desea reparar y, a continuación, haga clic en Siguiente.

  5. Las reglas de reparación se ejecutarán para validar la operación. Para continuar, haga clic en Siguiente.

  6. En la página Listo para reparar, haga clic en Reparar. La página Operación completada indica que la operación ha finalizado.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Crear una base de datos msdb

Si la base de datos msdb se daña y no tiene una copia de seguridad de la base de datos msdb, puede crear una nueva msdb con el script instmsdb.

Nota de advertenciaAdvertencia

Al recompilar la base de datos msdb con el script instmsdb, eliminará toda la información almacenada en msdb como los trabajos, las alertas, los operadores, los planes de mantenimiento, el historial de copia de seguridad, la configuración de la administración basada en directivas, Correo electrónico de base de datos, Almacenamiento de datos de rendimiento, etc.

  1. Detenga todos los servicios que se conectan al Motor de base de datos, incluido el Agente SQL Server, SSRS, SSIS y todas las aplicaciones que usan SQL Server como almacén de datos.

  2. Inicie SQL Server desde la línea de comandos usando el comando: NET START MSSQLSERVER /T3608

    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.

  3. En otra ventana de la línea de comandos, separe la base de datos msdb ejecutando el siguiente comando, reemplazando <servername> con la instancia de SQL Server: SQLCMD -E -S<servername> -dmaster -Q"EXEC sp_detach_db msdb"

  4. Con el Explorador de Windows, cambie el nombre de los archivos de la base de datos msdb. De forma predeterminada, están en la subcarpeta DATA de la instancia de SQL Server.

  5. Con el Administrador de configuración de SQL Server, detenga y reinicie el servicio Motor de base de datos de la forma normal.

  6. En una ventana de la línea de comandos, conéctese a SQL Server y ejecute el comando: SQLCMD -E -S<servername> -i"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Install\instmsdb.sql" -o" C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Install\instmsdb.out"

    Reemplace <servername> con la instancia del Motor de base de datos. Use la ruta de acceso al sistema de archivos de la instancia de SQL Server.

  7. Con el Bloc de notas de Windows, abra el archivo instmsdb.out y compruebe si hay errores en la salida.

  8. Vuelva a aplicar todos los Service Pack y todas las revisiones instaladas en la instancia.

  9. Vuelva a crear el contenido de usuario almacenado en la base de datos msdb, como los trabajos, la alerta, etc.

  10. Haga una copia de seguridad de la base de datos msdb.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Solucionar errores de recompilación

Los errores de sintaxis y otros errores en tiempo de ejecución se muestran en la ventana del símbolo del sistema. Examine la instrucción de instalación en busca de los siguientes errores de sintaxis:

  • La barra diagonal (/) no aparece delante de los nombres de los parámetros.

  • Se ha omitido el signo de igualdad (=) entre el nombre del parámetro y su valor.

  • Hay espacios en blanco entre el nombre del parámetro y el signo igual.

  • Presencia de comas (,) u otros caracteres que no se especifican en la sintaxis.

Cuando se haya completado el proceso de volver a generar la base de datos, examine los registros de SQL Server en busca de errores. De manera predeterminada, están en C:\Archivos de programa\Microsoft SQL Server\110\Setup Bootstrap\Logs. Para encontrar el archivo de registro que contiene los resultados del proceso de volver a generar bases de datos, cambie el directorio a la carpeta Logs en un símbolo del sistema y, a continuación, ejecute findstr /s RebuildDatabase summary*.*. Esta búsqueda indicará los archivos de registro que contengan los resultados del proceso de volver a generar las bases de datos del sistema. Abra los archivos de registro y examine si contienen mensajes de error relevantes.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Vea también

Conceptos

Bases de datos del sistema