在环境之间迁移 Orchestrator
本文介绍如何在环境之间移动 Orchestrator,例如移动到新的 SQL Server 2008 R2 或移动 Orchestrator 的某些组件。
下面的过程和脚本使你能够轻松地在环境之间移动。 它们基于使用还原的 Orchestrator 数据库将所有 Orchestrator 组件完全迁移到新的 SQL Server 计算机。
若要实现 Orchestrator 向新环境的自动迁移,需要执行以下步骤:
在环境 A 中备份 SQL Server 服务主密钥
在环境 A 中备份 Orchestrator 数据库
在环境 B 中部署 SQL Server
在环境 B 中还原 SQL Server 服务主密钥
在环境中 B 中还原 Orchestrator 数据库
在环境 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:
- 停止所有管理服务器/Runbook 服务器上的所有 Orchestrator 相关服务:
业务流程协调程序管理服务 (omanagement
)
业务流程协调程序远程处理服务 (oremoting
)
Orchestrator Runbook 服务器监视器 (omonitor
)
Orchestrator Runbook 服务 (orunbook
)(Get-Service).Where{$_.Name -match "^omanagement|^oremoting|^omonitor|^orunbook"} | Stop-Service -Confirm:$false
- 针对 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
- 在所有管理服务器/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 设计器上,不会使用数据库备份进行备份。
在 SQL Server 管理中,右键单击 Orchestrator 数据库,选择“ 任务”,然后选择“ 备份”。
根据需要在组织中配置备份设置。
选择“脚本”,然后选择“将脚本操作”更改为“新建查询”窗口。
选择“执行”以测试备份脚本。
使用此脚本创建一个批处理文件。 批处理文件将类似以下内容:
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 数据库。
在 SQL Server 管理中,右键单击 Orchestrator 数据库,选择“ 任务”,然后选择“ 还原”。
根据需要在组织中配置还原设置。
选择“脚本”,然后选择“将脚本操作”更改为“新建查询”窗口。
选择“执行”以测试还原脚本。
使用此脚本创建一个批处理文件。 批处理文件将类似以下内容:
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