Skip to content

Migrate zervicepoint to new server

This guide is for a single server setup.

This guide is for migrating your Zervicepoint environment, to a new server. Including databases, servicebus and workflow manager.

Server1 = Old server

Server2 = New server

Step-by-step guide

  1. Install the new server. Requirements - Zervicepoint Docs

    Checklist:

    • Service accounts, verify that the service accounts have the same permissions on the new server.

    • Credentials, (Run "cmdkey /list" in powershell to see what credentials that users have.)

    • Powershell modules, that your Zervicepoint uses.

    • Firewall, you need the same port openings for the Server2

    • Check what plugins that you have installed on Server1. (Can be found in "add or remove programs" if you search for Zervicepoint)

    • Check the version of service bus and workflow manager on Server1, install the same on the Server2.

    • Certificate that Zervicepoint uses.

    Check those and make sure the new server have the same.

  2. Take copy of PrimarySymmeticKey on Server1

    Get-SBNamespace | Select-Object Name, PrimarySymmetricKey
    

    Save this for later

  3. Stop zervicepoint on Server1

    Stop-Service ProcessSystem,ProvisioningSystemInventory,ProvisioningSystem
    
  4. Open workflow manager configuration on Server1 and choose “Leave Workflow Manager Farm”

    Migrate-zervicepoint-to-new-server-Leave-WF

  5. DNS Change DNS A/CNAME record from Server1 ip to Server2 ip

  6. SQL

    Take back up of the following databases (Server1):

    • SbGatewayDatabase

    • SBMessageContainer01

    • WFInstanceManagementDB

    • WFResourceManagementDB

    • ZervicePoint

    Migrate-zervicepoint-to-new-server-sql-backup Migrate-zervicepoint-to-new-server-sql-backup-Ok

    And then restore them to the (Server2).

    Migrate-zervicepoint-to-new-server-restore

    Migrate-zervicepoint-to-new-server-restore

  7. Install zervicepoint Zervicepoint Installer - Zervicepoint Docs

    Make sure you are installing the same version of Zervicepoint on the new server.

    (You can start the installation wizard on Server1 and use as a template for what settings to use on Server2, but do not go past the "summary step" on Server1) Migrate-zervicepoint-to-new-server-installer

    Complete the installation on Server2

    Compare these files, change on Server2 if needed:

    Check under "" that everything looks to be correct.

    C:\Program Files\Zipper\ZervicePoint\ClientWebService\Zipper.ZervicePoint.ProvisioningSystem.Inventory.exe.config
    
    C:\Program Files\Zipper\ZervicePoint\ProcessSystem\Zipper.ZervicePoint.ProcessSystem.WorkflowService.exe.config
    
    C:\Program Files\Zipper\ZervicePoint\ProvisioningSystem\Zipper.ZervicePoint.ProvisioningSystem.Service.exe.config
    
    C:\Program Files\Zipper\ZervicePoint\Web\ClientWebService\Web.config
    

  8. Plugins

    Copy plugins and provider files from Server1 to Server2.

    Check the paths in the XML files, they need to match with where the files are placed.

  9. Certificate

    Go to Worker settings under store setting in admin web. Generate a new certificate for token signing and save. Download the certificate and install it on the server.

    Example

    Update (DataSignCertThumbPrint and TokenCertThumbPrint) the thumbprint in:

    C:\Program Files\Zipper\ZervicePoint\Web\ClientWebService\Web.config
    
    With the thumbprint from the new certificate

    Also you might need to change the name from Server1 to Server2 in these files:

    C:\Program Files\Zipper\ZervicePoint\ProcessSystem\Zipper.ZervicePoint.ProcessSystem.WorkflowService.exe.config
    
    Check the Name (HERE), make sure it is Server2

    <workflowHost host="HERE" connectUsingServiceAccount="true"/>
    <add name="ZervicePoint" providerName="System.Data.SqlClient" connectionString="Data Source=HERE;Initial Catalog=ZervicePoint;Integrated Security=True"/>
    <add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=HERE;StsEndpoint=HERE;RuntimePort=9354;ManagementPort=9355"/>
    
    C:\Program Files\Zipper\ZervicePoint\Web\ProcessSystem\Web.config
    

    Check the Name(HERE), make sure it is Server2

    <add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=HERE;StsEndpoint=HERE;RuntimePort=9354;ManagementPort=9355"/>
    <add name="ZervicePoint" providerName="System.Data.SqlClient" connectionString="data source=HERE;initial catalog=ZervicePoint;integrated security=True;multipleactiveresultsets=True;App=EntityFramework"/>
    
  10. Workflow manager and service bus.

    On Server2: Start PowerShell as admin

    Import-Module WorkflowManager 
    
    $myKey = ConvertTo-SecureString "CertificateAutoGenerationKey from **Server1**" -AsPlainText -Force 
    
    Change “domain\account” to your Domain\serviceaccount

    Replace myServerName\myInstanceName with Server2 SQL connection string

    Restore-SBFarm -RunAsAccount "domain\account" -GatewayDBConnectionString "Data Source=Server2;Initial Catalog=SbGatewayDatabase;Integrated Security=True;Encrypt=False" -SBFarmDBConnectionString "Data Source=myServerName\myInstanceName;Initial Catalog=SbManagementDB;Integrated Security=True;Encrypt=False" -AdminGroup "BUILTIN\Administrators" -CertificateAutoGenerationKey $myKey -Verbose
    

    Replace myServerName\myInstanceName with Server2 SQL connection string

    Restore-SBMessageContainer -ContainerDBConnectionString "Data Source=Server2;Initial Catalog=SBMessageContainer01;Integrated Security=True;Encrypt=False" -SBFarmDBConnectionString "Data Source=Server2;Initial Catalog=SbManagementDB;Integrated Security=True;Encrypt=False" -Id 1
    

    Replace myServerName\myInstanceName with Server2 SQL connection string

    Restore-SBGateway -GatewayDBConnectionString "Data Source=Server2;Initial Catalog=SbGatewayDatabase;Integrated Security=True;Encrypt=False" -SBFarmDBConnectionString "Data Source=Server2;Initial Catalog=SbManagementDB;Integrated Security=True;Encrypt=False" -Verbose
    
    $myPassword = ConvertTo-SecureString "Password for servicebus service account" -AsPlainText -Force
    

    Replace myServerName\myInstanceName with Server2 SQL connection string

    Add-SBHost -EnableFirewallRules $TRUE -RunAsPassword $myPassword -CertificateAutoGenerationKey $myKey -SBFarmDBConnectionString "Data Source=myServerName\myInstanceName;Initial Catalog=SbManagementDB;Integrated Security=True;Encrypt=False"
    
    Replace myServerName\myInstanceName with Server2 SQL connection string

    Change “domain\account” to your Domain\serviceaccount

    Restore-WFFarm -RunAsAccount "domain\account" -InstanceDBConnectionString "Data Source=Server2;Initial Catalog=WFInstanceManagementDB;Integrated Security=True;Asynchronous Processing=True;Encrypt=False" -ResourceDBConnectionString "Data Source=Server2;Initial Catalog=WFResourceManagementDB;Integrated Security=True;Asynchronous Processing=True;Encrypt=False" -WFFarmDBConnectionString "Data Source=Server2;Initial Catalog=WFManagementDB;Integrated Security=True;Encrypt=False" -InstanceStateSyncTime "Friday, Jan 24, 2020 06:30:00 PM" -ConsistencyVerifierLogPath "c:\temp\log.txt" -CertificateAutoGenerationKey $myKey -Verbose SkipConsistencyVerification
    
    Use the key you got from Server1 when you ran (Get-SBNamespace | Select-Object Name, PrimarySymmetricKey )

    Set-SBNamespace -Name "WorkflowDefaultNamespace" -PrimarySymmetricKey "KEY"
    Set-SBNamespace -Name "ZervicePoint" -PrimarySymmetricKey "KEY"
    
    $SBClientConfiguration = Get-SBClientConfiguration -Namespaces "WorkflowDefaultNamespace" -Verbose;
    
    Add-WFHost -WFFarmDBConnectionString "Data Source=Server2;Initial Catalog=WFManagementDB;Integrated Security=True;Encrypt=False" -RunAsPassword $myPassword -EnableFirewallRules $TRUE -CertificateAutoGenerationKey $myKey -SBClientConfiguration $SBClientConfiguration Verbose
    
  11. Test and verify

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

Restart service ZevicePoint Process Service

Restart-Service ProcessSystem

Create a test order and verify that everything is correct.