还原数据库 - BizTalk Server
必须将所有数据库还原到相同的标记,以确保各个数据库间的事务状态一致。 请参见 Marked Transactions, Full Backups, and Log Backups。
如果目标系统中只有一个服务器,请确保还原了所有日志备份集(除了最新日志备份集以外)。 请参见 Viewing the History of Restored Backups。 如果没有还原所有日志备份集,并且当前没有运行还原作业,请运行还原作业(必要时,请手动运行)。 如果存在尚未完成的可还原备份集,则作业将处理它们,直到所有备份集全部还原为止。
如果目标系统中有多个服务器,则必须将所有服务器还原到相同的备份集。 查看每个服务器的还原历史记录,确保所有服务器上还原的最新日志备份集都是相同的。 如果不同,则必须在需要还原最新日志备份集的每个服务器上手动运行还原作业。
当所有的服务器都还原为相同的备份集后,最终的备份集可以手动还原。
adm_BackupHistory 表是记录源系统日志传送过程历史记录的核心。 所有执行的备份工作都记录到此表中。 目标系统中的所有服务器都从此表读取信息,以获取执行其还原工作所需的信息。
准备阶段
- 如果从备份还原 BAM 主导入数据库,则还应该使用该 BAM 主导入数据库备份之前的备份来还原 BAM 存档数据库、BAM 星型架构数据库和 BAM 分析数据库。 请参见 Backing Up and Restoring BAM。
- 如果将源数据库的完整备份或日志备份从备份 BizTalk Server 作业放置它们的位置上移走,则应该更新目标系统上 bts_LogShippingDatabases 表中该数据库的相关行,将 LogFileLocation 或 DBFileLocation 设置为目标系统应从中读取完整/日志备份文件的新位置。 运行 bts_ConfigureBtsLogShipping 存储过程时,将填充此表。 默认情况下,这些列设置为空,这表明目标系统应该从 adm_BackupHistory 表中存储的位置上读取这些备份文件。
- 请总是在某个安全位置保留备份文件的一个副本。 即使你进行了日志备份,在没有备份文件的情况下也无法还原数据库。
必备条件
使用 sysadmin SQL Server 角色成员的帐户登录到 SQL Server。
还原数据库
在目标系统上,打开SQL Server Management Studio,然后连接到SQL Server。
依次展开“SQL Server 代理”和“作业”。 请执行以下操作:
右键单击 “BTS 日志传送 - 获取备份历史记录” 作业,然后选择 “禁用”。 状态将更改为“成功”。
右键单击 “BTS 日志传送 - 还原数据库” 作业,然后选择 “禁用”。 状态将更改为“成功”。
右键单击 “BTS 日志传送 - 还原到标记” ,然后选择 “作业开始步骤”。 选择 “步骤 ID 1” ,然后选择 “开始”。
当状态更改为“成功”时,SQL Server 代理作业和BizTalk Server数据库将还原到目标系统。
重要
如果 “状态” 为“错误”,请选择“消息”字段中的链接以确定原因。 在继续前,这些作业的状态应为“成功”。
在编辑 SampleUpdateInfo.xml 文件的BizTalk Server上,打开命令提示符,然后转到:
32 位计算机:
%SystemDrive%\Program Files\Microsoft BizTalk Server <version>\Schema\Restore
64 位计算机:
%SystemDrive%\Program Files (x86)\Microsoft BizTalk Server <version>\Bins32\Schema\Restore
在命令提示符处,键入:
cscript UpdateDatabase.vbs SampleUpdateInfo.xml
注意
使用 SQL Server 2016 或更高版本的环境时,可能需要在 UpdateDatabase.vbs 中使用 MSOLEDBSQL。 在 UpdateDatabase.vbs 中,转到
conn.Provider = "SQLOLEDB"
。 将SQLOLEDB
更改为MSOLEDBSQL
。 否则,脚本可能会失败并出现错误:SQL Server: Invalid connection string attribute
。此脚本可更新存储其他数据库的位置信息的所有表。
重要
- 在 BizTalk 组中的 一个 服务器上运行 UpdateDatabase.vbs。
- 在 64 位计算机上,必须从 64 位命令提示符下运行 UpdateDatabase.vbs。 请注意,64 位计算机上的默认命令提示符是 64 位命令提示符,位于 %SystemDrive%\windows\System32\cmd.exe。
- 还原数据库时,BizTalk EDI 引擎不需要对 SampleUpdateInfo.xml 进行任何自己的修改。 它依赖于与 BizTalkDTADb 数据库的连接来访问 EDI 表。
将编辑后的 SampleUpdateInfo.xml 文件复制到此 BizTalk 组中运行BizTalk Server的每台计算机上的以下文件夹:
32 位计算机:复制到
%SystemDrive%\Program Files\Microsoft BizTalk Server <version>\Schema\Restore
64 位计算机:复制到
%SystemDrive%\Program Files (x86)\Microsoft BizTalk Server <version>\Bins32\Schema\Restore
在BizTalk Server组的每台计算机上,打开命令提示符,然后转到:
32 位计算机:
%SystemDrive%\Program Files\Microsoft BizTalk Server <version>\Schema\Restore
64 位计算机:
%SystemDrive%\Program Files (x86)Microsoft BizTalk Server <version>\Bins32\Schema\Restore
在命令提示符处,键入:
cscript UpdateRegistry.vbs SampleUpdateInfo.xml
此脚本可更新存储其他数据库的位置信息的所有注册表项。
重要
- 在 BizTalk 组中的 每个 服务器上运行 UpdateRegistry.vbs。
- 在 64 位计算机上,必须从 64 位命令提示符下运行 UpdateRegistry.vbs。 请注意,64 位计算机上的默认命令提示符是 64 位命令提示符,位于 %SystemDrive%\windows\System32\cmd.exe。
重启所有BizTalk Server服务。 请参见 How to Start, Stop, Pause, Resume, or Restart BizTalk Server Services。
还原数据库后,重新启动 Windows 管理规范服务:
打开“services.msc”。
右键单击 “Windows 管理规范”,然后选择 “重新启动”。
打开 “BizTalk Server 管理”。 请执行以下操作:
右键单击 “BizTalk 组” ,然后选择 “删除”。
右键单击 “BizTalk Server 管理” ,然后选择 “连接到现有组”。
在 “SQL Server 名称”中,键入托管 BizTalk 管理数据库的 SQL Server 实例的名称。 选择SQL Server实例时,BizTalk Server会自动检测该计算机上的BizTalk Server数据库。
在 “数据库名称”中,选择 BizTalk 管理数据库(默认为“BizTalkMgmtDb” ),然后选择 “确定”。
BizTalk Server管理控制台将 BizTalk 组添加到管理控制台。
BizTalk Server现已还原,并且应正在运行。 接下来,配置备份BizTalk Server作业,开始将备份写入新的目标服务器。 还应该重新配置新的目标系统。
重要
- 如果使用规则引擎,还原数据库后,必须在BizTalk Server组中的每个服务器上重启规则引擎更新服务。 请参见 How to Start, Stop, Pause, Resume, or Restart BizTalk Server Services。
- 如果使用的是 BAM,现在即可还原 BAM 数据库。 请参见 Backing Up and Restoring BAM。
- 如果要移动数据库,并且使用的是 BizTalk EDI 或 RosettaNet 加速器,则可能会针对 BizTalk 数据库设置某些 SQL 端口。 导出绑定,搜索旧数据库链接,并相应地替换数据库链接。