Azure devops 如何将Azure SQL数据库从一个备份到另一个?

Azure devops 如何将Azure SQL数据库从一个备份到另一个?,azure-devops,azure-sql-database,azure-automation,Azure Devops,Azure Sql Database,Azure Automation,我有两个Azure SQL数据库作为Prod和Testing。这两种产品都在不同的地区提供。我想每天晚上从Prod复制一个数据库到Testing。使用Azure Automation可以做到这一点吗?您需要遵循以下步骤 获取PROD数据库的BACPAC并放入Azure存储blob 将BACPAC从步骤1恢复到测试环境 您可以使用azure自动化来完成这些操作 对于您的问题,还有一个“使用Azure Automation是否可以做到这一点”,是的 现在可以有多种方法来实现这一点 BACPAC路线:

我有两个Azure SQL数据库作为Prod和Testing。这两种产品都在不同的地区提供。我想每天晚上从Prod复制一个数据库到Testing。使用Azure Automation可以做到这一点吗?

您需要遵循以下步骤

  • 获取PROD数据库的BACPAC并放入Azure存储blob
  • 将BACPAC从步骤1恢复到测试环境
  • 您可以使用azure自动化来完成这些操作

    对于您的问题,还有一个

    “使用Azure Automation是否可以做到这一点”,是的

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

    BACPAC路线:由@Venkataraman R给出的答案绝对正确,但您应该记住这一点

  • 如果你的数据库大小很大(大约150+GB),你有很多 在您的大表中创建索引,那么这个方法可以 1.5至2小时

  • 此外,您还需要先创建一个空白数据库。BACPAC restore命令不为您创建数据库,如果它还不存在,但是 然后它的最大大小是32 GB。如果你的DB更大的话 你需要在手之前创建它

  • 这种方法的一大优点是,即使在prim上也可以复制数据库 机器

  • 在Azure Automation中使用PowerShell New-AzSqlDatabaseCopy cmdlet:


    解释道。对于较大的数据库,与BACPAC相比,此方法所需时间非常少。

    感谢您的快速响应。我也在寻找自动化来做这个活动。但是这个azure自动化模板只是简单地备份到Blob存储。但是我应该从Prod备份到测试Azure SQL数据库服务器。@LakshminarayananS,您需要将Prod bacpac作为中间步骤放在Azure存储blob中,然后从那里导入到您的测试环境。您只需要使用这些步骤创建runbook。
    "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"
    
    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS"  /TargetDatabaseName:CopyOfAzureDb