我有SSIS包,执行几分钟。它将数据复制到我的PROD数据库。包从Sql Server Job启动。我想在执行包时让我的网站脱机。如何在执行前关闭我的网站,然后自动将其打开?
我使用的是Sql Server 2008和IIS6。
由于
答案 0 :(得分:2)
这是一个可能的选择:
<强> Within the SSIS package
强>:
使用以下命令创建名为 StopWebsite.bat 的批处理文件:
iisreset /stop computername
使用以下命令创建另一个名为 StartWebsite.bat 的批处理文件:
iisreset /start computername
在SSIS包中,在“控制流”选项卡中放置执行流程任务。从Execute Process任务中调用第一个批处理文件 StopWebsite.bat 。这将停止Internet信息服务(IIS)。
在第一个执行流程任务之后放置所有其他任务。
完成“控制流”选项卡中的所有其他任务后,再放置另一个执行流程任务。调用第二个批处理文件 StartWebsite.bat 。这将启动IIS。
请注意,您需要将批处理文件放在SSIS包可以从生产环境访问它们的位置。
<强> Within the SQL Server job
强>:
如果您不想在SSIS包中执行此操作。您需要在SQL Server作业中执行三个步骤。
步骤1 将执行命令iisreset /stop computername
作为操作系统(CmdExec)
第2步会调用SSIS包。
步骤3 将执行命令iisreset /start computername
作为操作系统(CmdExec)
如果遇到权限问题,请确保正在执行步骤的帐户(通常是 SQL Server代理帐户)具有在远程服务器上重新启动IIS的权限。您还可以尝试使用可以使用域帐户凭据的代理帐户,在following link屏幕截图中 8 - 14 说明如何创建代理工作类型帐户 SSIS包执行。您可能需要在操作系统(CmdExec)作业类型上执行类似操作。 How do I create a step in my SQL Server Agent Job which will run my SSIS package?
将computername
替换为您网站所在机器的实际计算机名称或IP地址。
我想说选项#2更容易维护。
希望有所帮助。