配置 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 Server 角色成员的帐户登录主服务器。 BizTalk Server 配置添加了BTS_BACKUP_USERS数据库角色。 用于备份数据库的用户帐户不需要系统管理员(sysadmin SQL Server 角色)对可能参与备份的所有 SQL Server(主服务器除外)的权限。

  • 确定用于运行 BizTalk Server 数据库备份的登录帐户。 可以使用本地帐户,可以使用多个帐户。 但是,创建一个专用的 Windows 域用户帐户通常更简单且更安全,专用于此目的。 必须为此用户配置一个 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:// ourstorageaccount.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存储过程可用于运行数据和日志文件的临时完整备份。 存储过程将 adm_ForceFullBackup 表中的某列更新为值 1。 下次运行备份 BizTalk Server 作业时,将创建完整的数据库备份集。

后续步骤

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