DBA 日常——MSSQL 跨实例迁移数据库
作为一个 ***Ops,DBA 也是工作的一部分。其中一个必备技能就是从一个数据库实例,复制特定的表结构和其中内容到另外一个数据库实例。例如,从生产环境复制一个表到开发环境做测试或者问题验证。我这次做这个操作是因为 MSSQL 版本升级,SQL Server Express Edition 升级到 SQL Server Web Edition。
MSSQL 提供了很多方法方式来处理表结构和数据的复制。这次主要介绍 MSSQL 的导入导出功能来复制表结构和数据。
导入导出
我们选择从源导出,或者选择从目标导入,来完成数的复制操作。
在 SQL Server 管理器,我的操作是选择了从源导出。
在 SQL Server Management Studio,选择要导出的数据库,然后选择 Tasks, 再选择 Export Data...,如下图:
在选择数据源向导页的 Data source:Microsoft OLE DB Driver for SQL Server,然后选择要导出的数据源的服务器名字,选择认证方式,最后选择数据库,再点击下一步,如下图:
在选择目标向导页,指定需要导入的服务器名字,然后选择认证方式,最后选择数据库,再点击下一步,如下图:
在指定表复制或查询向导页,选择从一个或多个表或视图,再点击下一步,如下图:
在选择源表和试图向导页,选择需要复制的表或试图,再点击下一步,如下图:
为了确保可以成功的在目标数据库创建表,可以点击上一步骤的编辑映射按钮,确定映射关系。我这里并没有这一步骤的操作,所以没有截图,也不准备去盗图。
在并保存和运行向导页,点击下一步,如下图:
在完成向导页,点击完成,没有截图,这一步骤主要是一些输出信息,包括哪些表将会被创建。
一旦只从成功,就可以看下数据传输的界面,这里能够看出数据传输的数量。最后完成后没有报错,那就恭喜你和我一样,成功了,如下图
总结
这个方法可以快速的将我们需要的表以及数据从源复制到目的地,只要无脑操作就可以了。
这个方法也并不万能,表的索引和主键并没有帮我们一块"舶来"。需要我们自己用通过脚本创建索引和主键。
如果有外键关联关系的表,我们还是需要一点小操作,那就是按正确的顺序导出数据,否则导出向导将失败。
张开今日的双眼,翻开今日的美妙
DevOps思维
About Me
分享从零 DevOps 思维变迁
总结从零 DevOps 经验教训
介绍从零 DevOps 工具
贡献/转载从零 DevOps 案例
DevOps: BizDevOps, DevSecOps, DevDataOps, GitOps