【发布时间】:2014-01-07 08:42:10
【问题描述】:
我正在继承 SQL Server 2008 R2 数据库而没有任何形式的可用文档。数据库“可能”加载了来自 SSIS 包的数据,我正在尝试寻找这个包。
是否有一个我可以对数据库运行的 T-SQL 命令,它会显示数据库上次加载数据的时间以及数据的来源?
【问题讨论】:
标签: sql-server ssis sql-server-2008-r2
我正在继承 SQL Server 2008 R2 数据库而没有任何形式的可用文档。数据库“可能”加载了来自 SSIS 包的数据,我正在尝试寻找这个包。
是否有一个我可以对数据库运行的 T-SQL 命令,它会显示数据库上次加载数据的时间以及数据的来源?
【问题讨论】:
标签: sql-server ssis sql-server-2008-r2
恭喜。好吧,不是真的,但欢迎你有新的机会学习很多新东西。我记得关于 ServerFault 的一个类似问题 - 10 servers to administer and I'm a history major
sp_blitz 如果您对维护 SQL Server 一无所知,请从这里开始。他们提供了一个方便的脚本,您可以在服务器上运行,并就该脚本的结果提供培训和建议。他们也很乐意提供一些很棒的咨询服务。 StackExchange 网络使用 Brent Ozar Unlimited,因此请记住这一点。不管怎样,这个存储过程会告诉你继承服务器后你需要知道的大部分事情(备份最后一次运行是什么时候,那里有没有触发器,这东西里装了多少愚蠢的东西)
李>打开 SQL Server Management Studio,连接到实例并查看 SQL 代理。将您在那里看到的每个作业加倍,并查看所有作业步骤。这将使您有机会查看计划以什么间隔运行的内容。您还需要查看 Windows 计划程序(控制面板\所有控制面板项\管理工具\任务计划程序)%windir%\system32\taskschd.msc /s 对于 SQL 代理,您需要留意“SQL Server 集成服务”类型的作业子系统.您还应该注意任何操作系统命令,因为您可能还会看到对dtexec.exe 的引用,这是使 SSIS 包“运行”的可执行文件。如果是任务调度程序,那么您将寻找 dtexec 调用(并希望它没有包含在像 ImportData.bat 这样的模糊的 .bat 文件中)。还要询问您的组织是否使用不同的调度工具。几个工作之前,我们使用 Tidal 效果很好。无论如何,您可以在这里确定定期执行的操作。
查找包。包将在数据库或文件系统中。数据库更容易,因为它们将存储在 msdb.dbo.sysssispackages 中,用于 2008、2008 R2 和 2012 包部署模型项目。对于 2005,请查看 msdb.dbo.sysdtspackages90。我有一个方便的查询可以在SSIS Package Query 上提取这些信息。如果它在文件系统上,那么你可以祈祷它在本地盒子上,搜索所有以.dtsx 结尾的文件会对你有所帮助。但是,由于您可以引用网络文件共享上的包,因此会很快变得丑陋。找到它们后,您将需要 Business Intelligence Designer Studio,BIDS,它是 Visual Studio 的自定义外壳。由于这是 SQL Server 2008(和 R2),因此您必须运行 Visual Studio 2008 shell。在 SQL Server 2012 版本之前,该团队一直与相应的 VS 安装相关联。找到 SQL Server 安装媒体并从那里执行安装。
要专门解决“我可以对数据库运行一个 T-SQL 命令,然后它会显示数据库上次加载数据的时间以及该数据的来源?”不,就这么简单。如果您有优秀的设计人员,您的表可能具有反映操作发生时间的插入和修改日期。
还有什么可以将数据输入您的系统?一切。那里可能有 .NET 服务,可以是 Web 或 Windows 推送数据。这可能是基于 WMI 的触发事件,例如等待删除最新数据文件的文件观察程序。等等等等。
【讨论】: