vlambda博客
学习文章列表

DBA 日常——MSSQL 跨实例迁移数据库

作为一个 ***OpsDBA 也是工作的一部分。其中一个必备技能就是从一个数据库实例,复制特定的表结构和其中内容到另外一个数据库实例。例如,从生产环境复制一个表到开发环境做测试或者问题验证。我这次做这个操作是因为 MSSQL 版本升级,SQL Server Express Edition 升级到 SQL Server Web Edition

MSSQL 提供了很多方法方式来处理表结构和数据的复制。这次主要介绍 MSSQL 的导入导出功能来复制表结构和数据。

导入导出

我们选择从源导出,或者选择从目标导入,来完成数的复制操作。

在 SQL Server 管理器,我的操作是选择了从源导出。

  1. 在 SQL Server Management Studio,选择要导出的数据库,然后选择 Tasks, 再选择 Export Data...,如下图:

DBA 日常——MSSQL 跨实例迁移数据库

  1. 在选择数据源向导页的 Data source:Microsoft OLE DB Driver for SQL Server,然后选择要导出的数据源的服务器名字,选择认证方式,最后选择数据库,再点击下一步,如下图:

DBA 日常——MSSQL 跨实例迁移数据库

  1. 在选择目标向导页,指定需要导入的服务器名字,然后选择认证方式,最后选择数据库,再点击下一步,如下图:

DBA 日常——MSSQL 跨实例迁移数据库

  1. 在指定表复制或查询向导页,选择从一个或多个表或视图,再点击下一步,如下图:

DBA 日常——MSSQL 跨实例迁移数据库

  1. 在选择源表和试图向导页,选择需要复制的表或试图,再点击下一步,如下图:

DBA 日常——MSSQL 跨实例迁移数据库

  1. 为了确保可以成功的在目标数据库创建表,可以点击上一步骤的编辑映射按钮,确定映射关系。我这里并没有这一步骤的操作,所以没有截图,也不准备去盗图。

  2. 在并保存和运行向导页,点击下一步,如下图:

DBA 日常——MSSQL 跨实例迁移数据库

  1. 在完成向导页,点击完成,没有截图,这一步骤主要是一些输出信息,包括哪些表将会被创建。

  2. 一旦只从成功,就可以看下数据传输的界面,这里能够看出数据传输的数量。最后完成后没有报错,那就恭喜你和我一样,成功了,如下图

DBA 日常——MSSQL 跨实例迁移数据库

DBA 日常——MSSQL 跨实例迁移数据库

总结

这个方法可以快速的将我们需要的表以及数据从源复制到目的地,只要无脑操作就可以了。

这个方法也并不万能,表的索引和主键并没有帮我们一块"舶来"。需要我们自己用通过脚本创建索引和主键。

如果有外键关联关系的表,我们还是需要一点小操作,那就是按正确的顺序导出数据,否则导出向导将失败。


张开今日的双眼,翻开今日的美妙




DevOps思维

About Me

分享从零 DevOps 思维变迁

总结从零 DevOps 经验教训

介绍从零 DevOps 工具

贡献/转载从零 DevOps 案例

DevOps: BizDevOps, DevSecOps, DevDataOps, GitOps