【问题标题】:How do i backup of Azure SQL database from one to another?如何将 Azure SQL 数据库从一个备份到另一个?
【发布时间】:2021-08-22 03:23:25
【问题描述】:

我有两个 Azure SQL 数据库作为 Prod & Testing。两者都可在不同地区使用。我想每天晚上将一个数据库从 Prod 复制到 Testing。使用 Azure 自动化可以做到这一点吗?

【问题讨论】:

    标签: azure-devops azure-sql-database azure-automation


    【解决方案1】:

    您需要按照以下步骤操作。Reference link

    1. 获取 PROD 数据库的 BACPAC 并放入 Azure 存储 blob。
    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Export /ssn:"azure_db_server" /sdn:"azure_db_name" /su:"user_name" /sp:"password" /tf:"file.bacpac"
    
    1. 将 BACPAC 从第 1 步恢复到测试环境。
    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS"  /TargetDatabaseName:CopyOfAzureDb
    

    您可以使用 azure 自动化来完成这些工作。

    还有一个quick reference for Azure automation steps for exporting bacpac to Azure blob storage

    【讨论】:

    • 感谢您的快速回复。我也在寻找自动化来做这个活动。但是这个 azure 自动化模板只是将备份备份到 Blob 存储。但我应该从 Prod 备份到测试 Azure SQL 数据库服务器。
    • @LakshminarayananS,您需要将 PROD bacpac 作为中间步骤放入 Azure 存储 blob,然后从那里导入您的测试环境。您只需要通过这些步骤创建 Runbook。
    【解决方案2】:

    对于您的问题,“使用 Azure 自动化是否可以做到这一点”,是的。

    现在有多种方法可以实现这一点。

    BACPAC 路线:@Venkataraman R 的回答绝对正确,但您应该记住这一点。

    1. 如果您的数据库很大(大约 150+ GB)并且您有很多 大表中的索引,那么这种方法可以解决 1.5 到 2 小时。

    2. 另外,您需要事先创建一个空白数据库。 BACPAC 如果它还没有,restore 命令会为你创建 Db,但是 那么它的最大大小上限为 32 GB。如果你的数据库更大,那么 您需要事先创建它。

    3. 这种方法的一大优点是您甚至可以在 on-prim 上复制您的数据库 机器。

    在 Azure 自动化中使用 PowerShell New-AzSqlDatabaseCopy cmdlet:

    解释了here。对于更大的数据库,与 BACPAC 相比,此方法所需的时间要少得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多