Compartir a través de


Restauración y recuperación ante desastres de la granja de servidores de SharePoint Administrador de flujos de trabajo

Siga los pasos de este artículo para mover las bases de datos de SharePoint Administrador de flujos de trabajo (SPWFM) a una nueva instancia de SQL Server. Este movimiento puede realizarse como parte de un esfuerzo de recuperación ante desastres (DR), una migración o si simplemente debe cambiar el nombre de las bases de datos SPWFM. Estos pasos también se pueden usar como método alternativo para actualizar o migrar de "Administrador de flujos de trabajo clásico" (WFM) a SharePoint Administrador de flujos de trabajo (SPWFM) en un nuevo hardware. Sin embargo, es un poco más complejo que el procedimiento recomendado, que se detalla en Actualización de Administrador de flujos de trabajo a SharePoint Administrador de flujos de trabajo en una nueva granja de servidores. Si decide usar este procedimiento de "restauración de granja" para actualizar o migrar, tenga en cuenta que las bases de datos de contenido de SharePoint y la base de datos de aplicaciones de App Management Service también deben actualizarse a lo largo del camino para mantener intactos los flujos de trabajo existentes.

Importante

El Asistente para configuración de flujo de trabajo solo le pide la información de conexión de la base de datos y los nombres de las bases de datos administración de Service Bus y administración de flujos de trabajo. La información de conexión de las otras cuatro bases de datos de Service Bus y Flujo de trabajo se almacena en esas dos bases de datos de administración. Dado que el asistente no actualiza esa información de conexión, no puede usar el asistente para cambiar los nombres de bases de datos o servidores SQL. En ese caso, debe usar los procedimientos especificados en Escenario 2: Sin usar un alias SQL (Restauración de granja de servidores) para restaurar la granja de flujos de trabajo.

Escenario 1: Uso de un alias SQL

Si está abierto a usar un alias SQL, es fácil mover bases de datos SPWFM a un nuevo servidor SQL Server.

  1. Detenga todos los servicios SPWFM en todos los servidores SPWFM o, si es posible, apague los servidores para quitar las conexiones existentes a las bases de datos De flujo de trabajo (WF) y Service Bus (SB). Los servicios relacionados con SPWFM incluyen:

    • Puerta de enlace de Service Bus
    • Service Bus Message Broker
    • Proveedor de recursos de Service Bus
    • Service Bus VSS
    • Service Fabric Host Service
    • back-end de Administrador de flujos de trabajo
    • Servicio de publicación World Wide Web
  2. Mueva físicamente las bases de datos WF y SB de la instancia de SQL Server original a la instancia de SQL Server de destino. La copia de seguridad y restauración de la base de datos funciona bien para eso. Debe mantener los mismos nombres de base de datos para las seis bases de datos de Service Bus y Flujo de trabajo durante el traslado. Si necesita cambiar los nombres de base de datos, tendrá que usar el escenario 2.

  3. Cree un alias SQL con cliconfg.exe en todos los servidores SPWFM. Para obtener más información sobre cómo crear el alias, vea Crear un alias SQL.

  4. Reinicie los servidores o servicios de SPWFM. Dado que se usa un alias SQL para asignar el nombre "antiguo" de SQL Server al servidor SQL Server "nuevo", SPWFM no es consciente de que se han producido cambios. Los servicios deben aparecer y conectarse a las bases de datos del nuevo servidor SQL Server.

Escenario 2: Sin usar un alias SQL (restauración de granja de servidores)

Si por algún motivo no puede usar un alias SQL o si necesita cambiar los nombres de las seis bases de datos de Service Bus y Flujo de trabajo, tendrá que completar un flujo de trabajo "Restauración de granja de servidores". Este proceso, aunque no es demasiado complicado, tiene muchos puntos de error potenciales.

Sugerencia

Por lo tanto, se recomienda encarecidamente usar un alias SQL y mantener los nombres de base de datos iguales, como se describió anteriormente en el escenario 1.

Mover las bases de datos WFM y SB

  • Con este procedimiento, solo necesitamos cuatro de las seis bases de datos WFM/SB. NO necesitamos las bases de datos WFManagementDB y SbManagementDB, que se crearán como parte de este procedimiento.
  • Realice una copia de seguridad de las cuatro bases de datos que necesita en el servidor SQL Server "antiguo" y restaure las bases de datos en el servidor SQL Server "nuevo". En el ejemplo siguiente, las bases de datos se han restaurado con los nombres de base de datos predeterminados:
SbGatewayDatabase
SBMessageContainer01
WFInstanceManagementDB
WFResourceManagementDB

Restauración de la granja de flujos de trabajo

Si tiene varios servidores SPWFM, elija uno en el que pueda ejecutar el proceso de restauración. En el futuro, se hará referencia a este servidor como "el servidor SPWFM".

En el servidor SPWFM, es necesario ejecutar algunos comandos de PowerShell para restaurar todo mediante las bases de datos restauradas. En este proceso de PowerShell, se recomienda ejecutar un paso a la vez y no solo ejecutar todo como un único script. De este modo, si se produce un error en un paso, puede solucionarlo evitando que pase al paso siguiente y, potencialmente, se produzca un desastre.

Importante

Va a establecer una nueva "clave de generación de certificados" en la granja restaurada. Querrá almacenar este valor en algún lugar, ya que es necesario cada vez que vuelva a unirse a la granja o cuando una servidores adicionales a la granja.

Con los privilegios de administrador, ejecute PowerShell ISE en el servidor SPWFM y realice los pasos siguientes para restaurar la granja de flujos de trabajo:

Establecer las variables

Las variables a las que se hace referencia son las variables que usarán el resto de los comandos. Después de establecer estas variables correctamente para el entorno, no debe tener que realizar ningún cambio en ninguno de los comandos posteriores.

$wfmAcc = "CONTOSO\spfarm" # Account in services.msc used to run the SPWFM services
$newPass = "YourPWDHere" # Set the password of the SPWFM service account defined variable $wfmAcc
$certGenKeyPlain = "YourCertGenKeyHere" # A new Certificate Generation Key of your choosing  
$manageUsers = @("spfarm@contoso.local","sysadm@contoso.local") # Admin accounts. Use UPN form (user@domain). This should include the account that is running this script.
$adminGroup = "BUILTIN\Administrators" # The group that will have admin permissions for the SPWFM farm.  The local administrators group is common.  
$newSQL = "sql" # Set the SQL instance name of the target SQL server
$sbGatewayDB = "SbGatewayDatabase" # Restored Service Bus Gateway DB name 
$sbMessageDB = "SBMessageContainer01" # Restored Service Bus Message Container DB name
$sbManageDB = "SbManagementDB" # Name for the NEW Service Bus Management DB that will be created
$wfInstanceDB = "WFInstanceManagementDB" #  Restored Workflow Instance Management DB
$wfResourceDB = "WFResourceManagementDB" # Restored Workflow Resource Management DB
$wfManageDB = "WFManagementDB" # Name for the NEW Workflow Management DB DB that will be created
$logPath = "C:\temp\wfm-restore.log.txt" # A log file used for recording information during the restore

### You should not need to change anything below this line ###
# Set a few more variables automatically
$PrimarySymmetricKey = [Convert]::ToBase64String((1..32|%{[byte](Get-Random -Max 256)}))
$certGenKey = convertto-securestring $certGenKeyPlain -asplaintext -force
$myPassword = convertto-securestring $newPass -asplaintext -force
$restoreTime = Get-Date 

Restauración de la granja de servidores de Service Bus

# Restore the Service Bus farm
# You'll get a warning about the Farm Encryption Token, but don't worry, we'll fix that in a later step
Restore-SBFarm -RunAsAccount $wfmAcc -GatewayDBConnectionString "Data Source=$newSQL;Initial Catalog=$sbGatewayDB;Integrated Security=True;Encrypt=False" -SBFarmDBConnectionString "Data Source=$newSQL;Initial Catalog=$sbManageDB;Integrated Security=True;Encrypt=False" -AdminGroup $adminGroup -CertificateAutoGenerationKey $certGenKey -Verbose

Nota:

Recibirá una advertencia sobre el "Token de cifrado de granja de servidores", pero no se preocupe, lo corregiremos en un paso posterior.

Restauración del contenedor de mensajes de Service Bus

# Restore the Service Bus Message Container
Restore-SBMessageContainer -ContainerDBConnectionString "Data Source=$newSQL;Initial Catalog=$sbMessageDB;Integrated Security=True;Encrypt=False" -SBFarmDBConnectionString "Data Source=$newSQL;Initial Catalog=$sbManageDB;Integrated Security=True;Encrypt=False" -Id 1 -Verbose

Restauración de la puerta de enlace de Service Bus

# Restore the Service Bus Gateway
Restore-SBGateway -GatewayDBConnectionString "Data Source=$newSQL;Initial Catalog=$sbGatewayDB;Integrated Security=True;Encrypt=False" -SBFarmDBConnectionString "Data Source=$newSQL;Initial Catalog=$sbManageDB;Integrated Security=True;Encrypt=False" -Verbose

Nota:

Si recibe un error "Se agotó el tiempo de espera de la operación", simplemente omita eso y continúe.

Actualización de la granja de servidores de Service Bus

# Upgrade the Service Bus farm
Invoke-SBFarmUpgrade -SBFarmDBConnectionString "Data Source=$newSQL;Initial Catalog=$sbManageDB;Integrated Security=True;Encrypt=False" -CertificateAutoGenerationKey $certGenKey -Verbose

Adición del servidor SPWFM local a Service Bus

# Add the local SPWFM server to the Service Bus farm
Add-SBHost -EnableFirewallRules $TRUE -RunAsPassword $myPassword -CertificateAutoGenerationKey $certGenKey -SBFarmDBConnectionString "Data Source=$newSQL;Initial Catalog=$sbManageDB;Integrated Security=True;Encrypt=False" -Verbose

Establecimiento del espacio de nombres de Service Bus

# Set the Service Bus namespace
Set-SBNamespace -Name "WorkflowDefaultNamespace" -PrimarySymmetricKey $PrimarySymmetricKey -ManageUsers $manageUsers -Verbose

Comprobación de que Service Bus está satisfecho

# At this point, all SB services should be running and we should have a namespace of "WorkflowDefaultNamespace" defined.
# If not, you'll want to fix that before moving on.
Get-SBFarm
Get-SBFarmStatus
Get-SBNamespace -Name WorkflowDefaultNamespace

Restauración de la granja de Administrador de flujos de trabajo Services

# Restore the Workflow Manager Services and Farm
Restore-WFFarm -RunAsAccount $wfmAcc -InstanceDBConnectionString "Data Source=$newSQL;Initial Catalog=$wfInstanceDB;Integrated Security=True;Asynchronous Processing=True;Encrypt=False" -ResourceDBConnectionString "Data Source=$newSQL;Initial Catalog=$wfResourceDB;Integrated Security=True;Asynchronous Processing=True;Encrypt=False" -WFFarmDBConnectionString "Data Source=$newSQL;Initial Catalog=$wfManageDB;Integrated Security=True;Encrypt=False" -InstanceStateSyncTime $restoreTime -ConsistencyVerifierLogPath $logPath -CertificateAutoGenerationKey $certGenKey -Verbose 

Adición del servidor SPWFM local a la granja de servidores SPWFM

# Add the local SPWFM server to the SPWFM farm
$SBClientConfiguration = Get-SBClientConfiguration -Namespaces "WorkflowDefaultNamespace" 
Add-WFHost -WFFarmDBConnectionString "Data Source=$newSQL;Initial Catalog=$wfManageDB;Integrated Security=True;Encrypt=False" -RunAsPassword $myPassword -EnableFirewallRules $TRUE -CertificateAutoGenerationKey $certGenKey -SBClientConfiguration $SBClientConfiguration –Verbose 

Actualización de SPWFM

# Upgrade the SPWFM host
Invoke-WFHostUpgrade -Verbose

Como alternativa, puede ejecutar el Asistente para configuración de Administrador de flujos de trabajo y seleccionar Actualizar Administrador de flujos de trabajo granja.

Comprobar estado

Después de la actualización, dele un minuto o dos para iniciar los servicios; A continuación, ejecute este comando de PowerShell para comprobar el estado:

Get-WFFarm; Get-WFFarmStatus; Get-SBFarm; Get-SBFarmStatus

Debe mostrar que todos los servicios se están ejecutando y que no hay errores.

Unión de otros servidores a la granja de flujos de trabajo

En este punto, si todo se ve bien, si tenía más servidores en la granja de SERVIDORES SPWFM, debería poder agregarlos de nuevo a la granja ejecutando el Asistente para configuración de Administrador de flujos de trabajo y eligiendo unirse a una granja existente.

La "clave de generación de certificados" se estableció en el script anterior; por lo que tendrá que usarlo al unirse a la granja.

Validar en el lado de SharePoint

Confiar en el certificado SSL SPWFM en los servidores de SharePoint

Dado que se crearon nuevos certificados SPWFM como parte de este procedimiento, se deben implementar los pasos siguientes para asegurarse de que los servidores de SharePoint confían en ellos:

  1. Complete los pasos descritos en la sección Confiar en el certificado SSL SPWFM en los servidores de SharePoint para confiar en el certificado de punto de conexión SPWFM en todos los servidores de SharePoint.
  2. Actualice el certificado de salida SPWFM usado en SPTrustedSecurityTokenIssuer mediante la ejecución del trabajo del temporizador RefreshMetadataFeed en cualquier servidor de SharePoint:
 $tj = Get-SPTimerJob | ? {$_.name -match "RefreshMetadataFeed"} 
 Start-SPTimerJob $tj

Validación del punto de conexión de SPWFM

En uno de los servidores de SharePoint, inicie sesión como la cuenta de ejecución de SPWFM o como un usuario que sea miembro de AdminGroup, como se define en el script anterior. Vaya al FQDN del punto de conexión SPWFM, por ejemplo, https://apps.contoso.local:12290/. El resultado debe ser similar al que se muestra en la captura de pantalla siguiente:

Resultado del proceso de validación del punto de conexión SPWFM.

Pasos opcionales

Registro de la granja de SharePoint

Si ha usado estos pasos para mover bases de datos de Flujo de trabajo (WF) y Service Bus (SB) a un nuevo servidor SQL Server, la granja de servidores de SharePoint ya está registrada y no es necesario completar este paso.

Sin embargo, si ha usado estos pasos para migrar las bases de datos SB y WF a una nueva granja de SPWFM, por ejemplo, como parte de una actualización o migración de una granja de servidores de SharePoint, deberá ejecutar el siguiente Register-SPWorkflowService comando para conectar la granja de servidores de SharePoint con la granja de servidores SPWFM.

$Scope = "SharePoint" # Use the Scope Name you were using previously
$site = "https://sp.contoso.local/" # Any site in the SharePoint web application
$wfURI = "https://spwfm.contoso.local:12290" # Get this value by running "Get-WFFarm | select endpoints" on the SPWFM server
Register-SPWorkflowService -SPSite $site -WorkflowHostUri $wfURI -ScopeName $Scope -Force

Publicación de un nuevo flujo de trabajo

Si usó este procedimiento para actualizar o migrar y si las direcciones URL de la aplicación web de SharePoint han cambiado como parte de esta migración (por ejemplo, de a https://spse.contoso.local), los flujos de http://sp2013.contoso.local trabajo creados antes de la migración del flujo de trabajo o la restauración de granja de servidores no funcionarán al principio. Primero tendrá que publicar un nuevo flujo de trabajo. Para obtener más información, vea Problema 1: Se ha cambiado la dirección URL del sitio.