Manual:IBM DB2

Category:Pages kept for historical interest

MediaWiki had experimental IBM DB2 support between 1.15 and 1.21 where it was removed due to lack of maintainership.

Prerequisites

Database creation

Before you can run the MediaWiki web installer, you have to create a database for MediaWiki to hold its data. In the commands below, wikidb is the name of the database. If you are using the command line, you will have to issue the commands in a single line each.

db2 CREATE DATABASE wikidb AUTOMATIC STORAGE YES USING CODESET UTF-8 TERRITORY US COLLATE USING SYSTEM PAGESIZE 32768

Enable the statement concentrator, which should get you the performance benefits of prepared statements without changing the MediaWiki codebase to use prepared statements everywhere

db2 CONNECT TO wikidb
db2 UPDATE DATABASE CONFIGURATION USING STMT_CONC LITERALS IMMEDIATE
db2 connect reset
db2stop
db2start

Enable the ability to do limits and offsets in the where clause.

db2 connect reset
db2stop
echo Set compatibility to 01 or 0F
db2set DB2_COMPATIBILITY_VECTOR=01
db2start

Installation scripts

RightScale

RightScale is a automation wrapper around the Amazon EC2 cloud environment. It has ready-made images for running IBM DB2.

Script for installing IBM DB2 PHP extension

This will install the ibm_db2 php extension on the base Ubuntu image on RightScale. It assumes you have the IBM Data Server Driver for ODBC and CLI attached to the script.

#!/bin/bash
 echo "Installing packages"
 apt-get update && apt-get -y install libstdc++5 libaio1 php-pear php5-dev php5 libapache2-mod-php5
 
 TAR1=${ATTACH_DIR}/v9.7_linuxia32_odbc_cli.tar.gz
 TAR2=${ATTACH_DIR}/ibm_data_server_driver_for_odbc_cli_32_linuxia32_v97.tar.gz
 
 echo "Unzipping"
 if [ -f ${TAR1} ]; then
   tar --index-file /tmp/odbc_cli.tar.log -xvvf ${TAR1} -C /tmp/
 elif [ -f ${TAR2} ]; then
   tar --index-file /tmp/odbc_cli.tar.log -xvvf ${TAR2} -C /tmp/
 else
   echo "File not found"
 fi
 echo "Deploying unzipped DB2 libraries"
 cd /tmp
 cp -ru odbc_cli/clidriver/* /usr
 
 echo "Installing php extension"
 pecl install ibm_db2 << COMMANDS
 1
 /usr
 
 COMMANDS
 echo "Updating php.ini"
 echo "extension=ibm_db2.so" >> /etc/php5/apache2/php.ini
 
 echo "Restarting the web server"
 /etc/init.d/apache2 restart
 
 exit 0

Script for deploying a MediaWiki archive

This script assumes it has a MediaWiki installer attached in a MediaWiki.tar.gz file:

#!/bin/bash

mkdir /var/www/mediawiki -m 777
chown www-data:www-data /var/www/mediawiki
tar --index-file /tmp/MediaWiki.tar.log -xvvf ${ATTACH_DIR}/MediaWiki.tar.gz -C /var/www/mediawiki

exit 0

Script for creating a MediaWiki database

#!/bin/bash

echo "Creating database"
su - db2inst1 -c "db2 CREATE DATABASE wikidb AUTOMATIC STORAGE YES USING CODESET UTF-8 TERRITORY US COLLATE USING SYSTEM PAGESIZE 32768"
echo "Enable the Statement Concentrator"
su - db2inst1 -c "db2 CONNECT TO wikidb && db2 UPDATE DATABASE CONFIGURATION USING STMT_CONC LITERALS IMMEDIATE"
echo "Restarting DB2"
su - db2inst1 -c "db2stop force"
su - db2inst1 -c "db2start"

exit 0

SQL data types

MySQLPostgresDB2Notes
INTINTEGERINTEGER
INT UNSIGNEDINTEGERBIGINT
TINYINTSMALLINTSMALLINT
TINYINT UNSIGNEDSMALLINT
BIGINTBIGINTBIGINT
BIGINT UNSIGNEDBIGINTpage.page_counter, ss_total_views, ss_total_edits, ss_good_articles
REALNUMERIC(15,14)NUMERIC(15,14)
BOOLSMALLINTSMALLINT
ENUMTEXTVARCHAR(255)
BINARY(14)TIMESTAMPTZTIMESTAMP(3)
BINARY(40)TEXTVARCHAR(40)
VARBINARY(16)BYTEAVARCHAR(16) FOR BIT DATA
VARBINARY(20)TEXTVARCHAR(20)
VARBINARY(32)TEXTVARCHAR(32)
VARBINARY(40)CIDRVARCHAR(40)recentchanges.rc_ip
VARBINARY(60)TEXTVARCHAR(60)
VARCHAR(32)TEXTVARCHAR(32)
VARCHAR(70) BINARYTEXTVARCHAR(70)
VARCHAR(70) BINARYTEXTVARCHAR(86)categorylinks.cl_sortkey for compatibility with MW 1.10
VARCHAR(255)TEXTVARCHAR(255)
VARCHAR(255) BINARYTEXTVARCHAR(255)
TINYBLOBTEXTVARCHAR(1024)
BLOBTEXTCLOB(64K) INLINE LENGTH 4096
MEDIUMBLOBTEXTCLOB(16M) INLINE LENGTH 4096
LONGBLOBTEXTCLOB(4G) INLINE LENGTH 4096Not used
TINYTEXTTEXTVARCHAR(1024)
TEXTTEXTCLOB(64K) INLINE LENGTH 4096

If you see something that doesn't match the above table, please email User:Leonsp or post on the WikiTech-l mailing list.

See also

Category:Database#IBM%20DB2 Category:Installation#IBM%20DB2
Category:Database Category:Installation Category:Pages kept for historical interest