在这一系列的文章中,我们将学习如何使用SSDT 2017克隆SQL服务器实例。在我之前的文章中,我们学习了如何在Windows 10上安装和配置SSDT 2017。在这一系列文章中,我们将使用SSDT 2017中提供的SSIS工具将以下SQL Server组件迁移到另一台服务器。
- SQL服务器工作
- 主数据库的存储过程
- 转移日志
- 转移错误信息
这篇文章涵盖了将SQL Jobs转移到另一个实例的过程。
环境设置
为了演示,我在工作站上安装了SQL Server 2019。我已经在SQL Server上创建了两个实例。我已经恢复了以下数据库。
- Wideworld Importers数据库
- Wideworld DW数据库
- Stackoverflow 2010数据库
源实例是Nisarg-PC\SQL01,目标实例是Nisarg-PC\SQL02。在Nisarg-PC\SQL01(源实例)上创建了以下作业。
- Diff Backup_User_Database
- 用户数据库完全备份
- 日志备份_User_Database
- 重建索引_用户数据库
- 更新统计_用户数据库
你可以通过执行下面的查询来查看带有时间表的作业列表。
选择 @@SERVERNAME 主机名。 jobs.name job_name ,jobs.enabled job_enabled ,syssch.name schedule_name ,syssch.schedule_id ,syssch.enabled schedule_enabled from msdb.dbo.sysjobs jobs inner join msdb.dbo.sysjobschedules schedule on jobs.job_id = schedule.job_id inner join msdb.dbo.sysschedules syssch on schedule.schedule_id = syssch.schedule_id order by jobs.enabled desc |
配置转移工作任务
让我们配置转移工作任务,以便在实例之间复制SQL工作。要做到这一点,启动SQL Server数据工具🡪创建新的SSIS项目,命名为转移维护作业。
在包设计器中,拖动SQL转移作业,把它放在包设计器表面的控制流窗口中,把它重命名为转移维护作业,然后双击配置它。
一个名为转移工作任务编辑器的对话框打开。点击对话框中的 "工作 "选项。
现在,为了连接源和目的地,我们必须创建新的SQL Server连接。要做到这一点,点击SourceConnection。选择新的连接。
在SMO连接管理器编辑器的对话框中,指定以下参数。
- 服务器名称。提供源服务器的主机名。在我们的例子中,源是Nisarg-PC\SQL01
- 认证方法。提供一个用于连接到SQL服务器的认证方法。我们将使用Windows认证,所以选择 "使用Windows认证"选项
<img src="www.sqlshack.com/wp-content/…" 76949"="" alt="指定服务器名称" data-old-src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAABAAICTAEAOw==" data-src="/wp-content/uploads/2021/11/specify-servername.png" >
同样,配置目的地编辑器。SMO连接管理器编辑器中的配置参数将如下:
- 服务器名称。提供源服务器的主机名。在我们的例子中,源是Nisarg-PC\SQL02
- 认证方法。提供一个用于连接到SQL服务器的认证方法。我们将使用windows认证,所以选择"使用Windows认证"选项
连接选项看起来像以下图片:
在 "工作 "部分,我们可以设置以下选项
- TransferAllJobs:该选项用于指定你是想转移所有工作还是选定工作。如果你想转移所有工作,那么选择True。如果您想转移选定的工作,则选择False
- JobList: 当您想转移选定的工作时,该选项被使用。它显示了一个子菜单,其中有在服务器上创建的所有SQL作业。您可以从子菜单中选择一个或多个工作
在我们的案例中,我们要转移所有工作,所以在 TransferAllJobs 选项中选择 True。
<img src="www.sqlshack.com/wp-content/…" 76951"="" alt="指定工作" data-old-src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAABAAICTAEAOw==" data-src="/wp-content/uploads/2021/11/specify-jobs.png" >
在选项部分,我们可以设置以下选项。
- IfObjectExists:你可以指定转移工作任务编辑器所要执行的操作。你可以设置以下任何一个选项
- FailTask。如果目标实例上存在一个作业,该作业将失败。
- 覆盖。如果目的地存在作业,该任务将覆盖现有作业的设置。
- 跳过:如果作业存在,该任务将跳过该特定SQL作业的传输。
- EnableJobsAtDestination:一旦所有工作被复制,如果你想启用已转移的工作,请选择 "True",如果你想保持它们的禁用状态,则选择 "False"。
在我们的例子中,我们想覆盖现有的作业,所以选择覆盖,而在转移作业后,我们想启用它们,所以EnableJobsAtDestination的值是True。
转移作业任务看起来像下面的图片。
现在,当所有作业被转移时,我们应该得到通知。要做到这一点,我们必须配置通知操作员任务。让我们了解如何配置它。
配置通知操作员任务
首先,从SSIS工具箱中拖出通知操作员任务,把它放到控制流表面,把它重命名为发送电子邮件,然后双击它进行配置。
首先,我们必须配置已创建操作员的服务器之间的连接。要做到这一点,点击通知操作员任务对话框中的新建。另一个对话框 "连接属性 "就会打开。指定以下参数的适当值。
- 连接名称。指定所需的连接名称。在我们的演示中,我将其命名为SQLConnection。
- 服务器名称。指定创建SQL Server操作员的服务器名称。我已经在Nisarg-PC/SQL01中创建了一个名为DBASupport的操作员。
- 登录信息。指定验证方法。在我们的演示中,我使用了windows认证
点击 "确定",关闭对话框。
在通知信息主题文本框中指定电子邮件的主题。在我们的演示中,主题行是 SQL作业迁移的状态。
在通知信息正文中指定电子邮件正文。在我们的演示中,电子邮件正文如下。
*你好,DBASupport.,
SQL作业已经成功转移。
*
最后,通知操作员任务看起来像下面的图片。
这封邮件必须在所有作业迁移成功后发送。要做到这一点,我们必须用一个连接器来连接这两个任务。该包看起来如下。
转移作业任务已经配置成功了。
总结
在本系列的第一篇文章中,我们了解了转移作业任务。我已经解释了我们如何配置它来使用SQL Server数据工具在两个SQL Server实例之间转移作业。(SSDT 2017)在下一篇文章中,我们将学习转移登录任务,并在SSDT 2017中创建一个包,在SQL Server的两个实例之间迁移登录。
目录
Nisarg Upadhyay是一名SQL Server数据库管理员和微软认证的专业人士,拥有超过8年的SQL Server管理经验和2年的Oracle 10g数据库管理经验。
他在数据库设计、性能调整、备份和恢复、HA和DR设置、数据库迁移和升级方面有专业的知识。他已经完成了Ganpat大学的技术学士学位。您可以通过nisargupadhyay87@outlook.com与他联系。
