在环境之间迁移 Orchestrator

本文介绍如何在环境之间移动 Orchestrator,例如移动到新的 SQL Server 2008 R2 或移动 Orchestrator 的某些组件。

下面的过程和脚本使你能够轻松地在环境之间移动。 它们基于使用还原的 Orchestrator 数据库将所有 Orchestrator 组件完全迁移到新的 SQL Server 计算机。

若要实现 Orchestrator 向新环境的自动迁移,需要执行以下步骤:

  1. 在环境 A 中备份 SQL Server 服务主密钥

  2. 在环境 A 中备份 Orchestrator 数据库

  3. 在环境 B 中部署 SQL Server

  4. 在环境 B 中还原 SQL Server 服务主密钥

  5. 在环境中 B 中还原 Orchestrator 数据库

  6. 在环境 B 中部署 Orchestrator 组件

注意

请参阅 https://go.microsoft.com/fwlink/?LinkId=246817 有关使用 Sqlcmd 实用工具的信息。

注意

建议在 Orchestrator 数据库上启用 SQL Broker,以便内部维护任务自动执行。

如何检查/启用 SQL Broker

通过对 Orchestrator SQL 实例运行以下查询来检查是否需要启用 SQL Broker:

Select Name, is_broker_enabled, Compatibility_Level from sys.databases Where name = 'Orchestrator'

如果注意到 Orchestrator 数据库代理已禁用(0),则需要通过以下步骤启用 SQL Broker:

  1. 停止所有管理服务器/Runbook 服务器上的所有 Orchestrator 相关服务:
    业务流程协调程序管理服务 (omanagement
    业务流程协调程序远程处理服务 (oremoting
    Orchestrator Runbook 服务器监视器 (omonitor
    Orchestrator Runbook 服务 (orunbook
    (Get-Service).Where{$_.Name -match "^omanagement|^oremoting|^omonitor|^orunbook"} | Stop-Service -Confirm:$false
    
  2. 针对 Orchestrator SQL 实例运行以下查询:
    ALTER DATABASE Orchestrator SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    GO
    ALTER DATABASE Orchestrator SET ENABLE_BROKER
    GO
    ALTER DATABASE Orchestrator SET MULTI_USER
    GO
    
  3. 在所有管理服务器/Runbook 服务器上启动所有 Orchestrator 相关服务:
    (Get-Service).Where{$_.Name -match "^omanagement|^oremoting|^omonitor|^orunbook"} | Start-Service
    

在环境 A 中备份 SQL Server 服务主密钥

备份 SQL Server 服务主密钥。

用下面的命令创建一个批处理脚本:

Sqlcmd -Q "BACKUP SERVICE MASTER KEY TO FILE ='C:\BACKUP\MASTER_KEY.BAK' ENCRYPTION BY PASSWORD = 'password'"  

其中,“password”是用于保护所创建文件中服务主密钥的密码。 如果密码丢失,则无法从文件恢复服务主密钥。

在环境 A 中备份 Orchestrator 数据库

备份整个 Orchestrator 数据库。 可以在系统运行时执行备份;但是,当所有 Runbook 作者都签入对其 Runbook 的任何挂起更改时,最好执行备份。 挂起的更改缓存在 Runbook 设计器上,不会使用数据库备份进行备份。

  1. 在 SQL Server 管理中,右键单击 Orchestrator 数据库,选择“ 任务”,然后选择“ 备份”。

  2. 根据需要在组织中配置备份设置。

  3. 选择“脚本”,然后选择“将脚本操作”更改为“新建查询”窗口

  4. 选择“执行以测试备份脚本。

  5. 使用此脚本创建一个批处理文件。 批处理文件将类似以下内容:

    Sqlcmd -Q "BACKUP DATABASE Orchestrator TO DISK=N'C:\BACKUP\OrchestratorDB.bak'"  
    

在环境 B 中部署 SQL Server

将 SQL Server 部署到环境 B。

在环境 B 中还原 SQL Server 服务主密钥

还原Microsoft SQL Server 服务主密钥,以便在新的 SQL Server 上解密 Orchestrator 数据。

使用以下命令创建批处理脚本:

注意

如果要在 SQL Always ON 实例中使用\迁移 Orchestrator 数据库,系统会提示输入数据库加密密钥密码。

Sqlcmd -Q "RESTORE SERVICE MASTER KEY FROM FILE = 'C:\BACKUP\MASTER_KEY.BAK' DECRYPTION BY PASSWORD = 'password';"  

在环境中 B 中还原 Orchestrator 数据库

使用以下步骤创建要在新 SQL Server 计算机上运行的批处理脚本,以还原 Orchestrator 数据库。

  1. 在 SQL Server 管理中,右键单击 Orchestrator 数据库,选择“ 任务”,然后选择“ 还原”。

  2. 根据需要在组织中配置还原设置。

  3. 选择“脚本”,然后选择“将脚本操作”更改为“新建查询”窗口

  4. 选择“执行以测试还原脚本。

  5. 使用此脚本创建一个批处理文件。 批处理文件将类似以下内容:

    Sqlcmd -Q "RESTORE DATABASE [Orchestrator] FROM  DISK = N'C:\BACKUP\OrchestratorDB.bak'WITH  FILE = 1,  NOUNLOAD,  STATS = 10"  
    
    

    注意

    业务流程协调程序数据库已加密;需要加密密钥密码才能将数据库添加到 SQL Always ON 安装程序。 T-SQL使用以下查询更改密码,并在将数据库添加到 Always ON 设置时使用 SQL Always ON 可用性向导中的新密码:

    使用 Orchestrator ALTER MASTER KEY

    使用 ENCRYPTION BY PASSWORD = “password”重新生成;

    GO

在环境 B 中部署 Orchestrator 组件

使用 Orchestrator 安装程序的无提示安装命令部署 Orchestrator 组件(Management 服务器、Web 功能、Runbook 服务器和 Runbook Designer)。 有关使用命令行部署 Orchestrator 的详细信息,请参阅 使用 Orchestrator 命令行安装工具进行安装。

以下示例在运行 SQL Server 2008 R2 和 .NET Framework 4 的计算机上安装所有 Orchestrator:

以下示例在运行 SQL Server 的计算机上安装所有 Orchestrator:

%systemdrive%\sco\setup\setup.exe /Silent `
    /ServiceUserName:%computername%\administrator `
    /ServicePassword:password `
    /Components:All `
    /DbServer:%computername%  /DbPort:1433 /DbNameNew:OrchestratorSysPrep `
    /WebConsolePort:82 /WebServicePublicUrl:"http://localhost:81" `
    /WebServicePort:81 /WebConsolePublicUrl:"http://localhost:82" `
    /OrchestratorRemote `
    /UseMicrosoftUpdate:1 /SendCEIPReports:1 /EnableErrorReporting:always

迁移脚本和命令示例

备份 SQL Server 主服务密钥示例

Sqlcmd -Q "BACKUP SERVICE MASTER KEY TO FILE ='C:\BACKUP\MASTER_KEY.BAK' ENCRYPTION BY PASSWORD = 'password'"  

备份 Orchestrator 数据库示例

Sqlcmd -Q "BACKUP DATABASE Orchestrator TO DISK=N'C:\BACKUP\OrchestratorDB.bak'"  

还原 SQL Server 主服务密钥示例

Sqlcmd -Q "RESTORE SERVICE MASTER KEY FROM FILE = 'c:\temp_backups\keys\service_master_key' DECRYPTION BY PASSWORD = 'password'"  

还原 Orchestrator 数据库示例

Sqlcmd -Q "RESTORE DATABASE [Orchestrator] FROM  DISK = N'C:\BACKUP\OrchestratorDB.bak'WITH  FILE = 1,  NOUNLOAD,  STATS = 10"  

从批处理文件示例安装 Orchestrator

%systemdrive%\sco\setup\setup.exe /Silent `
    /ServiceUserName:%computername%\administrator `
    /ServicePassword:password `
    /Components:All `
    /DbServer:%computername%  /DbPort:1433 /DbNameNew:OrchestratorSysPrep `
    /WebConsolePort:82 /WebServicePublicUrl:"http://localhost:81" `
    /WebServicePort:81 /WebConsolePublicUrl:"http://localhost:82" `
    /OrchestratorRemote `
    /UseMicrosoftUpdate:1 /SendCEIPReports:1 /EnableErrorReporting:always