Они обычно называются таблицами аудита. Как я обычно управляю этим, используя триггеры в базе данных. Для каждой вставки / обновления из исходной таблицы триггер копирует данные в другую таблицу, называемую тем же именем таблицы, к которой добавляется _AUDIT (соглашение об именах не имеет значения, это просто то, что я использую). ORACLE предоставляет вам то, что называется журнальными таблицами. Используя конструктор ORACLE (или вручную), вы можете достичь того же, и часто разработчики помещают _JN в конец таблицы журнала / аудита. Это, однако, работает так же: триггеры исходной таблицы копируют данные в таблицу аудита.
EDIT:
Я также должен отметить, что вы можете создать новую отдельную схему для управления только вашими таблицами аудита или можете сохранить их в своей схеме с исходными таблицами. Я делаю оба, это зависит только от ситуации.