如何在SSDT 2017中配置传输数据库任务

1,074 阅读5分钟

这篇文章解释了SSDT 2017中的转移数据库任务。阅读本文后,你将能够在同一服务器或不同服务器之间转移数据库。

环境设置和用例

我在工作站上创建了两个不同的名为SQL Server 2019的实例。SQL01实例是源实例,因为我们要复制在SQL01上创建的数据库。SQL02是一个目标实例。我已经在SQL01上恢复了一个名为StackOverFlow2010的数据库。我们正在把它从源服务器复制到目标服务器。数据库复制过程将是离线的。

配置集成服务包

我已经在我的工作站上下载了SSDT 2017(SQL Server data tools for visual studio 2017)。我已经写了一篇单独的文章,解释了SSDT 2017的安装过程。SQL Server数据工具有各种集成服务工具,可以用来执行各种任务。我们可以配置SSIS包来执行ETL过程和数据库维护活动。

首先,让我们创建一个SSIS包。启动SSDT 2017并创建一个新的集成服务项目。项目名称为CopyStackOverflow2010

New SSIS project in SSDT 2017

在SSIS包设计器上,拖动转移数据库任务并将其放在控制流设计器上,并将其重命名为Copy Stackoverflow2010。

SSDT 2017 Control Flow

配置传输数据库任务

我们已经在控制流设计器上添加了名为Copy StackOverFlow2010的转移数据库任务。双击来配置它。我们可以在任务编辑器中的数据库页面配置参数,所以选择它。在数据库页面,配置参数如下。

源连接。

要配置源连接,点击SourceConnection下拉框,选择New Connection。一个SMO连接管理器编辑器打开。在服务器名称文本框中,指定源服务器的主机名,即Nisarg-PC\SQL01。选择Windows认证作为登录方式。

Source Connection

行动

选择你想使用转移数据库任务执行的操作。我们可以使用传输数据库任务移动或复制数据库。在我们的演示中,我们要复制Stackoverflow数据库,因此选择复制。

方法

选择你想在传输数据库时使用的方法。如果你想在数据库在线时传输它,那么选择DatabaseOnline选项。如果你想通过离线设置来复制/移动数据库,选择DatabaseOffline。我们想用DatabaseOffline方法传输数据库,所以选择DatabaseOffline。

源数据库名称

指定源数据库的名称。在这个演示中,源数据库是Stackoverflow2010。

源数据库文件

指定源数据库文件。我们可以通过点击气球图标(...)来填充源数据库文件的列表。当你点击它时,会打开另一个对话框,里面有一个文件列表和它们的路径。在网络文件共享中,提供源数据库的数据文件所在的路径。

Source database files

点击确定,在源数据库文件文本框中加载文件列表。

目标数据库名称

指定目标数据库名称的名称。在这个演示中,目标数据库是Stackoverflow2010_Copy。

目的地连接

要配置目标连接,点击DestinationConnection下拉框,选择New Connection。一个SMO连接管理器编辑器打开。在服务器名称文本框中,指定目标服务器的主机名,即Nisarg-PC\SQL02。选择Windows认证作为登录方法。

Destination connection

目标数据库文件

指定目标数据库的文件名。这个选项在源数据库文件配置好后启用。一旦源数据库配置完毕,点击气球图标。一个对话框打开。我们要把文件复制到D:\Stackoverflow_Copy 目录;因此,在目标文件夹中指定它。确保源文件名和目标文件名是一样的。

Graphical user interface, text, application
Description automatically generated

引爆重写

这个选项用于目标服务器上已经存在的数据库。如果你想覆盖目的地数据库的数据,将该值设置为 "真";否则将该值设置为 "假"。在这个演示中,目标数据库并不存在,所以我选择了False。

重新连接源数据库

这个选项是在任务执行失败时使用的。当你设置该选项为True时,任务将重新连接数据库文件。在我们的演示中,选择True。

数据库配置看起来像下面的截图。

Graphical user interface

点击 "确定 "保存配置并关闭任务编辑器。

执行软件包

包已经被创建;现在是测试转移数据库任务的时候了。要做到这一点,点击菜单栏中的Execute按钮。

Run package

包的执行开始了。

Control Flow window of SSDT 2017

一旦软件包执行成功,你可以查看D:\Stackoverflow_Copy位置的数据库文件。

Database files are copied

同时,你可以验证名为Stackoverflow2010_new的数据库已经使用复制到SQL02服务器的数据库文件创建。要查看数据库文件,请连接到SQL02实例并运行以下查询。

use Stackoverflow2010_Copy
go
select name,type_desc,physical_name,state_desc from sys.database_files

Database Files

正如你所看到的,数据库 stackoverflow2010_new 已经被创建。

总结

在这篇文章中,我们学习了如何使用转移数据库任务来在两个SQL Server实例之间复制整个数据库。在下一篇文章中,我们将学习如何在两个数据库之间复制特定对象。请继续关注。