将大型 SQL 托管实例还原到本地

Posted

技术标签:

【中文标题】将大型 SQL 托管实例还原到本地【英文标题】:Restore a large SQL Managed Instance to On Premise 【发布时间】:2019-08-31 03:29:24 【问题描述】:

我们正在尝试将大型 SQL 托管实例数据库恢复到运行 SQL Server 2016 的本地。我们尝试了 SQL 导出转储,因为数据库很大,需要很长时间才能完成。

是否有其他方法可以将 SQL 托管实例数据库复制到运行 SQL Server 2016 的本地服务器。

【问题讨论】:

【参考方案1】:

好问题。我确信有更好的方法可以做到这一点,但到目前为止我做到这一点的唯一方法是 a) 将表选择到一个或多个单独的数据库中(因此没有索引等) b) 将数据层应用程序导出为 bacpac。 c) 将数据层应用程序(必须是 Management Studio 18)导入 SQL 2016。如果有多个数据库,请再次选择 * 。 d) 添加用户,然后添加所有索引和主键。我们很幸运,因为我们在数据库项目中定义了我们的数据库,所以我们可以应用它。

【讨论】:

【参考方案2】:

您可以尝试在同一区域拥有一个功能强大的虚拟机来加速此过程,或者作为替代方案,您可以生成数据库架构并将 BCP 实用程序用于大表。

【讨论】:

【参考方案3】:

在同一区域托管的 Azure VM 中使用 sqlpackage.exe。我用这个做一个 10GB 的数据库,用了 120 分钟完成了导出再导入的任务。

SQLpackage

【讨论】:

以上是关于将大型 SQL 托管实例还原到本地的主要内容,如果未能解决你的问题,请参考以下文章

通过 PowerShell 从本地 SQL Server 2016 将 dacpac 发布到 Azure SQL 托管实例失败“无法发布到 SQL Server 2014”

Python:将大型 SQL Server 查询结果导出到 .txt 文件

使用 map reduce 将数据从大型 csv 文件加载到 sql server

将sql转储恢复到RDS的最快方法

托管 BigQuery 实例

ec2将实例从中型升级到大型,我的临时存储会发生啥