Как отключить ведение журнала ретроспективных запросов для конкретной таблицы (Oracle)?
У нас есть конкретная таблица, в которой много активности, и она создает много записей об изменениях. Следствием этого является то, что данные воспоминаний возвращаются только через пару дней. Это нормально для многих случаев, но было бы полезно иметь доступ к большему количеству исторических данных.
Мы хотели бы либо ограничить ведение журнала на нашей одной таблице высокой активности. Или полностью отключить. Я полагаю, что мы можем сделать это с помощью табличного пространства, я просто не нашел много о том, как сделать эти изменения.
2 ответа
Вы можете отключить флэшбэкинг с помощью alter table
пункт:
alter table YOUR_TABLE_NAME no flashback archive;
Можно также ограничить архив указанным размером. Для этого вам необходимо создать архив флэшбека, предназначенный для этой таблицы, с желаемым сроком хранения и, по желанию, размером квоты:
create flashback archive YOUR_TABLE_ARCHIVE tablespace SOME_TABLESPACE quota 512M retention 1 DAY;
Затем назначьте новый архив в таблицу:
alter table YOUR_TABLE_NAME flashback archive YOUR_TABLE_ARCHIVE;
Изучите документацию Oracle, чтобы проверить дополнительные требования. Например вам нужно FLASHBACK ARCHIVE ADMINSTER
привилегия для выполнения заявления выше.
Вы можете сгенерировать сценарии для всех таблиц в любой схеме, выполнив следующий запрос:
SELECT 'изменить таблицу' || ВЛАДЕЛЕЦ || '.' || ИМЯ_ТАБЛИЦЫ || 'нет архива воспоминаний;'FROM ALL_TABLES WHERE OWNER IN ('YOUR_SCHEMA');