Migración de la base de datos WSUS de WID a SQL

Realice estos pasos para migrar la base de datos WSUS (SUSDB) de una instancia de Windows Internal Database a una instancia local o remota de SQL Server.

Prerequisites

  • Instancia de SQL. Puede ser el msSQLServer predeterminado o una instancia personalizada.
  • SQL Server Management Studio
  • WSUS con el rol WID instalado
  • IIS (normalmente se incluye al instalar WSUS a través de Administrador del servidor). Si aún no está instalado, deberá estarlo.

Migración de la base de datos WSUS

Detener los servicios IIS y WSUS en el servidor WSUS

Desde PowerShell (con privilegios elevados), ejecute:

    Stop-Service IISADMIN
    Stop-Service WsusService

Desasociar SUSDB de Windows Internal Database

Uso de SQL Management Studio

  1. Haga clic con el botón derecho en SUSDB -Tasks ->> haga clic en Desasociar: captura de pantalla de SQL Server Management Studio en la que se muestra la opción Desasociar tareas > de SUSDB > seleccionada.
  2. Seleccione Quitar conexiones existentes y haga clic en Aceptar (opcional, si existe conexiones activas). Captura de pantalla del cuadro de diálogo Separar base de datos con la opción Quitar conexiones existentes seleccionada y la opción Aceptar resaltada.

Uso de la ventana del símbolo del sistema

Important

Estos pasos muestran cómo separar la base de datos WSUS (SUSDB) de la instancia de Windows Internal Database mediante la utilidad sqlcmd . Para obtener más información sobre la utilidad sqlcmd , vea sqlcmd Utility.

  1. Abra un símbolo del sistema con privilegios elevados.
  2. Ejecute el siguiente comando SQL para desasociar la base de datos WSUS (SUSDB) de la instancia de Windows Internal Database mediante la utilidad sqlcmd :
        sqlcmd -S \\.\pipe\Microsoft##WID\tsql\query
        use master
        GO
        alter database SUSDB set single_user with rollback immediate
        GO
        sp_detach_db SUSDB
        GO

Copiar los archivos SUSDB en SQL Server

  1. Copie SUSDB.mdf y SUSDB_log.ldf desde la carpeta de datos WID (%SystemDrive%\Windows\WID\Data) en la carpeta de datos de instancia de SQL.

Tip

Por ejemplo, si la carpeta de la instancia de SQL es C:\Archivos de programa\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL y la carpeta de datos de WID es C:\Windows\WID\Data, copie los archivos SUSDB de C:\Windows\WID\Data en C:\Archivos de programa\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data

Adjuntar SUSDB a la instancia de SQL

  1. En SQL Server Management Studio, en el nodo Instancia, haga clic con el botón derecho en Bases de datos y, a continuación, haga clic en Adjuntar. >
  2. En el cuadro Adjuntar bases de datos , en Bases de datos que se van a adjuntar, haga clic en el botón Agregar y busque el archivo SUSDB.mdf (copiado de la carpeta WID) y, a continuación, haga clic en Aceptar. Captura de pantalla del cuadro de diálogo Adjuntar bases de datos con la opción Agregar resaltada. Captura de pantalla del cuadro de diálogo Buscar archivos de base de datos con el archivo SUSDB.mdf resaltado.

Tip

Esto también se puede hacer con Transact-Sql. Consulte la documentación de SQL para adjuntar una base de datos a fin de ver las instrucciones correspondientes.

Ejemplo (con rutas de acceso del ejemplo anterior):

   USE master;
   GO
   CREATE DATABASE SUSDB
   ON
       (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\SUSDB.mdf'),
       (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Log\SUSDB_Log.ldf')
       FOR ATTACH;
   GO

Comprobar los inicios de sesión y los permisos de SQL Server y de la base de datos

Permisos de inicio de sesión de SQL Server

Después de adjuntar SUSDB, compruebe que NT AUTHORITY\NETWORK SERVICE tiene permisos de inicio de sesión en la instancia de SQL Server. Para ello, haga lo siguiente:

  1. Ir a SQL Server Management Studio
  2. Abrir la instancia
  3. Haga clic en Seguridad.
  4. Haga clic en Inicios de sesión.

Debe aparecer la cuenta NT AUTHORITY\NETWORK SERVICE. Si no es así, debe agregarla mediante la adición del nuevo nombre de inicio de sesión.

Important

Si la instancia de SQL está en un equipo diferente de WSUS, la cuenta de equipo del servidor WSUS debe aparecer en el formato [FQDN]\[WSUSComputerName]$. Si no es así, realice los pasos siguientes para agregarla, donde se reemplaza NT AUTHORITY\NETWORK SERVICE por la cuenta de equipo del servidor WSUS ([FQDN]\[NombreEquipoWSUS]$). Esto se haría además de conceder derechos a NT AUTHORITY\NETWORK SERVICE.

Adición de NT AUTHORITY\NETWORK SERVICE y concesión de derechos
  1. Haga clic con el botón derecho en Inicios de sesión y haga clic en Nuevo inicio de sesión...Captura de pantalla de SQL Server Management Studio en la que se muestran los inicios > de sesión Nueva opción Inicio de sesión seleccionada.
  2. En la página General , rellene el nombre de inicio de sesión (NT AUTHORITY\NETWORK SERVICE) y establezca la base de datos predeterminada en SUSDB. Captura de pantalla de la página General del cuadro de diálogo Inicio de sesión que muestra los campos Nombre de inicio de sesión y Base de datos predeterminada rellenados.
  3. En la página Roles de servidor , asegúrese de que están seleccionados public y sysadmin . Captura de pantalla de la página Roles de servidor del cuadro de diálogo Inicio de sesión que muestra las opciones public y sysadmin seleccionadas.
  4. En la página Asignación de usuarios :
    • En Usuarios asignados a este inicio de sesión, seleccione SUSDB.
    • En Pertenencia al rol de la base de datos para: SUSDB, asegúrese de comprobar lo siguiente:
      • public
      • webServiceCaptura de pantalla de la página Asignación de usuarios del cuadro de diálogo Inicio de sesión que muestra las opciones pública y webService seleccionadas.
  5. Haga clic en Aceptar.

Ahora debería ver NT AUTHORITY\NETWORK SERVICE en Inicios de sesión. Captura de pantalla del Explorador de objetos que muestra NT AUTHORITY\NETWORK SERVICE en Inicios de sesión.

Permisos de base de datos

  1. Haga clic con el botón derecho en SUSDB.
  2. Seleccionar propiedades
  3. Haga clic en Permisos.

Debe aparecer la cuenta NT AUTHORITY\NETWORK SERVICE.

  1. Si no es así, agréguela.

  2. En el cuadro de texto Nombre de inicio de sesión, especifique la máquina WSUS con el formato siguiente:

    [FQDN]\[WSUSComputerName]$

  3. Compruebe que la base de datos predeterminada está establecida en SUSDB.

    Tip

    En el ejemplo siguiente, el FQDN es Contosto.com y el nombre de la máquina WSUS es WsusMachine:

    Captura de pantalla del cuadro de diálogo Inicio de sesión que muestra que el FQDN es Constoso.com** y el nombre de la máquina WSUS es WSUS.

  4. En la página Asignación de usuarios, seleccione la base de datos SUSDB en Usuarios asignados a este inicio de sesión.

  5. Active el servicio web en La pertenencia a roles de base de datos para: SUSDB: captura de pantalla de la página Asignación de usuarios del cuadro de diálogo Inicio de sesión que muestra las opciones SUSDB y webService seleccionadas.

  6. Haga clic en Aceptar para guardar la configuración.

    Note

    Puede que necesite reiniciar el servicio SQL para que los cambios surtan efecto.

Editar el registro para que WSUS apunte a la instancia de SQL Server

Important

Sigue meticulosamente los pasos que se describen en esta sección. Es posible que se produzcan problemas graves si el registro se modifica de forma incorrecta. Antes de modificarlo, haz una copia de seguridad del registro para restaurarlo, por si se produjeran problemas.

  1. Haga clic en Inicio, haga clic en Ejecutar, escriba regedity, a continuación, haga clic en Aceptar.

  2. Busque la siguiente clave: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\UpdateServices\Server\Setup\SqlServerName

  3. En el cuadro de texto Valor , escriba [NombreDeServidor]\[NombreDeInstancia] y, a continuación, haga clic en Aceptar. Si el nombre de la instancia es la instancia predeterminada, escriba [ServerName].

  4. Busque la clave siguiente: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\Installed Role Services\UpdateServices-WidDatabaseCaptura de pantalla del cuadro de diálogo Editor del Registro con la clave UpdateServices-WidDatabase resaltada.

  5. Cambie el nombre de la clave a UpdateServices-DatabaseCaptura de pantalla del cuadro de diálogo Editor del Registro que muestra la actualización del nombre de clave a UpdateServices-Database.

    Note

    Si no actualiza esta clave, WsusUtil intentará atender el WID en lugar de la instancia de SQL a la que ha migrado.

Iniciar los servicios IIS y WSUS en el servidor WSUS

Desde PowerShell (con privilegios elevados), ejecute:

    Start-Service IISADMIN
    Start-Service WsusService

Note

Si está usando la consola de WSUS, ciérrela y reiníciela.

Warning

Al eliminar el rol WID, también se quita una carpeta de base de datos (%SystemDrive%\Program Files\Update Services\Database) que contiene scripts que WSUSUtil.exe requiere para tareas posteriores a la instalación. Si decide desinstalar el rol WID, asegúrese de hacer una copia de seguridad de la carpeta %SystemDrive%\Program Files\Update Services\Database previamente.

Uso de PowerShell:

Uninstall-WindowsFeature -Name 'Windows-Internal-Database'

Una vez eliminado el rol WID, compruebe que la clave del Registro siguiente esté presente: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\Installed Role Services\UpdateServices-Database