跟踪数据库的更改

时间:2009-07-19 19:28:08

标签: database oracle oracle10g diff monitoring

我不确定之前是否曾经问过这个问题;我做了一些搜索但没有出现任何合适的搜索结果。 好的,现在是我的问题:

我想将旧应用程序迁移到其他编程语言。我们唯一的要求是保持数据库结构稳定。所以我的数据库架构没有变化。对于应用程序的其余部分,我基本上是从头开始重新实现所有内容而不重用旧代码。

我的想法:为了验证我的新代码是让用户做某些操作或工作流,在此之前和之后捕获数据库的状态,然后可以借助这些数据创建单元测试。有谁知道一个优雅的解决方案来跟踪这些变化?复制数据库(> 10GB)非常昂贵。我也无法修改用户将执行这些示例操作的旧应用程序的代码。我必须将它保留在数据库级别。

我的数据库是Oracle 10g。

3 个答案:

答案 0 :(得分:2)

您可以使用trace捕获旧的应用程序行为,然后根据新代码验证更改。但是,老实说,尝试通过捕获它所做的数据修改来编写新的应用程序,并且模仿将是一项非常困难的任务,因为原始应用程序的输入和输出不能保证是无状态的(即旧的应用程序)可能会在第一次1,000,000次给出一定数量的输入时执行相同的操作,并在第1,000,001次运行中执行完全不同的操作。)

您最好的选择是重新开始使用业务需求并使用旧应用程序和功能参考。

答案 1 :(得分:2)

看看Oracle Flashback Queries

它可以执行返回过去数据的查询。时间范围有限,但它非常有用。

答案 2 :(得分:1)

在10g中,唯一的方法是使用FLASHBACK查询。在11g中,我们可以使用RAT(Real Application Testing)来完成此操作。 RAT对于这种情况非常有用,也适用于负载和容量测试。