Отслеживать изменения в базе данных - PullRequest
2 голосов
/ 19 июля 2009

Я не уверен, задавалось ли это раньше; Я сделал несколько поисков, но ничего подходящего не появилось. Хорошо, теперь моя проблема:

Я хочу перенести старое приложение на другой язык программирования. Единственное требование, которое у нас есть, - поддерживать стабильность базы данных. Так что никаких изменений в моей схеме базы данных нет. Для остальной части приложения я в основном переписываю все с нуля без повторного использования старого кода.

Моя идея: для проверки моего нового кода я должен был позволить пользователям выполнять определенные действия или рабочие процессы, фиксировать состояние базы данных до и после этого, а затем, возможно, создать модульные тесты с помощью этих данных. Кто-нибудь знает элегантное решение для отслеживания этих изменений? Копирование базы данных (> 10 ГБ) довольно дорого. Я также не могу изменить код старого приложения, в котором пользователи будут выполнять эти примеры действий. Я должен держать его на уровне базы данных.

Моя база данных - Oracle 10g.

Ответы [ 3 ]

2 голосов
/ 19 июля 2009

Взгляните на Oracle Flashback Queries .

Позволяет выполнять запросы, которые возвращают прошлые данные. Срок ограничен, но может быть очень полезным.

2 голосов
/ 19 июля 2009

Вы можете зафиксировать поведение старого приложения с помощью trace и затем проверить изменения в соответствии с вашим новым кодом. Но, честно говоря, попытка написать новое приложение путем захвата модификаций данных, которые оно делает, и имитация, которая будет очень трудной задачей, поскольку входные и выходные данные исходного приложения не гарантированно не сохраняют состояния (то есть старое приложение может сделать то же самое в первые 1000000 раз, когда ему дадут определенный набор входных данных, и сделать что-то совершенно другое в ходе 1 000 001-го запуска.)

Лучше всего начать с требований бизнеса и использовать старое приложение и функциональный справочник.

1 голос
/ 22 июля 2009

В 10g единственным способом является выполнение запросов FLASHBACK. В 11g мы можем сделать это с помощью RAT (Real Application Testing). RAT весьма полезен для этого senarios, а также для тестирования нагрузки и объема.

...