使用 BR 在 Azure Blob Storage 备份和恢复数据

    Azure 虚拟机可以将大规模数据快速地存放到 Azure Blob Storage 上。如果你使用 Azure 虚拟机来部署集群,可以考虑将数据备份到 Azure Blob Storage 中。

    使用 BR,你可以通过以下两种方法在 Azure Blob Storage 上进行备份与恢复:

    • 使用 Azure AD 备份恢复
    • 使用访问密钥备份恢复

    在通常情况下,为了避免 等密钥信息记录在命令行中被泄漏,推荐使用第一种方法,即使用 Azure AD 备份恢复。

    以下为使用上述两种方式在 Azure Blob Storage 上进行备份与恢复的操作示例,其中,具体操作目标如下:

    • 备份:将数据库的 test 库备份到 Azure Blob Storage 的容器名为 container=test 且路径前缀为 t1 的空间中;
    • 恢复:将 Azure Blob Storage 的容器名为 container=test 且路径前缀为 t1 的空间恢复到数据库的 test 库中。

    本小节介绍如何使用 Azure AD 进行备份恢复,该方式需要先配置环境变量,然后执行备份或恢复。

    配置环境变量

    你需要在 BR 运行环境和 TiKV 运行环境中配置环境变量 $AZURE_CLIENT_ID$AZURE_TENANT_ID$AZURE_CLIENT_SECRET

    • 为命令行启动的 TiKV 和 BR 配置 Azure AD 的信息,只需要确定运行环境中存在 、$AZURE_TENANT_ID$AZURE_CLIENT_SECRET。通过运行下列命令行,可以确认 BR 和 TiKV 运行环境中是否存在这三个环境变量:

      1. echo $AZURE_CLIENT_ID
      2. echo $AZURE_TENANT_ID
      3. echo $AZURE_CLIENT_SECRET

    更多关于环境变量的信息,可以参考 Azblob 的 URL 参数

    备份

    本节展示了备份到 cool tier,即上传对象的存储类别为 Cool 的案例。你需要使用 URL 或命令行来指定 account-nameaccess-tier。根据指定方式的不同,备份的操作略有差异。

    • 在 URL 参数中指定 account-nameaccess-tier

      如果没有设置 access-tier(即该值为空),该值会默认设置为 Hot

      恢复

      根据参数 的指定方式,你可以使用 URL 或命令行参数进行恢复。

      • 在 URL 参数中指定 account-name

        1. tiup br restore db --db test -u 127.0.0.1:2379 -s 'azure://test/t1?account-name=devstoreaccount1'
      • 在命令行参数中指定 account-name

        1. tiup br restore db --db test -u 127.0.0.1:2379 -s 'azure://test/t1?' --azblob.account-name=devstoreaccount1

      方法二:使用访问密钥备份恢复(简易)

      与使用 Azure AD 备份恢复相比,使用访问密钥备份和恢复更加简单,无需配置环境变量。其他步骤与使用 Azure AD 备份恢复相同。

      备份

      • 在 URL 参数中指定 account-nameaccount-keyaccess-tier

      • 在命令行参数中指定 account-nameaccount-keyaccess-tier

        1. tiup br backup db --db test -u 127.0.0.1:2379 -s 'azure://test/t1?' --azblob.account-name=devstoreaccount1 --azblob.account-key=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw== --azblob.access-tier=Cool

      恢复

      • 在 URL 参数中指定 account-nameaccount-key

        1. tiup br restore db --db test -u 127.0.0.1:2379 -s 'azure://test/t1?account-name=devstoreaccount1&account-key=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=='
      • 在命令行参数中指定 account-nameaccount-key

      该功能仅兼容 TiDB v5.4.0 及后续的版本。