配置备份 BizTalk Server 作业

安装并配置BizTalk Server后,配置备份BizTalk Server作业以备份数据。

从 BizTalk Server 2016 功能包 2 开始,可以将数据库和日志文件备份到 Azure Blob 存储帐户。

概述

备份BizTalk Server (BizTalkMgmtDb) 作业包括以下步骤:

  • 步骤 1 - 设置压缩选项:在备份期间启用或禁用压缩

  • 步骤 2 – BackupFull:运行BizTalk Server数据库的完整数据库备份

  • 步骤 3 - MarkAndBackUpLog:备份BizTalk Server数据库日志

  • 步骤 4 - 清除备份历史记录:选择备份历史记录的保留时间

若要配置此作业,需要:

  • 确定主 SQL Server 和目标 SQL Server 以及其他备份选项

  • 选择一个 Windows 用户帐户来备份数据库,并为此帐户创建SQL Server登录名

  • 将 SQL Server 登录名映射到 BizTalk Server 数据库中的 BTS_BACKUP_USERS 数据库角色

  • 确保 MSDTC 服务在所有节点上都处于活动状态。 否则,在源节点和目标节点之间添加链接服务器会失败。

准备阶段

  • 某些配置和备份操作需要 sysadmin SQL Server 角色的成员身份。 若要备份BizTalk Server数据库,请使用SQL Server sysadmin 服务器角色成员的帐户登录主服务器。 BizTalk Server配置添加BTS_BACKUP_USERS数据库角色。 用于备份数据库的用户帐户不需要系统管理员 (sysadmin SQL Server角色) 备份中可能涉及的所有 SQL Server(主服务器除外)的权限。

  • 确定用于运行BizTalk Server数据库备份的登录帐户。 可以使用本地帐户,也可以使用多个帐户。 但是,创建专用于此目的的专用 Windows 域用户帐户通常更简单、更安全。 必须为此用户配置一个 SQL Server 登录帐户,并将此用户映射到所有参与备份过程的 SQL Server 的 SQL Server 登录名,这些 SQL Server 作为主(源)服务器或辅助(目标)服务器。 将此用户分配到备份的每个BizTalk Server数据库的 BizTalk BTS_BACKUP_USERS数据库角色。

  • 由于备份 BizTalk Server 作业并不删除过期的备份文件,所以需要对这些备份文件进行手动管理,以节省磁盘空间。 为数据库创建了新的完全备份后,应该将过期的备份文件移到存档存储设备,以回收主磁盘空间。 请参阅 SSIS 包 来管理这些文件。

  • BizTalk Server不会将跟踪数据直接写入 BizTalk 跟踪数据库;而是将数据缓存在 MessageBox 数据库中,然后将其移动到 BizTalk 跟踪数据库。 如果发生 MessageBox 数据丢失,则可能会丢失某些跟踪数据。

必备条件

  • 使用 sysadmin SQL Server 角色成员的帐户登录到SQL Server。

  • 将 SQL Server 代理服务配置为在域帐户(尽管可以使用本地帐户,但推荐使用域帐户)下运行,并且在每个 SQL Server 实例上都有一个对应的用户登录名。

  • 若要使用 Azure Blob 存储帐户,需要常规 用途存储帐户、Blob 存储帐户中的容器、共享 访问签名 (SAS) ,以及 使用 SAS 的 SQL 凭据。 创建后,准备好 blob 服务终结点 URL,类似于 https:// yourstorageaccount.blob.core.windows.net/containername

    提示

    如果没有使用 SAS 配置现有 Blob 存储帐户,则 SAS PowerShell 脚本 可以创建它和容器。 SQL Server备份到 URL 提供了概述和具体步骤。

配置作业

  1. 在托管 BizTalk 管理数据库的SQL Server中,打开SQL Server Management Studio,然后连接到SQL Server。

  2. 展开“SQL Server 代理”,然后展开“作业”。

  3. 右键单击 “备份 BizTalk Server (BizTalkMgmtDb)” ,然后选择 “属性”。 在“作业属性”中,选择 “步骤”

  4. 选择“ 设置压缩选项” 步骤,然后选择 “编辑”:

    此步骤调用 sp_SetBackupCompression BizTalk 管理数据库中的存储过程 (BizTalkMgmtDb) 来设置表的值 adm_BackupSettings 。 存储过程有一个参数: @bCompression。 默认情况下, (备份压缩关闭) 设置为 0 。 若要应用压缩,请将值更改为 1

    exec [dbo].[sp_SetBackupCompression] @bCompression = 1 /*0 - Do not use Compression, 1 - Use Compression */  
    

    选择“确定”。

  5. 选择 BackupFull 步骤,然后选择 “编辑”。 在 “命令 ”框中,更新参数值:

    1. 频率:默认值为每日) (d ;这是建议的设置。 其他值包括 h (每小时)、 w (每周)、 m (每月)或 y (每年)。

    2. 名称:默认值为 BTS。 该名称用作备份文件名的一部分。

    3. 备份文件的位置:将“目标路径>”<替换为完整路径, (路径必须包含) 要备份BizTalk Server数据库的计算机和文件夹的单引号,或者 Blob 服务终结点 URL 到 Azure Blob 存储帐户。

      重要

      • 如果输入本地路径,则每当备份BizTalk Server作业创建新文件时,必须手动将所有文件复制到目标系统上的同一文件夹中。

        若要使用远程路径,请输入一个 UNC 共享,例如 \\<ServerName>\<SharedDrive>\,其中 <ServerName> 是所需文件所在的服务器的名称,SharedDrive<> 是共享驱动器或文件夹的名称。

        通过网络备份数据可能会受网络问题的影响。 使用远程位置时,请在备份BizTalk Server作业完成时验证备份是否成功。

      • 若要避免潜在的数据丢失,请将备份磁盘配置为除数据库数据和日志磁盘以外的磁盘。 这样做是必需的,以便你可以在数据或日志磁盘出现故障时访问备份。

      • 备份到 Azure Blob 帐户时,请输入 blob 服务终结点 URL 和容器名称,这些 URL 列在Azure 门户的 blob 服务属性中。

    4. 可选。 在部分备份失败后强制执行完整备份 (@ForceFullBackupAfterPartialSetFailure) :默认值为 0。 如果日志备份失败,则在达到下一个完整备份频率间隔之前不会运行完整备份。 如果要在日志备份失败时运行完整备份,请将 替换为 1

    5. 可选。 运行备份进程的本地时间 小时 (@BackupHour) :默认值为 NULL。 备份作业与BizTalk Server计算机的时区不关联,在 UTC 时间午夜 (0000) 运行。 如果要在BizTalk Server计算机的时区中特定小时备份,请输入从午夜 0 () 到 23 (11 点的整数值,) 作为本地时间小时。

    6. 可选。 使用本地时间 (@UseLocalTime) :告知过程使用本地时间。 默认值为 0,并使用当前 UTC 时间 – GETUTCDATE () – 2007-05-04 01:34:11.933。 如果设置为 1,则使用本地时间 – GETDATE () – 2007-05-03 18:34:11.933

    在以下示例中,每日备份在凌晨 2 点创建,并存储在 m:\ 驱动器中:

    exec [dbo].[sp_BackupAllFull_Schedule]   
    'd' /* Frequency */,   
    'BTS' /* Name */,   
    'm:\BizTalkBackups' /* location of backup files */,   
    '0' /* 0 (default) or 1 ForceFullBackupAfterPartialSetFailure */,   
    '2' /* local time hour for the backup process to run */  
    

    在以下示例中,每周备份在 UTC 时间午夜创建,并存储在 Azure Blob 帐户中:

    exec [dbo].[sp_BackupAllFull_Schedule]   
    'w' /* Frequency */,   
    'BTS' /* Name */,   
    'http://yourstorageaccount.blob.core.windows.net/yourcontainer/' /* location of backup files */,   
    '1' /* 0 (default) or 1 ForceFullBackupAfterPartialSetFailure */
    

    选择“确定”。

  6. 选择 MarkAndBackupLog 步骤,然后选择 “编辑”。 在 “命令 ”框中,更新参数值:

    1. @MarkName:这是备份文件的命名约定的一部分:<服务器名称>_数据库名称>_<Log_< 日志标记名称 >_<Timestamp>

    2. @BackupPath:完整目标路径 (包括) 用于存储BizTalk Server数据库日志或 Azure Blob 存储帐户和容器的计算机和文件夹的单引号。 目标<路径>也可以是本地路径,也可以是另一台服务器的 UNC 路径。

      MarkAndBackupLog 步骤将日志标记为备份,然后对其进行备份。

    重要

    若要避免 潜在的数据丢失改进性能<应将目标路径> 设置为不同的计算机或硬盘驱动器,不同于用于存储原始数据库日志的路径。

    选择“确定”。

  7. 选择“ 清除备份历史记录 ”步骤,然后选择 “编辑”。 在 “命令 ”框中,更新参数值:

    1. @DaysToKeep:默认值为 14 天。 确定备份历史记录在 Adm_BackupHistory 表中的保留时间。 定期清除备份历史记录有助于使 Adm_BackupHistory 表保持适当的大小。

    2. 可选。 @UseLocalTime:告知过程使用本地时间。 默认值为 0。 它使用当前 UTC 时间 – GETUTCDATE () – 2007-05-04 01:34:11.933。 如果设置为 1,则使用本地时间 – GETDATE () – 2007-05-03 18:34:11.933

    exec [dbo].[sp_DeleteBackupHistory] @DaysToKeep=14, @UseLocalTime =1 
    

    注意

    此步骤 不会 从目标路径中删除备份文件。

    选择 “确定” ,然后关闭所有的属性窗口。

  8. 可选。 更改备份计划。 请参阅如何计划备份BizTalk Server作业

    注意

    第一次配置备份 BizTalk Server 作业时将运行该作业。 默认情况下,在后续运行时,备份BizTalk Server作业每天完成一次完整备份,每 15 分钟完成一次日志备份。

  9. 右键单击“备份BizTalk Server作业,然后选择”启用”。 状态应更改为 “成功”

执行 Backup_Setup_All_Procs.sql 和 LogShipping_Destination_Logic.sql

BizTalk Server 2016 功能包 2 (FP2) 在 中使用\Program Files (x86)\Microsoft BizTalk Server *your version*\Schema了 Backup_Setup_All_Procs.sql 和 LogShipping_Destination_Logic.sql 脚本。

如果已配置备份BizTalk Server作业,并且想要切换到使用 Azure blob (而不是磁盘) ,则还要执行以下操作:

  1. 在SQL Server,对备份BizTalk Server作业备份的所有自定义数据库执行Backup_Setup_All_Procs.sql脚本。 默认情况下,FP2 自动更新 BizTalk 数据库;它不会更新 BizTalkMgmtDb) 表中的任何自定义数据库 (这些数据库 adm_OtherBackupDatabases

    备份自定义数据库 提供有关自定义数据库的更多详细信息。

  2. 如果使用日志传送,请在SQL Server内的目标系统上执行 LogShipping_Destination_Logic.sql 脚本。 如果不使用日志传送,请不要执行此脚本。

    为日志传送配置目标系统 提供了有关目标系统的更多详细信息。

sp_ForceFullBackup 存储过程

BizTalkMgmtDb 数据库中的sp_ForceFullBackup存储过程可用于运行数据和日志文件的临时完整备份。 存储的流程会使用值 1 来更新 adm_ForceFullBackup 表。 下次运行备份BizTalk Server作业时,将创建完整的数据库备份集。

后续步骤

配置日志传送的目标系统
安排备份 BizTalk Server 作业
Azure 存储帐户
SQL Server 备份到 URL