Справочное руководство по MySQL версии 4.1.1-alpha




2.6.6.4 Примечания к IBM-AIX - часть 2


В случае возникновения проблем в программах на ассемблере необходимо привести -mcpu=xxx в соответствие со своим процессором. Обычно достаточно использовать power2, power или powerpc, но, возможно, необходимо будет указать 604 или 604e. Хотя это и не приветствуется, но использование "power" будет безопасным почти всегда, даже на power2-машинах.

Если вы не знаете, какой у вас процессор, следует запустить uname -m. Данная команда возвращает строку наподобие "000514676700", формат которой xxyyyyyymmss, где xx и ss всегда 0, yyyyyy - уникальный идентификатор системы и mm - идентификатор процессора Planar. Карта этих значений находится по адресу http://publib.boulder.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds5/uname.htm.

В соответствии с данной картой можно узнать тип и модель машины, а уже по ним -определить тип процессора.

Возникновение проблем с сигналами (MySQL неожиданно умирает при большой нагрузке) может означать, что вы столкнулись с ошибкой операционной системы в работе с потоками и сигналами. В этом случае можно запретить MySQL использовать сигналы при помощи следующей строки конфигурации:

shell> CFLAGS=-DDONT_USE_THR_ALARM CXX=gcc \ CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti \ -DDONT_USE_THR_ALARM" \ ./configure --prefix=/usr/local/mysql --with-debug --with-low-memory

Это не повлияет на производительность MySQL, но приведет к побочному эффекту, состоящему в невозможности оборвать работу клиента со спящим соединением при помощи команд mysqladmin kill или mysqladmin shutdown. Вместо этого клиент завершит работу при попытке послать следующую команду.

На некоторых версиях AIX линкование с libbind.a приводит к тому, что getservbyname вызывает аварийную остановку программы с сохранением образа памяти на диск (core dump). Это ошибка AIX и о ней следует сообщить в IBM.

Для AIX 4.2.1 и gcc необходимо сделать следующие изменения:

После конфигурации следует отредактировать файлы `config.h' и `include/my_config.h', а также изменить строку, содержащую

#define HAVE_SNPRINTF 1

на

#undef HAVE_SNPRINTF

И напоследок необходимо в файле `mysqld.cc' добавить прототип функции initgoups.

#ifdef _AIX41 extern "C" int initgroups(const char *,int); #endif

Если вам нужно выделить много памяти процессу mysqld, недостаточно указать ulimit -d unlimited. Вам также потребуется в mysqld_safe установить что-то вроде:

export LDR_CNTRL='MAXDATA=0x80000000'

Больше информации об использовании большого количества памяти - здесь: http://publib16.boulder.ibm.com/pseries/en_US/aixprggd/genprogc/lrg_prg_support.htm.




Содержание  Назад  Вперед