Инструкция по архивированию таблиц списаний

Все права защищены (c) 2001-2011 NetUP (www.netup.ru)
Перепечатка материалов разрешается только с предварительного разрешения
компании NetUP (info@netup.ru)

Внимание! Перед выполнением любых действий с БД UTM5 в обязательном порядке следует сделать полную резервную копию БД UTM5 и проверить возможность восстановления данных из этой резервной копии. Дальнейший текст предназначен только для тех, кто понимает что делает и имеет достаточный уровень технических знаний в области работы с СУБД. Вопросы, касательно способов манипуляции данными средствами СУБД останутся без ответа по существу, в том числе и если они будут заданы в hotline. Перед проведением любых действий рекомендуется отработать их на стендовой машине

1. В настоящий момент механизм архивирования распространяет свое действие на таблицы discount_transactions_all и discount_transactions_iptraffic_all. В данных таблицах содержится информация о транзакциях изменения балансов лицевых счетов и транзакциях списаний за трафик. На основании информации, хранящейся в данных таблицах строится основной отчет и отчет по трафику. Также таблица discount_transactions_all хранит некоторую информацию, которая в настоящий момент в формировании отчетов не участвует, но в дальнейшем возможно её использование. Также эта информация бывает полезна при проведении диагностики.

2. Транзакции списаний за трафик являются подмножеством транзакций изменения балансов лицевых счетов, поэтом записи в указанных выше таблицах связаны. Если для записи в таблице discount_transactions_all установлен service_type в значение равное 3, то должна существовать запись с таким же id, discount_date и discount в таблице discount_transactions_iptraffic_all. Невыполнение данного условия считается нарушением логической целостности БД.

3. В сборке 5.2.1-006 введена таблица archives со следующими полями:
id - уникальный идентификатор записи;
archive_id - идентификатор архива, не может быть равен 0, должен быть уникален для каждого типа архивных таблиц;
table_type - тип архивной таблицы, 1 для discount_transactions_all, 2 для discount_transactions_iptraffic_all;
table_name - имя архивной таблицы ;
start_date - время, которым датировано первое списание в архиве (UNIX TIMESTAMP);
end_date - время, которым датировано последнее списание в архиве (UNIX TIMESTAMP);

4. Архивные таблицы должны иметь такую же структуру, как и таблица соответствующего типа в установленной сборке.

5. Архивная таблица должна содержать только данные, датированные временем, входящим в диапазон, указанный в соответствующей данной таблице записи в таблице archives.

6. Никакая таблица, кроме той, которая указана в таблице archives не должна содержать записи, датированные временем, указанным в записи таблицы archives.

7. Если для какого-то момента времени записи в таблице archives нет, то эти данные должны содержаться в таблице discount_transactions_all (discount_transactions_iptraffic_all).

8. Если в таблице archives отсутствует запись определенного типа для какого либо времени, то эта списания, датированные данным временем должны храниться в основной таблице с информацией о транзакциях соответствующего типа.

9. Рекомендуется архивировать данные таблиц discount_transactions_all и discount_transactions_iptraffic_all и discount_transactions_iptraffic_all симметрично, т.е. если запись в таблице discount_transactions_all содержится в архивной таблице с определенным идентификатором архива, то и записи в таблице discount_transactions_iptraffic_all должна храниться в архивной таблицы с соответствующим идентификатором архива.

10. Для архивных таблиц следует выбирать имя, которое начинается с имени основной таблицы.

11. Архивная таблица может не поддерживать транзакции и быть доступна в режиме только чтения.