Volver a generar bases de datos del sistema

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

Antes de volver a generar las bases de datos del sistema

Cuando se recompilan las bases de datos master, model, 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 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 la base de datos msdb o cambios en la configuración predeterminada de la base de datos model.

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, debe 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\MSSQL10_50.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 disco de instalación, navegue hasta el directorio de la plataforma correcta (x86, x64 o ia64) y, a continuación, navegue hasta setup\sql_engine_core_inst_msi\Pfiles\SqlServr\MSSQL.X\MSSQL\Binn\Templates.

Procedimiento para volver a generar las bases de datos del sistema

Con el procedimiento siguiente se recompilan las bases de datos del sistema master, model, msdb y tempdb. No se pueden especificar las bases de datos del sistema que se vayan a volver a generar. En el caso de las instancias en clúster, este procedimiento se debe realizar en el nodo activo y el recurso de SQL Server del grupo de aplicaciones de clúster se debe dejar sin conexión antes de realizar el procedimiento.

Este procedimiento no recompila 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 bases de datos del sistema para una instancia de SQL Server:

  1. Inserte el disco de instalación de SQL Server 2008 R2 en la unidad de disco.

  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=nombreDeInstancia

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

    /SQLSYSADMINACCOUNTS=cuentas

    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=contraseñaSegura ]

    Especifica la contraseña de la cuenta sa de SQL Server. 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=nombreDeIntercalación ]

    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 Establecer y cambiar la intercalación de 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\100\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 Consideraciones para hacer copias de seguridad y restaurar las bases de datos.

    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.

Procedimiento para volver a generar la base de datos de recursos

Con el procedimiento siguiente recompila la base de datos del sistema resource. Cuando se recompila 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 (setup.exe) desde los discos de distribución de SQL Server 2008 R2.

  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.

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 volver a generar 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 Cómo iniciar una instancia de SQL Server (comandos net).

  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\MSSQL10_50.MSSQLSERVER\MSSQL\Install\instmsdb.sql" -o" C:\Program Files\Microsoft SQL Server\MSSQL10_50.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.

Solucionar errores del proceso de volver a generar bases de datos

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\100\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.

Vea también

Conceptos

Historial de cambios

Información incorrecta quitada en la descripción de INSTANCENAME. Una instancia con nombre no requiere especificar el nombre de servidor.

Se ha quitado de las tareas posteriores al proceso de volver a generar bases de datos el requisito para aplicar el último Service Pack y las revisiones correspondientes.

Se han quitado las instrucciones para señalar a setup.exe desde el servidor local en el paso 1 de la sección Procedimiento para volver a generar las bases de datos del sistema.

Se ha agregado la sección para crear una nueva base de datos msdb.