在环境之间迁移 Orchestrator

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

本文介绍如何在环境之间移动 Orchestrator,例如移动到新的 SQL Server 2022 或移动 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 组件

注意

有关详细信息,请参阅如何使用 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:

注意

查看有关 安全连接到 SQL Server 的指南。

%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