[Назад] [Дальше] [Оглавление]

Перечень изменений между версиями 0.* и 1.0, частично отраженный в приложении ``Хронология изменений'', велик и сделать версию 1.0 полностью совместимой с предыдущими версиями не удалось. Поэтому стандартная процедура обновления в данном случае не вполне приемлема.

Подразумевается, что Вы прочитали как минимум главу ``Структура сервера'', имеете в эксплуатации установленный и настроенный сервер версии 0.* и хорошо знаете структуру его работы.

Предлагаемые действия не являются единственным возможным вариантом, более того, автор не принимает на себя никакой ответственности за возможные неприятности, возникшие в результате следования предлагаемым советам. Единственным надежным вариантом является полное осмысление различий между версиями и выполнение рекомендаций только после того, как Вам станет очевиден их смысл. Если есть вопросы - не стесняйтесь их задать автору (am@amsoft.ru) или в список рассылки (amstat@f1.ru)!

Итак, рекомендуемые действия по обновлению до версии 1.0 сервера статистики (сначала прочитайте их все бегло чтобы представить себе общую идею, потом начинайте выполнять последовательно):

  1. Сделайте архивную копию всех каталогов сервера статистики (включая базу данных пользователей). Команда может быть такой:

    bash# tar -cvzf statserv-09.tgz /var/local/stat/
    ...
  2. Сделайте архивную копию базы данных SQL. Для mSQL команда может выглядеть так:

    bash# /var/local/msql/bin/msqldump statserv > statserv-09.sql
    ...
  3. Получите дистрибутив версии 1.0 сервера статистики (смотрите пункт ``Получение дистрибутива''). Создайте для него отдельный каталог (иной, чем у старой версии) - потом можно будет переименовать его, или сделать символьную ссылку. В созданный каталог разверните дистрибутив (смотрите пункт ``Установка сервера'').
  4. Создайте SQL базу данных amstat (не statserv, как в предыдущей версии!). В mSQL для этого можно выполнить команду (после создания не забудьте отредактировать права доступа - файл `msql.acl'):

    bash# msqladmin create amstat
    ...
  5. Не удаляя старого конфигурационного файла `/etc/amstat.conf', создайте файл `/etc/amstat-1.0.conf' и отредактируйте его под свои условия в соответствии с рекомендациями пункта ``Настройка основного конфигурационного файла''). При этом не забудьте указать серверу, что он должен использовать базу данных amstat директивой `sql-database amstat'! Кроме того, на время отладки бывает полезно задать директиву конфигурации `debug-allmail you@your.domain' для того, чтобы генерируемые отчеты не попали случайно к клиентам до завершения отладки.
  6. Запустите модуль ckconfig с параметром `-n' и проверьте выдаваемые им параметры - не упустили-ли Вы что-то важное. Если на перый и второй взгляд все близко к ожидаемому, запустите модуль ckconfig без параметров для проверки и создания каталогов, SQL-таблиц и т.п. Пока не стоит вносить данные реальных пользователей в таблицы.
  7. Создайте два-три пробных пользователя и проверьте работу сервера с ними. Отредактируйте, если необходимо, тексты модулей daily-mail, daily-time, adduuser. Обратите внимание на изменения в модуле monthly - теперь month-mail, month-time и month-misc не нужны и не включены в дистрибутив версии 1.0.
  8. Прочитайте описание генератора отчетов ( mkreport) и исправьте используемые со старой версией или поставляемые с новой заготовки форм под свои условия.
  9. Получите и установите регистрационный ключ (смотрите пункт ``Регистрация''). Для официальных пользователей сервера статистики версий 0.*, купивших его до 1 июня 1996 года регистрационный ключ выдается бесплатно.
  10. Скопируйте базу данных пользователей старого сервера в каталог нового. Если есть желание или необходимость - разбейте пользователей по первой букве названия (или даже по второй) - смотрите пункт ``База данных пользователей''. Разбивку имеет смысл делать при наличие в одном каталоге более 50 пользователей. Запустите модуль ulist для проверки структуры пользовательских каталогов, сравните его вывод с выводом аналогичного модуля старой версии.
  11. Уничтожьте SQL таблицу accounts и данные в таблице statistic, накопленные во время тестирования. Это можно сделать следующими командами:

    bash # msql amstat
    Welcome to miniSQL monitor.  Type \h for help.
    
    mSQL > delete from statistic \g
    
    OK!
    mSQL > drop table accounts \g
    
    OK!
    mSQL > \q
    
    bash #
    ...
  12. Разверните старую таблицу лицевых счетов в новой базе данных. В mSQL это можно сделать такой командой (при этом на экран должно посыпаться множество сообщений ``Ok!'' - это нормально):

    bash# msql amstat < statserv-09.sql
    ...
  13. Внесите курсы доллара (валюты `usd' - в данном случае название должно быть именно таким) с помощью модуля setrate за все месяцы, в течение которых эксплуатировался сервер. Скрипт, выполняющий это действие, вместе с данными о курсах валют за 1995..1996 годы можно взять с URL: ftp://ftp.f1.ru/pub/am/amstat/contrib/usd_rates.sh.
  14. Теперь можно воспользоваться модулем upgrade для автоматического обновления таблицы лицевых счетов. Необходимо отметить, что модуль полностью игнорирует долларовую часть старых лицевых счетов, поэтому, если на лицевых счетах Ваших пользователей были операции с только долларовой суммой, то это может привести к утрате таких операций. Для проверки наличия такого рода операций на лицевом счете можно воспользоваться SQL командой:

    bash# msql amstat
    Welcome to miniSQL monitor.  Type \h for help.
    
    mSQL > select * from accounts where roubles<1 and roubles>-1 \g

    При необходимости такие операции следует исправить. Если нареканий к ``рублевой'' стороне счета нет, то можно запускать модуль upgrade.

  15. Модуль upgrade кроме обновления лицевых счетов, производит автоматический перенос данных о статистике за прошлые месяцы из файлов `*.ms' в домашних каталогах пользователей в таблицу statistic. При этом суммы умножаются на курс валюты `usd', который Вы внесли выше. После обновления файлы переносятся в подкаталог `old/' домашних каталогов пользователей и при повторном запуске модуля upgrade лишней статистики на счета зачислено не будет.
  16. Последней операцией, выполняемой модулем upgrade, является раснос созданных актов за прошлые месяцы по годам. Такое расположение принято в текущей версии сервера (смотрите описание модуля mkreport).
  17. Запустите модуль ckconfig без параметров для итоговой проверки. Если сообщений об ошибках нет, то скорее всего обновление сервера завершено. Попробуйте сгенерировать акты за прошлые месяцы, сравните их с сохраненными копиями, проверьте остатки на лицевых счетах пользователей. Остатки на счетах в новой версии скорее всего будут незначительно отличаться от остатков в старой из-за погрешностей в работе старой версии. Автор в эксплуатируемой им версии не нашел ничего лучшего, как просто зачислить разницу в остатках на счета пользователей с комментарием ``Компенсация накопившейся ошибки курса доллара при переходе на новую систему учета''.
  18. Уберите из конфигурационного файла `/etc/amstat-1.0.conf' строку `debug-allmail'.

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


[Назад] [Дальше] [Оглавление]