最佳实践 -SQL Server -使用SSMS和BCP迁移SQL Server数据库-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

最佳实践 -SQL Server -使用SSMS和BCP迁移SQL Server数据库

梨好橙 2018-09-11 23:11:58 984

本文以本地SQL Server数据库到阿里云云数据库SQL Server 2012的数据全量迁移为例,介绍了如何通过使用SQL Server Management Studio(SSMS)和大容量复制程序实用工具(BCP)来迁移SQL Server数据库。

适用场景


  • SQL Server数据库的结构迁移。

  • 数据的全量迁移,不支持数据的增量迁移。

  • 本地数据库到本地数据库、本地数据库到阿里云云数据库SQL Server和阿里云云数据库SQL Server间的数据全量迁移。


背景信息


SSMS 是用于管理SQL Server基础架构的集成环境,提供用于配置、监视和管理SQL Server实例的工具。 此外,它还提供了用于部署、监视和升级数据层组件(如应用程序使用的数据库和数据仓库)的工具以生成查询和脚本。
BCP 可以在SQL Server实例和用户指定格式的数据文件间大容量复制数据,您可以通过BCP实用工具将大量新行导入SQL Server表,或将表数据导出到数据文件。
所以,本文直接使用SSMS的功能来生成源端数据库对象结构的创建脚本,然后在目标数据库中去执行,进行数据库结构的迁移;再配合使用BCP命令行来进行数据库数据的导出和导入操作,进行数据的全量迁移。下面将介绍如何将本地SQL Server 2012数据库AdventureWorks2012的数据全量迁移到阿里云云数据库SQL Server 2012。

前提条件


目标数据库主机需要有充足的存储空间来存放导入的数据和因此而带来的日志文件增长,两者加起来的空间增长大概是源端数据库大小的2-3倍(如果数据库是Full模式)。如果目标数据库是在本地自建环境,请确保宿主机有足够的存储空间;如果是阿里云云数据库SQL Server,请确保已经购买了充足的存储空间。

注意事项


  • 在创建目标数据库时,要确保目标数据库和源端数据库排序规则的一致性,否则很可能会导致全量数据迁移失败。

  • 为防止数据全量迁移过程报错,需要在目标数据库中禁用外键、索引和触发器,然后再启用,以此来避免错误发生和提高数据导入效率。

  • BCP导入计算列或时间戳(timestamp)列时,会忽略它们的列值,SQL Server将自动分配该列的值。
SQL Server使用数据 SQL Server数据库迁移 SQL Server数据迁移 数据迁移最佳实践 SQL Server最佳实践使用
分享到
取消 提交回答
全部回答(0)
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

相似问题
最新问题
推荐课程