配置备份 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 和其他备份选项

  • 选择一个 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 服务器上的权限。

  • 确定用于运行 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/容器

    提示

    如果你没有使用 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. 选择 " 设置压缩选项 " 步骤,然后选择 " 编辑":

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

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

    选择“确定”。

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

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

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

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

      重要

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

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

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

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

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

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

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

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

    在以下示例中,将在2am 中创建每日备份,并将其存储在 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_< 日志标记名称 > _ < 时间戳>

    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) 使用了 中的 Backup_Setup_All_Procs.sql LogShipping_Destination_Logic.sql 脚本\Program Files (x86)\Microsoft BizTalk Server *your version*\Schema

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

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

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

  2. 如果使用日志寄送,请对 LogShipping_Destination_Logic 中的目标系统执行 SQL Server。 如果不使用日志寄送,请不要执行此脚本。

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

sp_ForceFullBackup 存储过程

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

后续步骤

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