Compartir a través de


Volver a generar bases de datos del sistema

Las bases de datos del sistema se deben volver a compilar para corregir problemas de daños en las bases de datos maestras, modelo, msdb o sistema de recursos , o para modificar la intercalación predeterminada de nivel de servidor. En este tema se proporcionan instrucciones paso a paso para recompilar bases de datos del sistema en SQL Server 2014.

En este tema

Antes de empezar

Limitaciones y restricciones

Cuando se vuelven a generar las bases de datos del sistema maestro, modelo, msdb y tempdb, 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 rebuild, las bases de datos del sistema se crean con esa configuración de intercalación. Se pierden las modificaciones del usuario en estas bases de datos. Por ejemplo, puede tener objetos definidos por el usuario en la base de datos maestra, trabajos programados en msdb o cambios en la configuración predeterminada de la base de datos del modelo.

Prerrequisitos

Realice las siguientes tareas antes de recompilar las bases de datos del sistema para asegurarse de que puede restaurar las bases de datos del sistema a su configuración actual.

  1. Registre todos los valores de configuración de todo el servidor.

    SELECT * FROM sys.configurations;  
    
  2. Registre todos los paquetes de servicio y actualizaciones aplicados a la instancia de SQL Server y a la configuración de intercalación actual. Debe volver a aplicar estas actualizaciones 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 datos y de registro de las bases de datos del sistema. La regeneración de las bases de datos del sistema instala todas las bases de datos del sistema en su ubicación original. Si ha movido archivos de registro o datos de base de datos del sistema a otra ubicación, debe volver a mover los archivos.

    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 maestra, modelo y msdb.

  5. Si la instancia de SQL Server está configurada 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 recompilar las bases de datos del sistema. Para realizar esta operación, debe ser miembro del sysadmin rol fijo de servidor. Para obtener más información, consulte Server-Level Roles.

  7. Compruebe que existen copias de los archivos maestros, modelo, datos de msdb y plantilla de registro en el servidor local. La ubicación predeterminada de los archivos de plantilla es C:\Archivos de programa\Microsoft SQL Server\MSSQL12. MSSQLSERVER\MSSQL\Binn\Templates. Estos archivos se usan durante el proceso de recompilación y deben estar presentes para que la instalación se realice correctamente. Si faltan, ejecute la característica Reparar del programa de instalación o copie manualmente los archivos de los medios de instalación. Para buscar los archivos en el medio de instalación, vaya al directorio de plataforma adecuado (x86 o x64) y, a continuación, vaya a setup\sql_engine_core_inst_msi\Pfiles\SqlServr\MSSQL. X\MSSQL\Binn\Templates.

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 compilar. En el caso de las instancias en clúster, este procedimiento debe realizarse en el nodo activo y el recurso de SQL Server del grupo de aplicaciones de clúster correspondiente debe desconectarse antes de realizar el procedimiento.

Este procedimiento no reconstruye la base de datos de recursos. Consulte la sección "Reconstruir el procedimiento de base de datos del recurso" más adelante en este tema.

Para recompilar las bases de datos del sistema para una instancia de SQL Server:

  1. Inserte el medio de instalación de SQL Server 2014 en la unidad de disco o, desde un símbolo del sistema, cambie los directorios a la ubicación del archivo setup.exe en el servidor local. La ubicación predeterminada en el servidor es C:\Archivos de programa\Microsoft SQL Server\120\Setup Bootstrap\Release.

  2. En una ventana de comandos, escriba el siguiente comando. Los corchetes se usan para indicar parámetros opcionales. No introduzca los corchetes. Cuando se usa un sistema operativo Windows que tiene habilitado el Control de cuentas de usuario (UAC), la ejecución del programa de instalación requiere privilegios elevados. El símbolo del sistema debe ejecutarse con privilegios de administrador.

    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName]

    Nombre del parámetro Descripción
    /QUIET o /Q Especifica que el programa de instalación se ejecuta 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. En la instancia predeterminada, escriba MSSQLSERVER.
    /SQLSYSADMINACCOUNTS=cuentas Especifica los grupos de Windows o cuentas individuales que se van a agregar al rol fijo de sysadmin servidor. Al especificar más de una cuenta, separe las cuentas con un espacio en blanco. Por ejemplo, escriba BUILTIN\Administrators MyDomain\MyUser. Cuando especifique una cuenta que contenga un espacio en blanco dentro del nombre de la cuenta, incluya la cuenta entre comillas dobles. Por ejemplo, escriba NT AUTHORITY\SYSTEM.
    [ /SAPWD=StrongPassword ] Especifica la contraseña de la cuenta de SQL Server sa . Este parámetro es necesario si la instancia usa el modo de autenticación mixta (autenticación de SQL Server y Windows).

    ** Nota de seguridad ** La sa cuenta es una cuenta de SQL Server conocida y a menudo se dirige a usuarios malintencionados. Es muy importante que use una contraseña segura para el sa inicio de sesión.

    No especifique este parámetro para el modo de 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 configuración de intercalación actual del servidor.

    **Importante** Cambiar el orden de clasificación a nivel de servidor no altera el orden de clasificación de las bases de datos de usuario existentes. Todas las bases de datos de usuario recién creadas usarán la nueva intercalación de forma predeterminada.

    Para obtener más información, vea Configurar o cambiar la intercalación del servidor.
  3. Cuando el programa de instalación ha completado la regeneración de las bases de datos del sistema, regresa a la línea de comandos sin mensajes. Examine el archivo de registro de Summary.txt para comprobar que el proceso se completó correctamente. Este archivo se encuentra en C:\Archivos de programa\Microsoft SQL Server\120\Setup Bootstrap\Logs.

Tareas posteriores a la recompilación

Después de volver a generar la base de datos, es posible que tenga que realizar las siguientes tareas adicionales:

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

    Importante

    Si ha cambiado la intercalación del servidor, no restaure las bases de datos del sistema. Al hacerlo, se reemplazará la nueva intercalación por la configuración de intercalación anterior.

    Si una copia de seguridad no está disponible o si la copia de seguridad restaurada no está actualizada, vuelva a crear las entradas que faltan. Por ejemplo, vuelva a crear todas las entradas que faltan para las bases de datos de usuario, los dispositivos de copia de seguridad, los inicios de sesión de SQL Server, los puntos de conexión, etc. La mejor manera de volver a crear entradas es ejecutar los scripts originales que los crearon.

Importante

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

  • Si la instancia de SQL Server está configurada como distribuidor de replicación, debe restaurar la base de datos de distribución. Para obtener más información, consulte Copia de seguridad y restauración de bases de datos replicadas.

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

  • Compruebe que los valores de configuración de todo el servidor coinciden con los valores que registró anteriormente.

Recompilación de la base de datos de recursos

El procedimiento siguiente vuelve a generar la base de datos del sistema de recursos. Cuando se recompila la base de datos de recursos, se pierden todos los service packs y actualizaciones rápidas, y por tanto, se deben volver a aplicar.

Para reconstruir la base de datos del sistema de recursos:

  1. Inicie el programa de instalación de SQL Server 2014 (setup.exe) desde el medio de distribución.

  2. En el área de navegación izquierda, haga clic en Mantenimientoy, a continuación, haga clic 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 se va a 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.

Crear una nueva base de datos msdb

Si la msdb base de datos está dañada y no tiene una copia de seguridad de la msdb base de datos, puede crear una nueva msdb mediante el script instmsdb .

Advertencia

La regeneración de la msdb base de datos mediante el script instmsdb eliminará toda la información almacenada en msdb como trabajos, alertas, operadores, planes de mantenimiento, historial de copias de seguridad, configuraciones de gestión basadas 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 mediante el comando : NET START MSSQLSERVER /T3608

    Para obtener más información, vea Start, Stop, Pause, Resume, Restart the Database Engine, SQL Server Agent o SQL Server Browser Service.

  3. En otra ventana de línea de comandos, desasocie la msdb base de datos ejecutando el siguiente comando, reemplazando <servername> por 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 msdb archivos de base de datos. De forma predeterminada, se encuentran 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 normalmente.

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

    Reemplace <servername> por la instancia del motor de base de datos. Use la ruta de acceso del sistema de archivos de la instancia de SQL Server.

  7. Usando el Bloc de notas de Windows, abra el archivo instmsdb.out y verifique la salida para detectar errores.

  8. Aplique los paquetes de servicio o correcciones rápidas instalados en la instancia.

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

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

Solucionar errores de reconstrucción.

La sintaxis y otros errores en tiempo de ejecución se muestran en la ventana de comandos. Examine la instrucción Setup para ver los siguientes errores de sintaxis:

  • Falta la marca de barra diagonal (/) delante de cada nombre de parámetro.

  • Falta el signo igual (=) entre el nombre del parámetro y el valor del parámetro.

  • Presencia de 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.

Una vez completada la operación de recompilación, examine los registros de SQL Server para detectar errores. La ubicación de registro predeterminada es C:\Archivos de programa\Microsoft SQL Server\120\Setup Bootstrap\Logs. Para buscar el archivo de registro que contiene los resultados del proceso de recompilación, cambie los directorios a la carpeta Registros desde un símbolo del sistema y, a continuación, ejecute findstr /s RebuildDatabase summary*.*. Esta búsqueda le indicará los archivos de registro que contengan los resultados de la regeneración de bases de datos del sistema. Abra los archivos de registro y examine los mensajes de error pertinentes.

Véase también

Bases de datos del sistema