使用 SQL Server 2005(和 2008)
使用 DTS 包,我可以打开它,它会列出上次修改包的日期。我有一些 SSIS 包,我需要知道自上次发布以来它们是否被修改过。有没有办法知道它们上次修改的时间?
如果我右键单击,唯一看起来很有希望的选项是“报告”,但唯一的选项是包含包创建日期和一些版本信息的一般报告。我已经知道程序员没有更改任何版本默认值,所以那里没有有用的信息。
我想要上次修改日期或上次导入日期,或者让我知道是否需要担心自上次发布以来其中一些被修改的日期。
编辑:该文件存储在 MSDB 中。
背景:我们公司托管 SaaS DSS 应用程序,客户每天和/或每周向我们提供数据,我们对这些数据进行处理并合并到他们现有的数据库中。在工作时间内,服务器中的负载非常小,因为大多数用户通过网站运行简单的预定义查询,或者运行主要访问 SSAS OLAP 多维数据集的钻取报告。
我管理 IT 运营团队,到目前为止,这给我们带来了一个有趣的“扩展”问题。对于我们每日刷新的客户端来说,服务器仅在晚上“忙碌”约 4-6 小时。对于我们每周刷新的客户来说,服务器每周“繁忙”的时间可能只有 8-10 个小时!
我们已尽力使用一些简单的方法来分配负载,将日常客户端均匀分布在服务器之间,这样我们就不会尝试在夜间连续处理日常客户端。但从长远来看,这种扩展策略会带来两个值得注意的问题。首先,它将消耗大量长时间闲置的硬件。其次,需要大量的生产支持开销来基本上“调度”ETL,以便它们不会重叠,并且在客户端/调度超出特定服务器上的资源或分配的时隙时移动客户端/调度。
正如标题所暗示的,我们尝试过的一个选项是并行运行多个 SSIS 包,但在大多数情况下,这会产生非常不一致的结果。最常见的故障是 DTExec、SQL 和 SSAS 争夺物理内存并引发内存不足错误,以及 ETL 的运行时间比预期长 3、4、5 倍。因此,从我迄今为止的实践经验来看,在同一硬件上运行多个 ETL 包似乎不是一个好主意,但我不能成为第一个不想围绕手动调度和顺序扩展多个 ETL 的人加工。
我们考虑过的一种选择是虚拟化服务器,这显然不会为您提供任何额外的资源,而是将资源争用转移到虚拟机管理程序上,(根据我的经验)管理程序似乎可以同时管理 CPU/RAM/磁盘 I/O这比让 DTExec、SQL 和 SSAS 在 Windows 中展开竞争更加优雅。
向论坛提出的问题:所以我向论坛提出的问题是,我们是否在这里遗漏了一些明显的东西?是否有工具可以帮助管理在同一硬件上运行多个 SSIS 包?如果我们不是在同一台机器上运行 DTExec、SQL 和 SSAS(每台机器都运行该配置),而是在三台机器上运行,SSIS 在一台机器上运行,SQL 在另一台机器上运行,那么在并行执行方面会更“高效”吗? ,第三个是 SSAS?显然,只有当我们能够处理超过我们能够在机器上独立处理的三个 ETL 时,这才有意义。
我们考虑的另一种选择是完全重新构建我们的 SSIS 包,为所有客户端提供一个“主”包,尝试根据服务器在 CPU/内存/磁盘利用率方面的“繁忙”程度智能地选择服务器,但这将是一项艰巨的努力,而且我们似乎正在尝试重新发明一些你认为有人会出售的东西(尽管我没有运气找到它)。
总而言之,我们是否缺少一个明显的解决方案,是否有人知道是否有任何工具(免费或购买,无关紧要)可以促进在多个服务器上并行运行多个 SSIS ETL 包?(我称之为“基于队列和节点”的系统,但这不是官方术语)。最终,VMWare 的分布式资源调度程序解决了这个问题,因为您只需在每个虚拟机上运行一致数量的客户端,您知道这些客户端永远不会在调度方面发生冲突,然后由 VMWare 来移动虚拟机以平衡硬件使用。我绝对不反对使用 VMWare 来执行此操作,但由于我们是 100% Microsoft 应用程序堆栈,似乎有人会通过检查资源在应用程序层而不是虚拟机管理程序层解决此问题操作系统、SQL、SSAS 级别的利用率。
我愿意接受任何有关此问题的讨论,并记住没有任何建议是太疯狂或激进的!:-) 目前,VMWare 是我们发现的摆脱“手动”平衡资源的唯一选择,因此任何能让我们继续使用纯 Microsoft 堆栈的建议都很棒。
多谢你们,
我有一个由 10 个步骤组成的 SQL Server 代理作业,每个步骤都定义了许多参数。现在我需要另一份几乎完全相同的工作,但有一些不同。由于“复制/粘贴”不是工作的选项,我正在寻找关于什么是基于第一个创建新工作的最佳方式的建议。
编辑:我刚刚注意到我可以右键单击并“将作业编写为脚本”。我想一种选择就是这样做并为我的更改编辑脚本。我仍然很好奇是否还有其他(更好的?)选择。
我有一个在 Windows Server 上运行的生产 SQL Server 2008,我在我的笔记本电脑上进行测试和开发。我的笔记本电脑运行的是 Win XP 和 SQL Server Express 2008。除了拥有 SQL Server Express 之外,我还想在我的笔记本电脑上从完整的 SQL 服务器安装 SSIS。我意识到 SSIS 没有随 SQL Server Express 一起提供。但它确实与我拥有的 SQL Server 2008 一起提供。我想在我的笔记本电脑上安装 SSIS 2008 和 SQL Server Express,以便在本地构建我的 ETL 例程,然后稍后将它们部署到我的生产服务器。
我不知道如何使用 SQL Server 2008 安装媒体(澄清:不是 SQL Server Express 媒体)在我的笔记本电脑上安装 ONLY SSIS。当我进入 SQL Server Complete 安装中的“功能选择”步骤时,安装“数据库引擎服务”和“SQL Server 复制”的选项已选中但呈灰色,因此我无法取消选中它们。
如何在笔记本电脑上仅安装 SSIS?
一个相关的问题是“是否可以在没有安装任何版本的 SQL Server DB 的计算机上安装 SSIS?” 我觉得很多人认为 SSIS 是 SQL Server 的“一部分”,但它是一个独立的应用程序,可以连接到任何机器上的任何 SQL Server。为什么需要在我的笔记本电脑上安装 SQL Server 才能在我的服务器上执行 ETL?
我只是在想这个错误吗?
在运行 Windows Server 2012 R2 Datacenter 的服务器上,我使用非常典型的安装方式安装了 MS SQL Server 2014。在 Windows 7 客户端上,我安装了 SQL Server Management Studio 2016。我能够使用 SSMS 很好地连接到我的 SQL Server(作为数据库引擎)。但是,当我尝试使用 SSMS 连接到完全相同的服务器主机上的集成服务时,如下所示:
我收到此错误:
我不相信我安装了 SQL Server 2005 集成服务,因为我进行了开箱即用的 SQL Server 2014 安装,我希望(至少希望)集成服务匹配。
但是,我能够很好地部署 SSIS 包并使用来自集成服务目录的 SSMS 运行它们。我只在尝试直接登录到 Integration Services 或访问 SSIS 包存储时遇到问题。
SQL Server 的版本是 12.0.4459.0(这也是我的 Integration Services 服务 MsDtsSrvr.exe 的版本)。
我该如何解决?