【发布时间】:2021-08-22 03:23:25
【问题描述】:
我有两个 Azure SQL 数据库作为 Prod & Testing。两者都可在不同地区使用。我想每天晚上将一个数据库从 Prod 复制到 Testing。使用 Azure 自动化可以做到这一点吗?
【问题讨论】:
标签: azure-devops azure-sql-database azure-automation
我有两个 Azure SQL 数据库作为 Prod & Testing。两者都可在不同地区使用。我想每天晚上将一个数据库从 Prod 复制到 Testing。使用 Azure 自动化可以做到这一点吗?
【问题讨论】:
标签: azure-devops azure-sql-database azure-automation
您需要按照以下步骤操作。Reference link
"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
您可以使用 azure 自动化来完成这些工作。
还有一个quick reference for Azure automation steps for exporting bacpac to Azure blob storage
【讨论】:
对于您的问题,“使用 Azure 自动化是否可以做到这一点”,是的。
现在有多种方法可以实现这一点。
BACPAC 路线:@Venkataraman R 的回答绝对正确,但您应该记住这一点。
如果您的数据库很大(大约 150+ GB)并且您有很多 大表中的索引,那么这种方法可以解决 1.5 到 2 小时。
另外,您需要事先创建一个空白数据库。 BACPAC 如果它还没有,restore 命令会为你创建 Db,但是 那么它的最大大小上限为 32 GB。如果你的数据库更大,那么 您需要事先创建它。
这种方法的一大优点是您甚至可以在 on-prim 上复制您的数据库 机器。
在 Azure 自动化中使用 PowerShell New-AzSqlDatabaseCopy cmdlet:
解释了here。对于更大的数据库,与 BACPAC 相比,此方法所需的时间要少得多。
【讨论】: