Die aktuelle Portierung wird nur auf Systemen unter sco3.2v5.0.5, sco3.2v5.0.6 und sco3.2v5.0.7 getestet. Die Portierung auf sco3.2v4.2 ist ebenfalls weit fortgeschritten. Open Server 5.0.8 (Legend) bietet native Threads und unterstützt Dateien, die größer sind als 2 Gbyte. Das aktuelle Limit bei der Dateigröße liegt bei 2 Gbyte.
Wir konnten MySQL mit dem folgenden configure-Befehl unter OpenServer mit gcc 2.95.3 kompilieren.
CC=gcc CXX=gcc ./configure --prefix=/usr/local/mysql \ --enable-thread-safe-client --with-innodb \ --with-openssl --with-vio --with-extra-charsets=complex
gcc erhalten Sie unter ftp://ftp.sco.com/pub/openserver5/opensrc/gnutools-5.0.7Kj.
Dieses Entwicklungssystem erfordert das OpenServer Execution
Environment Supplement oss646B unter OpenServer 5.0.6 und
oss656B und die in gwxlibs enthaltenen
OpenSource-Bibliotheken. Alle OpenSource-Tools befinden sich
im Verzeichnis opensrc
. Sie finden sie
unter
ftp://ftp.sco.com/pub/openserver5/opensrc/.
Wir empfehlen die Verwendung des aktuellen Produktions-Releases von MySQL.
SCO stellt Betriebssystem-Patches unter ftp://ftp.sco.com/pub/openserver5 für OpenServer 5.0.[0-6] und unter ftp://ftp.sco.com/pub/openserverv5/507 für OpenServer 5.0.7 bereit.
Informationen zu behobenen Sicherheitslücken bietet SCO unter ftp://ftp.sco.com/pub/security/OpenServer für OpenServer 5.0.x an.
Die maximale Dateigröße auf einem OpenServer 5.0.x-System beträgt 2 Gbyte.
Die Gesamtmenge an Speicher, der für Stream-Puffer, CLISTs und Sperrdatensätze zugewiesen wird, darf unter OpenServer 5.0.x einen Wert von 60 Mbyte nicht überschreiten.
Stream-Puffer werden in Einheiten von 4096 Byte großen Seiten zugewiesen, CLISTs haben jeweils 70 Byte, und Sperrdatensätze sind je 64 Byte groß. Hieraus ergibt sich:
(NSTRPAGES * 4096) + (NCLIST * 70) + (MAX_FLCKREC * 64) <= 62914560
Gehen Sie wie folgt vor, um die Option Database
Services
zu konfigurieren. Wenn Sie nicht genau
wissen, ob eine Anwendung dies erfordert, schlagen Sie in der
Dokumentation dieser Anwendung nach.
Melden Sie sich als root
an.
Aktivieren Sie den SUDS-Treiber, indem Sie die Datei
/etc/conf/sdevice.d/suds
bearbeiten.
Ändern Sie das N
im zweiten Feld zu
Y
.
Aktivieren Sie mithilfe von mkdev aio
oder des Hardware/Kernel-Managers die Unterstützung für
asynchrone Eingabe/Ausgabe und verknüpfen Sie den Kernel
neu. Damit Benutzer Speicher für die Verwendung mit
diesem E/A-Typ verriegeln können, aktualisieren Sie die
Datei aiomemlock(F)
. Diese Datei
sollte mit den Namen der Benutzer, die AIO verwenden
dürfen, und der maximalen Speichermenge aktualisiert
werden, die diese Benutzer sperren dürfen.
Viele Anwendungen verwenden setuid-Binärdateien, d. h., Sie müssen nur einen Benutzer angeben. Konsultieren Sie die Dokumentation zur fraglichen Anwendung, um zu ermitteln, ob dies bei dieser Anwendung der Fall ist.
Nachdem Sie den Vorgang abgeschlossen haben, starten Sie das System neu, um einen neuen Kernel zu erstellen, der diese Änderungen beinhaltet.
Standardmäßig haben die Einträge in
/etc/conf/cf.d/mtune
folgende
Einstellungen:
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
Wir empfehlen die Einstellung folgender Werte:
NOFILES
sollte 4096 oder 2048 sein.
MAXUP
sollte 2048 sein.
Um Änderungen am Kernel vorzunehmen, wechseln Sie in das
Verzeichnis /etc/conf/bin
und nehmen die
erforderlichen Änderungen mit ./idtune
name parameter
vor. Um
beispielsweise SEMMS
auf
200
zu setzen, führen Sie folgende Befehle
als root
aus:
# cd /etc/conf/bin # ./idtune SEMMNS 200
Wir empfehlen eine Optimierung des Systems. Welche
Parameterwerte allerdings hierzu geeignet sind, hängt von der
Anzahl der Benutzer, die auf die Anwendung oder Datenbank
zugreifen, und von der Größe der Datenbank selbst (d. h.
dem verwendeten Pufferpool) ab. Das Folgende betrifft die
Kernel-Parameter, die in
/etc/conf/cf.d/stune
definiert sind:
SHMMAX
(Einstellempfehlung: 128 Mbyte) und
SHMSEG
(Einstellempfehlung: 15). Diese
Parameter beeinflussen die MySQL-Datenbank-Engine bei der
Erstellung der Benutzerpufferpools.
NOFILES
und MAXUP
sollten auf mindestens 2048 gesetzt werden.
MAXPROC
sollte (abhängig von der Anzahl
der Benutzer) auf mindestens 3000/4000 gesetzt werden.
Ferner wird die Verwendung der folgenden Formel zur Berechnung
der Werte für SEMMSL
,
SEMMNS
und SEMMNU
empfohlen:
SEMMSL = 13
13 hat sich als optimaler Wert sowohl für Progress als auch für MySQL erwiesen.
SEMMNS
= SEMMSL
×
Anzahl der auf dem System ausgeführten Server
Setzen Sie SEMMNS
auf den Wert von
SEMMSL
multipliziert mit der maximalen
Anzahl der Datenbankserver, die gleichzeitig auf Ihrem System
ausgeführt werden.
SEMMNU = SEMMNS
SEMMNU
setzen Sie dann auf den gleichen
Wert wie SEMMNS
. Wahrscheinlich würde hier
auch ein Wert von 75 Prozent von SEMMNS
ausreichen, aber dies ist eine konservative Schätzung.
Sie müssen zumindest die "SCO OpenServer Linker and Application Development Libraries" oder das OpenServer Development System installieren, um gcc verwenden zu können. Das GCC Dev-System können Sie nicht nutzen, ohne mindestens eine dieser Komponenten zu installieren.
Zunächst sollten Sie sich jedoch das FSU-Pthreads-Paket beschaffen und es installieren. Sie finden es unter http://moss.csc.ncsu.edu/~mueller/ftp/pub/PART/pthreads.tar.gz. Eine vorkompilierte Fassung finden Sie unter ftp://ftp.zenez.com/pub/zenez/prgms/FSU-threads-3.14.tar.gz.
FSU-Pthreads kann mit SCO Unix 4.2 mit tcpip oder aber
mithilfe von OpenServer 3.0 oder Open Desktop 3.0 (OS 3.0 ODT
3.0) mit installiertem SCO Development System kompiliert
werden, wobei eine gute Portierung von GCC 2.5.x zum Einsatz
kommen sollte. Für ODT oder OS 3.0 benötigen Sie eine gute
Portierung von GCC 2.5.x. Ohne eine solche gute Portierung
können eine Menge Probleme entstehen. Die Portierung für
dieses Produkt erfordert das SCO Unix Development-System. Ohne
dieses fehlen Ihnen die Bibliotheken und der erforderliche
Linker. Ferner benötigen Sie
SCO-3.2v4.2-includes.tar.gz
. Diese Datei
enthält die Änderungen an den Include-Dateien des SCO
Development Systems, die für die Erstellung von MySQL
benötigt werden. Sie müssen die vorhandenen
System-Include-Dateien durch diese modifizierten
Header-Dateien ersetzen. Sie erhalten sie unter
ftp://ftp.zenez.com/pub/zenez/prgms/SCO-3.2v4.2-includes.tar.gz.
Um FSU-Pthreads auf Ihrem System zu erstellen, sollten Sie
nichts weiteres tun müssen, als GNU make
auszuführen. Das Makefile
in
FSU-threads-3.14.tar.gz ist so konfiguriert, dass es
FSU-threads erstellt.
Sie können ./configure im Verzeichnis
threads/src
ausführen und die Option SCO
OpenServer auswählen. Dieser Befehl kopiert
Makefile.SCO5
nach
Makefile
. Danach führen Sie
make aus.
Zur Installation in das Standardverzeichnis
/usr/include
melden Sie sich als
root
und wechseln dann in das Verzeichnis
thread/src
. Dort führen Sie
make install aus.
Denken Sie daran, GNU make zur Erstellung von MySQL zu verwenden.
Hinweis: Wenn Sie
mysqld_safe nicht als
root
starten, erhalten Sie nur die
standardmäßig vorgesehenen 110 offenen Dateien pro Prozess.
mysqld schreibt eine entsprechende
Anmerkung in die Logdatei.
Bei SCO 3.2V4.2 sollten Sie FSU-Pthreads Version 3.14 oder höher verwenden. Der folgende configure-Befehl sollte funktionieren:
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"
Unter Umständen treten Probleme mit einigen Include-Dateien auf. In diesem Fall finden Sie neue SCO-spezifische Include-Dateien unter ftp://ftp.zenez.com/pub/zenez/prgms/SCO-3.2v4.2-includes.tar.gz.
Sie sollten diese Datei in das Verzeichnis
include
Ihres MySQL-Source-Trees
entpacken.
Anmerkungen zur SCO-Entwicklung:
MySQL sollte FSU-Pthreads automatisch erkennen und
mysqld mit -lgthreads -lsocket
-lgthreads
verknüpfen.
Die SCO-Entwicklungsbibliotheken sind in FSU-Pthreads mehrfach aufrufbar. SCO behauptet, dass seine Bibliothek mehrfach aufrufbar ist, mithin muss sie also auch bei FSU-Pthreads mehrfach aufrufbar sein. FSU-Pthreads unter OpenServer versucht, mithilfe des SCO-Schemas mehrfach aufrufbare Bibliotheken zu erstellen.
FSU-Pthreads wird mit GNU malloc
verknüpft ausgeliefert (zumindest gilt dies für die
Version unter ftp::/ftp.zenez.com). Wenn
Probleme mit der Speichernutzung auftreten, vergewissern
Sie sich, dass gmalloc.o
in
libgthreads.a
und
libgthreads.so
enthalten ist.
In FSU-Pthreads erkennen die folgenden Systemaufrufe das
Vorhandensein von pthreads: read()
,
write()
, getmsg()
,
connect()
, accept(),
select()
und wait()
.
Der Patch CSSA-2001-SCO.35.2, der üblicherweise als Sicherheits-Patch erg711905-dscr_remap (version 2.0.0) gelistet ist, beschädigt FSU-Threads und macht mysqld instabil. Wenn Sie mysqld auf einem System unter OpenServer 5.0.6 verwenden wollen, müssen Sie diesen Patch entfernen.
Setzen Sie SCO OpenServer 5 ein, dann müssen Sie unter
Umständen FSU-Pthreads mit -DDRAFT7
in
CFLAGS
neu kompilieren. Andernfalls
hängt sich InnoDB
beim Start von
mysqld auf.
SCO bietet Betriebssystem-Patches unter ftp://ftp.sco.com/pub/openserver5 für OpenServer 5.0.x.
Fehlerbehebungen für Sicherheitslücken und
libsocket.so.2
bietet SCO unter
ftp://ftp.sco.com/pub/security/OpenServer
und ftp://ftp.sco.com/pub/security/sse für
OpenServer 5.0.x an.
Sicherheitsrelevante Fehlerbehebungen für OpenServer vor
OSR506 und den Bugfix für telnetd
finden Sie unter
ftp://stage.caldera.com/pub/security/openserver/
oder
ftp://stage.caldera.com/pub/security/openserver/CSSA-2001-SCO.10/
als libsocket.so.2
und
libresolv.so.1
mit Anweisungen zur
Installation auf Systemen vor OSR506.
Es empfiehlt sich wohl, diese Patches vor der Kompilierung und Verwendung von MySQL zu installieren.
Ab Legend/OpenServer 6.0.0 gibt es native Threads, und die Beschränkung der Dateigröße auf 2 Gbyte entfällt.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.