0

我们的客户使用 SQLServer/Oracle 数据库。多年来,我们向他们发送了许多必须手动运行的更新脚本。大多数情况下,一切都很顺利,但有时脚本没有完全运行到最后或者有一些错误(升级时没有检测到)。此外,有时甚至“聪明的用户”也出于某种原因将索引/表添加到这些数据库中。后来,这些违规行为会导致问题。

现在我的任务是找出一种方法来根据我们自己的数据库模式(表、数据类型、索引、视图......)来验证/验证我们的客户数据库。输出应该是某种差异文件,指示数据库中缺少什么/不应该是什么。我可以在我们的应用程序内部使用代码 (C++) 执行此操作,或者我可以为此目的创建一个外部工具。

现在在我开始编码之前,我想问一下是否已经有一个工具可以产生必要的结果,或者至少可以帮助我从我们的主数据库(Oracle 和 SQLServer)产生一个像样的 xml 文件?或者是否有一个库可以帮助我编写自己的工具?

4

6 回答 6

3

我以前使用过这种技术,它不需要购买任何工具。

Enterprise Manager 具有“创建脚本”功能。在您的参考数据库和比较数据库上执行此操作。选择适当的选项为您关心的对象生成脚本。接下来,只需将生成的两个文件与您最喜欢的 diff 工具进行比较。

您可以使用允许导出 DDL 脚本的 Oracle 工具执行类似的过程。

于 2009-03-05T19:45:45.107 回答
1

使用 Red Gate 的工具有三个选项:

  1. 让您的客户进行比较。您需要说服您的客户购买 SQL Compare 许可证并向他们发送您的数据库的模式快照。
  2. 使用 Red Gate 的 SQL 比较 SDK(10 个发行版 595 美元)编写您自己的应用程序,该应用程序可以在客户端站点上运行。
  3. 请您的客户向您发送架构快照并使用您自己的 SQL 比较副本自己运行比较。Red Gate 提供了一个名为 SQL Snapper 的免费模式快照工具,该工具将创建快照,然后您的客户可以通过电子邮件将其发送给您。由于这不包括任何数据,因此您的客户可能愿意考虑。

SQL Snapper 工具和 SQL 比较 SDK 示例代码可以从我们的 labs.red-gate.com 网站下载。

Oracle 兼容性现在以 Early Access Build 的形式提供。如果您有兴趣或想试用该工具,请访问产品页面。在该工具完全发布之前,您可以免费使用它。

Red Gate Software 产品经理 David Atkinson。

于 2009-09-03T14:55:38.133 回答
0

为此,我们使用 Redgate SQL Compare,它多年来一直为我们服务。

我们还使用 Redgate SQL Data Compare 来比较查找表的内容。

于 2009-03-03T14:11:28.857 回答
0

redgate 的人有一个很棒的工具,叫做SQL Compare

于 2009-03-03T14:11:53.303 回答
0

你能像 MySQL 的SHOW CREATE TABLES那样创建一个模式转储吗?

于 2009-03-03T14:12:36.030 回答
0

如果您使用的是 Windoze,我已经使用 Advanced Query Tool 多年,并且可以证明,为了钱,它比其他任何东西都做得更多。特别是,它将生成数据库之间的差异报告。它是 ODBC/VB6,可以针对几十个数据库运行。看看这个。(不,我不是 QueryTool 的成员,也不拥有它的任何部分,只是一个快乐的客户。)

于 2009-03-04T05:03:05.593 回答