Use the latest production release of MySQL. Should you choose to use an older release of MySQL on UnixWare 7.1.x, you must use a version of MySQL at least as recent as 3.22.13 to get fixes for some portability and OS problems.
We have been able to compile MySQL with the following configure command on UnixWare 7.1.x:
CC="cc" CFLAGS="-I/usr/local/include" \ CXX="CC" CXXFLAGS="-I/usr/local/include" \ ./configure --prefix=/usr/local/mysql \ --enable-thread-safe-client --with-berkeley-db=./bdb \ --with-innodb --with-openssl --with-extra-charsets=complex
If you want to use gcc, you must use gcc 2.95.3 or newer.
CC=gcc CXX=g++ ... ./configure ...
The version of Berkeley DB that comes with either UnixWare
7.1.4 or OpenServer 6.0.0 is not used when building MySQL.
MySQL instead uses its own version of Berkeley DB. The
configure command needs to build both a
static and a dynamic library in
but it does not with MySQL's own
version. The workaround is as follows.
Configure as normal for MySQL.
cp -p Makefile Makefile.sav
Use same options and run ../dist/configure.
cp -p Makefile.sav Makefile
Change to top source directory and run gmake.
This enables both the shared and dynamic libraries to be made and work.
SCO provides operating system patches at ftp://ftp.sco.com/pub/unixware7 for UnixWare 7.1.1, ftp://ftp.sco.com/pub/unixware7/713/ for UnixWare 7.1.3, ftp://ftp.sco.com/pub/unixware7/714/ for UnixWare 7.1.4, and ftp://ftp.sco.com/pub/openunix8 for OpenUNIX 8.0.0.
The UnixWare 7 file size limit is 1 TB with VXFS. Some OS utilities have a limitation of 2GB.
On UnixWare 7.1.4 you do not need to do anything to get large file support, but to enable large file support on prior versions of UnixWare 7.1.x, run fsadm.
fsadm -Fvxfs -o largefiles /#
fsadm /* Note #
/etc/conf/bin/idtune SFSZLIM 0x7FFFFFFF** Note #
/etc/conf/bin/idtune HFSZLIM 0x7FFFFFFF** Note #
/etc/conf/bin/idbuild -B* This should report "largefiles". ** 0x7FFFFFFF represents infinity for these values.
Reboot the system using
By default, the entries in
/etc/conf/cf.d/mtune are set as follows:
Value Default Min Max ----- ------- --- --- SVMMLIM 0x9000000 0x1000000 0x7FFFFFFF HVMMLIM 0x9000000 0x1000000 0x7FFFFFFF
To make changes to the kernel, use the idtune
name parameter command.
idtune modifies the
/etc/conf/cf.d/stune file for you. To set
the kernel values, execute the following commands as
/etc/conf/bin/idtune SDATLIM 0x7FFFFFFF#
/etc/conf/bin/idtune HDATLIM 0x7FFFFFFF#
/etc/conf/bin/idtune SVMMLIM 0x7FFFFFFF#
/etc/conf/bin/idtune HVMMLIM 0x7FFFFFFF#
/etc/conf/bin/idtune SFNOLIM 2048#
/etc/conf/bin/idtune HFNOLIM 2048
Then rebuild and reboot the kernel by issuing this command:
/etc/conf/bin/idbuild -B && init 6
To tune the system, the proper parameter values to use depend on the number of users accessing the application or database and size the of the database (that is, the used buffer pool). The following kernel parameters can be set with idtune:
SHMMAX(recommended setting: 128MB) and
SHMSEG(recommended setting: 15). These parameters have an influence on the MySQL database engine to create user buffer pools.
HFNOLIMshould be at maximum 2048.
NPROCshould be set to at least 3000/4000 (depends on number of users).
The following formulas are recommended to calculate values for
SEMMSL = 13
13 is what has been found to be the best for both Progress and MySQL.
SEMMNS = SEMMSL *
number of db servers to be run on the system
SEMMNSto the value of
SEMMSLmultiplied by the number of database servers (maximum) that you are running on the system at one time.
SEMMNU = SEMMNS
Set the value of
SEMMNUto equal the value of
SEMMNS. You could probably set this to 75% of
SEMMNS, but this is a conservative estimate.