使用 Power BI Premium 备份和还原语义模型

如果有 Power BI Premium 或 Premium Per User (PPU) 许可证,则可以对 Power BI 语义模型使用备份和还原功能,方法类似于 Azure Analysis Services 的表格模型中的备份和还原操作。

可以使用 SQL Server Management Studio (SSMS)适用于 PowerShell 的 Analysis Services cmdlet 等其他工具在 Power BI 中使用 XMLA 终结点执行备份和还原操作。 以下各部分分别介绍 Power BI 语义模型备份和还原的概念、要求和注意事项。

SSMS 窗口的屏幕截图,其中从“数据库”菜单中选择了“备份”。“备份数据库”对话框处于打开状态,其中选择了“确定”。

备份和还原 Power BI 语义模型的功能提供了从 Azure Analysis Services 工作负载到 Power BI Premium 的迁移路径。 备份和还原还会出于多种原因而启用语义模型备份,包括损坏或丢失、数据保留要求以及租户移动等。

使用语义模型备份和还原

备份和还原功能使用 Power BI 与 Azure 之间的现有连接,例如在租户或工作区级别注册 Azure Data Lake Gen2 (ADLS Gen2) 存储帐户以优化数据流存储和操作的功能。 由于备份和还原使用相同的连接,因此无需其他存储帐户。

可以执行脱机备份,从 ADLS Gen2 存储帐户下载文件。 若要下载,请使用文件系统、Azure 存储资源管理器、.NET 工具和 PowerShell cmdlet,例如 Get-AzDataLakeGen2ItemContent cmdlet。 下图显示了在 Azure 存储资源管理器中的一个工作区,其中包含三个语义模型及其相应的备份文件。

已选择备份的 Azure 存储资源管理器的屏幕截图。Power BI 窗口的一部分显示“设置”对话框。

若要了解如何配置 Power BI 以使用 ADLS Gen2 存储帐户,请参阅将数据流存储配置为使用 Azure Data Lake Gen2

多地理位置注意事项

备份和还原依赖于 Power BI 中的 Azure 连接基础结构,以在租户或工作区级别注册 Azure Data Lake Gen2 (ADLS Gen2) 存储帐户。 应在 Power BI Premium 容量的区域中预配存储帐户,以避免跨区域边界产生数据传输成本。 使用存储帐户在多地理位置 Premium 容量上配置工作区之前,请检查数据驻留要求。

可以执行备份和还原的人员

通过与工作区关联的 ADLS Gen2 存储帐户,具有写入和管理员权限的工作区管理员可以执行备份。 具有这些权限的用户可能是管理员、成员或参与者,也可能不属于工作区级别角色,但对语义模型具有直接写入权限。

若要还原现有语义模型,对数据集具有写入或管理员权限的用户可以执行还原操作。 若要还原新的语义模型,用户必须是工作区的管理员。

若要使用 Azure 存储资源管理器(SSMS 中的“浏览…”按钮)浏览备份/还原文件系统,用户必须是工作区的管理员、成员或参与者。

Power BI 根据工作区名称将工作区与其备份目录关联。 如果具有存储帐户级别的所有者权限,可以下载备份文件或将其从原始位置复制到其他工作区的备份目录(如果同时还是目标工作区中的工作区管理员,可以在此处将其还原)。

存储帐户所有者对备份文件具有不受限制的访问权限,因此要确保仔细设置和维护存储帐户的权限。

执行备份和还原的方法

备份和还原需要使用基于 XMLA 的工具,如 SQL Server Management Studio (SSMS)。 Power BI 用户界面中没有备份或还原工具或选项。 由于 XMLA 依赖项,备份和还原目前要求语义模型位于 Premium 或 PPU 容量中。

可以在租户或工作区级别应用“备份和还原”的存储帐户设置 。

对于“备份和还原”,Power BI 在存储帐户中创建名为 power-bi-backup 的新容器,并使用与 power-bi-backup 容器中的工作区相同的名称创建备份文件夹 。 如果在租户级别配置存储帐户,Power BI 仅创建 power-bi-backup 容器。 Power BI 在你将存储帐户附加到工作区时创建备份文件夹。 如果在工作区级别配置存储帐户,Power BI 会创建 power-bi-backup 容器并创建备份文件夹。

在备份和还原期间,将执行以下操作:

  • 将备份文件放入 power-bi-backup 容器的备份文件夹中
  • 若要进行还原,必须将备份文件 (.abf files) 放入文件夹中,然后再执行还原

如果你重命名工作区,power-bi-backup 容器中的备份文件夹将自动重命名以与之匹配。 但如果现有文件夹与已重命名的工作区同名,则备份文件夹的自动重命名会失败。

注意事项和限制

在 Power BI 中使用备份和还原功能时,请记住以下注意事项。

  • Power BI 必须能够直接访问 ADLS Gen2。 ADLS Gen2 不能位于 VNET 中,并且无法启用防火墙。

  • 如果 ADLS Gen2 已在使用“备份和还原”,并且你断开连接并稍后将其重新配置为使用“备份和还原”。 必须先重命名或移动之前的备份文件夹,否则此尝试将导致错误和失败。

  • “还原”仅支持将数据库还原为“大型模型(高级)”数据库 。

  • 仅允许还原增强格式模型(V3 模型)。

  • 禁用对存储帐户上的帐户密钥的访问时,可能会收到此错误:此存储帐户不允许使用基于密钥的身份验证

  • restore 命令的属性 ignoreIncompatibilities 可解决 Azure Analysis Services (AAS) 和 Power BI Premium 之间的行级别安全性 (RLS) 不兼容问题。 Power BI Premium 仅支持角色的读取权限,但 AAS 支持所有权限。 如果尝试还原一个某些角色没有读取权限的备份文件,必须在 restore 命令中指定 ignoreIncompatibilities 属性。 如果步指定,还原可能会失败。 指定后,将删除没有读取权限的角色。 目前,SSMS 中没有支持 ignoreIncompatibilities 属性的设置,但是,可以使用表格模型脚本语言 (TMSL) 在 restore 命令中指定它。 例如:

      {
        "restore": {
          "database": "DB",
          "file": "/Backup.abf",
          "allowOverwrite": true,
          "security": "copyAll",
          "ignoreIncompatibilities": true
        }
      }
    
  • 可以还原损坏的数据库。 只要定期备份数据库,还原数据库就是恢复数据库的最可靠方法。 在 XMLA 查询中使用下面的 restore 命令还原数据库:

      <Restore xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
        <File>DatabaseBackup.abf</File>
        <DatabaseName>DatabaseName</DatabaseName>
        <AllowOverwrite>true</AllowOverwrite>
      </Restore>
    
  • 还原数据库时,可能会遇到以下错误:

    当前无法还原语义模型备份,因为没有足够的内存来完成此操作。请使用 /forceRestore 选项通过卸载和脱机的现有语义模型还原语义模型。

    在这些情况下,使用 restore 命令,添加 forceRestore 属性以触发强制还原操作。 例如,使用 TMSL 时:

        {
          "restore": {
          "database": "DB",
          "file": "/Backup.abf",
          "allowOverwrite": true,
          "security": "copyAll",
          "forceRestore": true
          }
        }