数据库依赖跟踪工具的使用与重要性

随着数据库用户基础的不断扩大,数据库部署的规模也随之增长。SQL Server2005的升级带来了更多的功能和可扩展性,这导致越来越多的大型公司在整个组织中部署数据库平台。

数据库部署规模的扩大通常意味着更多的人将参与到数据库的操作中。人的增加也带来了人为错误,因此扩大安装规模往往伴随着计划外(且非预期的)依赖影响、崩溃和随之而来的停机时间的可能性。

根据《软件开发时报》(2006年3月)的一项调查,超过一半的变更管理过程中,分析对象依赖关系以及架构变更可能产生的连锁反应的任务是手工进行的,而且是临时性的。超过20%的受访者表示他们依赖于编写数据库的人的个人记忆。

那么,有哪些系统和工具可以提供清晰度、信心和保障,以抵御人员变动或结构重组的影响呢?

SQL Dependency Tracker

Red Gate Software(SQL Compare等工具的制造商)开发的SQL Dependency Tracker使任何人都能够查看和理解数据库及其依赖关系的清晰地图,跨越链接的数据库甚至其他服务器。

使用专有引擎(完全独立于sysdepends表)并提供可重新配置的布局,现在对于数据库开发和管理员团队中的任何人来说,生成并保存一个图形报告都变得简单,该报告显示了给定数据库中的所有对象、每个对象中存在的列名以及这些对象之间的依赖关系。

这对于一系列不同的数据库任务非常有用,包括:

  • 记录数据库版本历史
  • 分析即将发生的架构变更
  • 从初始目标对象映射依赖树
  • 向其他团队成员或组织上层报告

使用SQL Dependency Tracker设置依赖图非常简单。它以一个“空图”屏幕打开,并邀请使用Add Objects向导向项目中添加对象。

对话框显示了所有本地可用的SQL服务器以及每个服务器中的数据库。选择数据库后,下方窗口会显示其组成对象。

假设是一名开发数据库管理员(DBA),需要向表中添加一列以存储信用卡验证号码。这些号码需要与信用卡号码以及客户名称一起存储。因此,向一个表中添加此列将需要对依赖表进行更改,而这些更改不一定在同一数据库中。

在这个例子中,将从存储客户信用卡详细信息的Northcards数据库中选择一个表——CustomerCards表。

点击Add Selection to Project按钮将启动布局引擎,选择的对象将被映射,以及任何连接的对象。在下面的截图中,可以看到CustomerCards对象已经被添加到布局中,依赖对象围绕它分组。还添加了一个来自另一个数据库的外部引用对象(这里用绿色箭头表示)。Northwind数据库中的Customers表被添加了,因为它被两个存储过程sp_getnamesforcard和sp_createcustomercard使用,这两个存储过程也使用了最初的CustomerCards表。

通过右键单击这个外部引用,可以添加它所使用的对象。对象左侧的天线表示有这样的对象,将鼠标悬停在对象上会显示一个带有这些对象名称的工具提示。

让将依赖对象添加到图表中。点击Reapply Layout按钮将执行此操作,通过生成一个更易读的网格。随着对象数量的增加,能够选择五种可用布局中的一种,以便更容易理解对象之间的关系,这是非常有用的。例如,层次布局特别有用,因为它将不同级别的依赖关系放置在图表的不同级别,如下图所示。

当选择一个对象并右键单击它时,还有一个选项可以显示该对象的SQL脚本。

快速检查SQL脚本将告诉,由于计划向CustomerCards表添加新列,可能需要调整哪些对象中的哪些参数。

当确信已经识别出由于架构变更将产生所有影响时,可以保存数据库及其依赖关系的当前状态的记录。只需点击工具栏中的Copy按钮,当前的网格图将被复制到剪贴板,可以将其粘贴到需要保存的任何地方,例如电子表格或MS Word中。还可以导出图表,可以作为PNG图像或XML文件。

回到SQL Dependency Tracker,在屏幕的右侧有两个关键的窗口窗格。右上角是Objects in Project窗格,列出了当前添加到项目中的所有对象。点击一个对象——例如,下图中的Orders Qry视图——会在右下角的Dependencies窗格中填充所有使用和被该对象使用的对象。当不需要图形显示时,这是一种快速简单的跟踪对象的方式。还可以通过选择和突出显示某些对象(例如,存储过程或视图),根据首选的颜色编码方案,使图表更容易一目了然。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485