Archive for Ноябрь 2009

Uninstalling DB2

Ноябрь 25, 2009
по мотивам «Installing IBM DB2 for Linux, UNIX, and Windows transparently with your application«.

Uninstalling DB2 on Linux and UNIX

On Linux and UNIX, you need to perform the following steps, in this order:

  1. Drop all databases by entering the following command:
    DROP DATABASE database_alias.
  2. Stop the DB2 Administration Server by logging in as the DB2 administration server owner and issuing the db2admin stop command.
  3. Stop all DB2 instances by repeating the following steps for each instance you created:
    1. Log in as the instance owner.
    2. Severe all database connections by entering the FORCE APPLICATION ALL command.
    3. Stop the DB2 database manager by entering the db2stop command.
  4. Remove the Administration Server:
    1. Log in as root.
    2. Issue the command:
      /opt/ibm/db2/V9.5/instance/dasdrop.
  5. Remove DB2 instances by repeating the following steps for each instance you created:
    1. Log in as root.
    2. Issue the /opt/ibm/db2/V9.5/instance/db2idrop InstanceName command.
    3. Remove the instance owner’s user ID and group if you created them during installation and if they are used only by your program.
  6. Remove DB2. You must have root authority for uninstalling.
    • Use the db2_deinstall command in the root directory of the DB2 DVD or image.

Что я могу сказать. Столько дейтсвий я еще никогда не делал, чтобы сненсти что-нибудь в Linux :).

Кстати, это я уже второй раз сношу :) В первый раз я сделал всё по простому — просто снёс директорию с DB2 к чёртовой матери и всё. Но после этого при следующей установке DB2 немного корёжило. Он всё думал, что у меня есть еще одна версия :). Теперь же всё было сделано по феншую.

Реклама

Microsoft Access Database using Linux and PHP

Ноябрь 24, 2009
По мотивам «Microsoft Access Database using Linux and PHP«

Я веду в ХТТ практические занятия по курсу «Базы данных и СУБД».  Название курса само по себе довольно странное, но речь сегодня не об этом. Так как я «второй» преподаватель и отвечаю только за практические занятия со вторыми группами, то мне нет необхожимости парится про содержание практических работ, это забота «первого» преподавателя. Но проверять их то мне, а это ой как неприятно. Надо:

  • носится от одного ко второму
  • быстро соображать, что же за задание и как его быстро проверить
  • указывать на ошибки в случае их обнаружения
  • проверять тщательно, чтобы не сдавали хартуру
  • слушать нытьё «А вот вчера у меня работало, а тут чего не хочет».

Короче, проблем хватает.

И тут я вспомнил про практику использования автоматических систем. Серега Курило в своё время написал систему для тестирования решений задач, написанных на Pascal, С, С++ и т.д. Признаюсь честно, я так и не смог её развернуть.

Но тут то у меня задача другая, мне надо проверить, как умеют детишки писать SQL запросы на выборку данных (пусть хотя бы это умеют, оставим DDL в покое). Так как это техникум и дети не особо сильны, то единственной понятной для них средой можно считать Acess. Переносимость файлов acess, обусловленная установленным практическ на всех компьютерах пакетом Microsoft Office, позволяет закрыть на все остальные недостатки.

Решил я сделать систему, которая ставит тебе вопрос и предлагает написать SQL запрос, который отобразит нужные данные. Алгоритм проверки простой, если выбока, получившаяся в результате выполнения ученического SQL запроса, совпадают с выборкой от эталонного запроса совпадают, то можно считать запрос верным. Пока хватит и такой проверки. Если же не совпала, то отображаются результаты как первого, так и эталонного запросов, чтобы ученик смог понять, что от него хотят и что он в итоге то сделал.

Где разместить такую систему. Крнечно же на своём ноуте. Пришёл, врубил в сеть, дал детям линк… пусть «играются». Но у меня на ноуте не Windows :). Поэтому пришлось немного повозится, чтобы появилась возможность работать с Access файлами.

Я действовал практически так же, как и описано в статье. Но есть некоторые различия:

  1. Я устанавливал с репозитария Debian (а не скачиавал с сайтов) следующие пакеты
    • unixodbc
    • unixodbc-bin
    • libmdbodbc
    • php5-odbc
  2. Не использовал odbcinst -i -d -f. Вместо этого собственоручно модифицировал файлы. Сначала я попытался ODBCConfig. Но при первой же попытке создания он отругал меня, что я не root, и что он не может модифицировать файлы. Запустив его с правами root, наблюдал, как он падал при попытке создания записи ODBC драйвера или записи DNS.
  3. Создавал для файла System DNS, т.к. apache запускается из под root (не уверен точно).

Осталось только написать саму систему :) А что, конннектиться к MS Access базе уже умею.

Run-levels in Debian

Ноябрь 13, 2009

logo-debianПосле некоторого времени у меня на моём ноуте началсь полный зоопарк из запускаемых приложений. При старте стартуют Apache2, MySQL, tomcat6. Но у меня же еще есть и GlassFish. Запустить просто так GlassFish без остановки tomcat не получится, они по умолчанию используют один и тот же порт. Да, я конечно могу переконфигурить или GlassFish или tomcat, но я не хочу.

Если честно, то tomcat мне нужен периодически. Зачем мне запускать его каждый раз.

Решение оказалось очень простым и привлекательным. Оказывается в Linux есть run levels. При старте исполняется 0. Если вы запустили ОС в single mode, то затем исполняется 1 level, а если в multi-user mode, то тогда — 2.

Кроме того есть еще для пользовательских нужд 3,4,5. Между level’ами можно легко переключаться командой telinit <имя level’а>.

По умолчанию 2,3,4,5 level’ы содержать одинаковый набор ссылок на скрипты запуска приложений. Но можно, при желании изменить их состав командой update-rc.d.

Описывать все варианты её использования нет смысла, а вот сказать как я отлючил tomcat всё-таки стоит.

sudo update-rc.d tomcat6 disable

Всё. Теперь при старте tomcat6 не грузится. Кстати, таким образом можно организовать удобное рабочее окружении. На один level нацепить нужные тебе в один омент прилодения, на другой — другие. Надо всего-то вовремя переключаться.

По мотивам «An introduction to run-levels«.

Apache 2 mod_rewrite в Debian

Ноябрь 12, 2009


Когда-то, давным давно, я ставил Apache 2 на Windows. Для того, чтобы добавить, доустановить новый модуль, надо было просто его раскоментарить в конфиге.

Каково было моё удивление, когда в конфиге /etc/apache2/apache2.conf я не увидел строк для раскоменчиванияю

Оказывается, что за подключение модулей отвечают вот эти строчки

# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

А вот в директории mods-enabled находятся ссылки на файлы из директории mods-available. Хм. Неужели придётся самому создавать линки? Нет. для этого есть консольная команда

a2enmod [module]

В моём случае было выполнено

sudo a2enmod rewrite

и после этого рестартануть Apache2 командой

sudo invoke.rc apache2 restart

И вуаля. Всё работает.