将大型 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 文件