El port actual se probó solamente en sistemas sco3.2V5.0.5, sco3.2v5.0.6, y sco3.2v5.0.7. También está en desarrollo un port para sco3.2v4.2. Open Server 5.0.8 (Legend) tiene soporte nativo para subprocesos y permite ficheros de más de 2GB. Actualmente el máximo tamaño de fichero permitido es 2GB.
En MySQL AB se pudo compilar MySQL con el siguiente comando de configure en OpenServer con gcc 2.95.3.
CC=gcc CXX=gcc ./configure --prefix=/usr/local/mysql \ --enable-thread-safe-client --with-innodb \ --with-openssl --with-vio --with-extra-charsets=complex
gcc puede descargarse de ftp://ftp.sco.com/pub/openserver5/opensrc/gnutools-5.0.7Kj.
Este sistema de desarrollo requiere el Suplemento del Entorno
de Ejecución de OpenServer (OpenServer Execution Environment
Supplement) oss646B en OpenServer 5.0.6 y oss656B y las
bibliotecas OpenSource halladas en gwxlibs. Todas las
herramientas OpenSource están en el directorio
opensrc
, en
ftp://ftp.sco.com/pub/openserver5/opensrc/.
MySQL AB recomienda utilizar el último release en producción de MySQL.
SCO proporciona parches del sistema operativo en ftp://ftp.sco.com/pub/openserver5 para OpenServer 5.0.[0-6] y ftp://ftp.sco.com/pub/openserverv5/507 para OpenServer 5.0.7.
SCO proporciona información sobre problemas de seguridad solucionados en ftp://ftp.sco.com/pub/security/OpenServer para OpenServer 5.0.x.
El máximo tamaño de fichero en un sistema OpenServer 5.0.x es 2GB.
La memoria total que puede direccionarse para buffers de streams, clists, y bloqueo de registros, no puede exceder de 60MB en OpenServer 5.0.x.
Los buffers de streams son direccionados en páginas de 4096 bytes, los clists en páginas de 70 bytes, y los bloqueos de registros en páginas de 64 bytes, de modo que:
(NSTRPAGES * 4096) + (NCLIST * 70) + (MAX_FLCKREC * 64) <= 62914560
Seguir este procedimiento para configurar la opción Servicios de Base de Datos (Database Services). Si no se está seguro si una aplicación requiere esto, ver la documentación de la aplicación.
Iniciar sesión como root
.
Habilitar el driver SUDS mediante la edición del fichero
/etc/conf/sdevice.d/suds
. Cambiar la
N
del segundo párrafo por una
Y
.
Utilizar mkdev aio
o el Gestor de
Hardware/Kernel (Hardware/Kernel Manager) para habilitar
el soporte de entrada/salida asincrónica, y enlazar
nuevamente el kernel. Para permitir a los usuarios
reservar memoria para usar con este tipo de E/S,
actualizar el fichero aiomemlock(F). Este fichero debería
actualizarse para que incluya los nombre de los usuarios
que pueden utilizar ESA (Entrada Salida Asincrónica, o
AIO, Asynchronoys I/O) y las máximas cantidades de
memoria que pueden reservar.
Muchas aplicaciones usan binarios setuid de forma que solamente se necesita especificar un único usuario. Ver la documentación provista con la aplicación para ver si este es su caso.
Después de completar este proceso, reiniciar el sistema para crear un nuevo kernel que incorpore estos cambios.
Por defecto, las entradas en
/etc/conf/cf.d/mtune
están configuradas
así:
Value Default Min Max ----- ------- --- --- NBUF 0 24 450000 NHBUF 0 32 524288 NMPBUF 0 12 512 MAX_INODE 0 100 64000 MAX_FILE 0 100 64000 CTBUFSIZE 128 0 256 MAX_PROC 0 50 16000 MAX_REGION 0 500 160000 NCLIST 170 120 16640 MAXUP 100 15 16000 NOFILES 110 60 11000 NHINODE 128 64 8192 NAUTOUP 10 0 60 NGROUPS 8 0 128 BDFLUSHR 30 1 300 MAX_FLCKREC 0 50 16000 PUTBUFSZ 8000 2000 20000 MAXSLICE 100 25 100 ULIMIT 4194303 2048 4194303 * Streams Parameters NSTREAM 64 1 32768 NSTRPUSH 9 9 9 NMUXLINK 192 1 4096 STRMSGSZ 16384 4096 524288 STRCTLSZ 1024 1024 1024 STRMAXBLK 524288 4096 524288 NSTRPAGES 500 0 8000 STRSPLITFRAC 80 50 100 NLOG 3 3 3 NUMSP 64 1 256 NUMTIM 16 1 8192 NUMTRW 16 1 8192 * Semaphore Parameters SEMMAP 10 10 8192 SEMMNI 10 10 8192 SEMMNS 60 60 8192 SEMMNU 30 10 8192 SEMMSL 25 25 150 SEMOPM 10 10 1024 SEMUME 10 10 25 SEMVMX 32767 32767 32767 SEMAEM 16384 16384 16384 * Shared Memory Parameters SHMMAX 524288 131072 2147483647 SHMMIN 1 1 1 SHMMNI 100 100 2000 FILE 0 100 64000 NMOUNT 0 4 256 NPROC 0 50 16000 NREGION 0 500 160000
Se recomienda establecer estos valores de la siguiente manera:
NOFILES
debería ser 4096 o 2048.
MAXUP
debería ser 2048.
Para hacer cambios al kernel, posicionarse con
cd
en el directorio
/etc/conf/bin
y utilizar
./idtune nombre
parámetro
para realizar los cambios. Por
ejemplo, para cambiar SEMMS
a un valor de
200
, ejecutar estos comandos como usuario
root
:
# cd /etc/conf/bin # ./idtune SEMMNS 200
Se recomienda optimizar el sistema, pero los valores a
utilizar dependerán del número de usuarios que acceden a la
aplicación o base de datos y el tamaño de la base de datos
(esto es, el pool de buffer utilizado). Lo siguiente modifica
los parámetros de kernel definidos en
/etc/conf/cf.d/stune
:
SHMMAX
(valor recomendado: 128MB) and
SHMSEG
(valor recomendado: 15). Estos
parámetros inciden en el motor de base de datos MySQL para la
creación de pools de buffers de usuario).
NOFILES
y MAXUP
deberían establecerse en por lo menos 2048.
MAXPROC
debería establecerse al menos en
3000/4000 (dependiendo del número de usuarios) o más.
También se recomienda el empleo de la siguiente fórmula para
calcular el valor para SEMMSL
,
SEMMNS
y SEMMNU
:
SEMMSL = 13
El 13 es lo que se halló como el mejor valor para Progress y MySQL.
SEMMNS
= SEMMSL
*
cantidad de servidores de bases de datos a ejecutarse en el
sistema.
Establecer SEMMNS
al valor de
SEMMSL
multiplicado por la cantidad de
servidores de bases de datos (máximo) que se ejecutan en el
sistema al mismo tiempo.
SEMMNU = SEMMNS
Establecer el valor de SEMMNU
al mismo
valor que tiene SEMMNS
. Posiblemente se
pueda establecer a un 75% del valor de
SEMMNS
, pero esta es una estimación
conservadora.
Se necesitará instalar al menos las "Bibliotecas de Desarrollo de Aplicaciones y Enlazador OpenServer de SCO" ("SCO OpenServer Linker and Application Development Libraries") o el Sistema de Desarrollo de OpenServer (OpenServer Development System) para ejecutar gcc. No se puede simplemente emplear el sistema de desarrollo GCC sin instalar alguno de los mencionados.
Antes se deberá obtener el paquete FSU Pthreads e instalarlo. Puede descargarse de http://moss.csc.ncsu.edu/~mueller/ftp/pub/PART/pthreads.tar.gz. También puede descargarse un paquete precompilado en ftp://ftp.zenez.com/pub/zenez/prgms/FSU-threads-3.14.tar.gz.
FSU Pthreads puede compilarse con SCO Unix 4.2 con tcpip, o
utilizando OpenServer 3.0 u OpenDesktop 3.0 (OS 3.0 ODT 3.0)
con el SCO Development System instalado utilizando un buen
port de GCC 2.5.x. Hay muchos problemas que ocurren sin un
buen port. El port para este producto necesita el SCO Unix
Development System. Sin él, no se tendrán las bibliotecas y
el enlazador que se necesitan. También se requiere el fichero
SCO-3.2v4.2-includes.tar.gz
. Este fichero
contiene los cambios a los ficheros de inclusión de SCO
Development que se necesitan para lograr compilar MySQL.
Habrá que reemplazar los ficheros de inclusión existentes en
el sistema con estos ficheros de cabecera modificados. Pueden
descargarse de
ftp://ftp.zenez.com/pub/zenez/prgms/SCO-3.2v4.2-includes.tar.gz.
Todo lo que se debería necesitar para compilar FSU Pthreads
es ejecutar GNU make. El
Makefile
en FSU-threads-3.14.tar.gz está
configurado para crear FSU-threads.
Se puede ejecutar ./configure en el
directorio threads/src
y seleccionar la
opción SCO OpenServer. Este comando copia
Makefile.SCO5
a
Makefile
. Luego, se ejecuta
make.
Para instalar en el directorio predeterminado
/usr/include
, iniciar sesión como
root
, luego posicionarse con
cd
en el directorio
thread/src
y ejecutar make
install.
Recordar que debe usarse GNU make para crear MySQL.
Nota: Si no se inicia
mysqld_safe como usuario
root
, se deberían obtener solamente por
defecto los 110 ficheros abiertos por proceso.
mysqld deja constancia de esto en el
fichero de registro (log).
Con SCO 3.2V4.2, se debería usar FSU Pthreads versión 3.14 o posterior. El siguiente comando configure debería funcionar:
CFLAGS="-D_XOPEN_XPG4" CXX=gcc CXXFLAGS="-D_XOPEN_XPG4" \ ./configure \ --prefix=/usr/local/mysql \ --with-named-thread-libs="-lgthreads -lsocket -lgen -lgthreads" \ --with-named-curses-libs="-lcurses"
Se pueden tener problemas con algunos ficheros de inclusión. En este caso, pueden hallarse nuevos ficheros de inclusión específicos para SCO en ftp://ftp.zenez.com/pub/zenez/prgms/SCO-3.2v4.2-includes.tar.gz.
Se debería descompactar este fichero en el directorio
include
del árbol de código fuente de
MySQL.
Notas relativas a SCO development:
MySQL debería detectar automáticamente FSU Pthreads y
enlazar mysqld con -lgthreads
-lsocket -lgthreads
.
Las bibliotecas de desarrollo SCO son reentrantes (compartidas por varios usuarios o procesos, una condición indispensable en la programación de multitarea) en FSU Pthreads. SCO afirma que sus bibliotecas de funciones son reentrantes, por lo tanto deben ser reentrantes con FSU Pthreads. FSU Pthreads en OpenServer intenta utilizar el esquema de SCO para hacer bibliotecas reentrantes.
FSU Pthreads (al menos la versión en
ftp::/ftp.zenez.com) viene enlazada con GNU
malloc
. Si ocurren problemas con el uso
de memoria, asegurarse de que
gmalloc.o
está incluido en
libgthreads.a
y
libgthreads.so
.
En FSU Pthreads, las siguientes llamadas de sistema son
compatibles con pthreads: read()
,
write()
, getmsg()
,
connect()
, accept(),
select()
, y wait()
.
El parche CSSA-2001-SCO.35.2 (habitualmente listado como erg711905-dscr_remap security patch (version 2.0.0)) interrumpe los subprocesos FSU y deja inestable a mysqld. Hay que removerlo si se desea ejecutar mysqld en un ordenador con OpenServer 5.0.6.
SCO proporciona parches del sistema operativo OpenServer 5.0.x en ftp://ftp.sco.com/pub/openserver5.
Las soluciones a problemas de seguridad y
libsocket.so.2
para OpenServer 5.0.x
están en
ftp://ftp.sco.com/pub/security/OpenServer y
ftp://ftp.sco.com/pub/security/sse.
Soluciones de seguridad para Pre-OSR506. También, la
solución para telnetd
en
ftp://stage.caldera.com/pub/security/openserver/
o
ftp://stage.caldera.com/pub/security/openserver/CSSA-2001-SCO.10/
así como libsocket.so.2
y
libresolv.so.1
con instrucciones para
instalar en sistemas pre-OSR506.
Probablemente sea una buena idea instalar estos parches antes de compilar o utilizar MySQL.
A partir de Legend/OpenServer 6.0.0 se dispone de subprocesos nativos y se eliminó el límite de 2GB para el tamaño de los ficheros.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.