Académique Documents
Professionnel Documents
Culture Documents
openSUSE 13.1
SUSE Linux Enterprise 11 SP2 (32-bit)
Red Hat/Oracle Linux 6.4
Red Hat/Oracle Linux 6.5
Windows 7
Windows 8.1
Windows Server 2012
Windows Server 2012 R2
SQL Server 2008
SQL Server 2012*
Oracle 11g
Oracle 12c
Oracle TimesTen 11.2.2.4.1**
MySQL 5.5
MySQL 5.6
PostgreSQL 9.1
PostgresQL 9.2
EnterpriseDB Postgres Plus Advanced Server 9.0***
EnterpriseDB Postgres Plus Advanced Server 9.1***
EnterpriseDB Postgres Plus Advanced Server 9.2***
Greenplum Database Community Edition 4.2.1.0
****
Redis 2.6.13
Windows
Databases
*HammerDB has not been tested on any version of Microsoft SQL Server prior to 2008 and no updates will
made to support prior releases. In particular functionality used in HammerDB is known absolutely to not
be compatible with SQL Server 2000 or earlier. SQL Server 2005 has not been tested. For SQL Server 2012
use SQL Server Native Client 11.0, for SQL Server 20008 use SQL Server Native Client 10.0.
**HammerDB has been verified against TimesTen version 11.2.2.4.1, HammerDB is known not to work
against TimesTen version 11.2.2.4.0 or any earlier version and no updates will made to support prior
releases.
***PostgreSQL support has been provided both for native PostgreSQL and EnterpriseDBs Oracle
compatible mode. Oracle compatible mode will only work against EnterpriseDB Postgres Plus Advanced
Server. With Oracle compatible mode DRITA functionality does not work against the initial release of
Postgres Plus Advanced Server 9.1AS due to a bug within the database software. To enable DRITA
functionality apply a patch to resolve this issue and test to ensure that DRITA snapshots work.
****The Greenplum Database is supported for the PostgreSQL TPC-H workload only.
You may compile from source to support non Linux or Windows platforms however none of these platforms
have been tested and for performance reasons critical to load testing installing HammerDB on Linux or
Windows on Intel x86/x86-64 based architectures is strongly recommended even for testing databases on
different platforms.
Linux
On a Linux operating system run the command uname m to determine whether your installation is 32 or
64-bit. If the command returns the following:
[root@system1 ~]# uname -m
i686
Your system is 32-bit and you need the x86 installer package for HammerDB. If however the result is as
follows
[root@system2 ~]# uname -m
x86_64
Your system is 64-bit and you need the x86-64 installer package.
If you have a system with HammerDB pre-installed to check the installation look in the readme file. For
example the following line:
HammerDB v2.16 for Linux 64-bit x86-64
denotes a 64-bit installation. You can verify this by running the following command in the HammerDB
console to show the machine type which in this case is 64-bit (note AMD64 denotes the architecture and
will be the output on both Intel and AMD processors):
You can also use the Linux file command on the executable tclsh8.6 and wish8.6 in the bin directory to
verify the compatibility.
Windows
Microsoft has published an FAQ on 32-bit and 64-bit installations here.
32-bit-and-64-bit-Windows-frequently-asked-questions
As detailed in this FAQ right-clicking on Computer and selecting properties displays the system type. The
following example shows a 64-bit x86-64 Windows installation.
Windows users should also be aware that Windows enables the emulation of 32-bit Windows environment
on a 64-bit operating system with an implementation called WOW64 . Windows users should therefore pay
particular attention to the 32 and 64-bit installations of their environment. For example a 32-bit database
client may be installed without error on 64-bit Windows but HammerDB for 64-bit Windows will not be able
to load the 32-bit client libraries. You should not run performance critical tests under the 32-bit emulated
environment and should instead use the 64-bit native version of HammerDB and the accompanying 64-bit
database libraries. However for educational purposes where only a 32-bit database is available such as the
Express Editions of Oracle and SQL Server HammerDB for 32-bit will provide full functionality against this
environment on a 64-bit Windows installation.
When installing HammerDB on a 64-bit Windows environment the installer will automatically detect your
environment and recommend the installation of HammerDB in the correct location. For the 64-bit
application this will be in C:\Program Files and for the 32-bit application this will be in C:\Program
Files (x86) as shown in figure 2.
Before installing HammerDB on Windows Oracle users of 32-bit software on 64-bit operating systems
should be aware of Oracle bug #3807408.
This bug in some versions of the Oracle client and database software causes Oracle error:
ORA-12154: TNS:could not resolve the connect identifier specified
This bug is caused whenever any Oracle client program (including HammerDB) is installed in a directory
containing parenthesis such as the following:
"C:\Program Files (x86)\..."
(NOTE: This is an Oracle software bug not a HammerDB one).
The Oracle recommended workaround is as follows:
Use a version of the Oracle client AND database software that contains the fix for Bug 3807408. This fix
requires that both the client and database software be patched.
OR
Find the location of the application that is generating the error. Check the path to this location and see if it
contains any parenthesis. If so, you must relocate the application to a directory without any parenthesis in
the path.
Therefore if running HammerDB on Windows and your client or database is affected by Oracle bug 3807408
then either patch Oracle or ensure that HammerDB is installed to a directory that does not contain
parenthesis.
Oracle
For Oracle on Linux the important environment variables are ORACLE_HOME and LD_LIBRARY_PATH and on
Windows the PATH environment variable is set automatically during installation in the system properties.
When using the Oracle instant client Oratcl uses the additional environment variable ORACLE_LIBRARY to
identify the Oracle client library. On the Windows the Oracle client library is called oci.dll in a location such
as:
C:\oraclexe\app\oracle\product\11.2.0\server\bin
On Linux the library is called libclntsh.so where this is typically a symbolic link to a product specific name
such as libclntsh.so.11.1 for Oracle 11g.
An example .bash_profile file is shown for a typical Oracle environment.
oracle@server1 oracle]$ cat ~/.bash_profile
# .bash_profile
if [ -t 0 ]; then
stty intr ^C
fi
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
umask 022
export
export
export
export
export
export
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
LD_LIBRARY_PATH=$ORACLE_HOME/lib
ORACLE_LIBRARY=$ORACLE_HOME/lib/libclntsh.so
ORACLE_SID=PROD1
PATH=$ORACLE_HOME/bin:$PATH
For Oracle TimesTen configuration see the supplementary HammerDB TimesTen OLTP guide. In particular
note that although TimesTen uses OCI connectivity all required Oracle client software should be installed
from the TimesTen installation software and not from a standard Oracle install.
SQL Server
On SQL Server on Windows the client libraries and necessary environment variables are set automatically
during the SQL Server installation. Note that on 64-bit Windows the 64-bit ODBC client library is named
ODBC32.DLL in the following location. C:\Windows\System32\odbc32.dll and the 32-bit library is in
C:\Windows\SysWOW64\odbc32.dll.
MySQL
HammerDB version 2.16 has been built and tested against a MySQL 5.6 client installation. On Linux this
means that HammerDB will require a MySQL client library called libmysqlclient.so.18. This client library
needs to be referenced in the LD_LIBRARY_PATH in the same way described for Oracle previously in this
section. If you do not have the correct client library you can either install a more recent client or create a
symbolic link named libmysqlclient.so.18 to an older library such as libmysqlclient.so.16. On Windows the
MySQL client library is included with HammerDB.
PostgreSQL
For PostgreSQL the client library is called libpq.dll on Windows and libpq.so on Linux however note that
additional libraries are also required. For Windows this means setting your PATH environment variable such
as the following:
D:\PostgreSQL\pgsql\bin;
On Linux it is required to set the LD_LIBRARY_PATH environment variable in the same way described for
Oracle previously in this section to the location of the PostgreSQL lib directory. Alternatively for
installations of EnterpriseDB the client directory also contains the necessary files for a HammerDB
installation. Where both 32 and 64-bit installations PostgreSQL is particularly sensitive to requiring a PATH
or LD_LIBRARY_PATH with the required versions of the libraries. Failure to do this will result in the error
invalid argument as shown.
% package require Pgtcl
couldn't load library "C:/Program Files/HammerDB2.12/lib/pgtcl2.0.0/libpgtcl.dll": invalid argument
When following the troubleshooting section further in this document to manually test PostgreSQL library
loading if the error invalid argument is received ensure that the PATH or LD_LIBRARY_PATH environment
variable points to the correct location only (and no other location). On Windows you also need to reboot
your system when you have changed the PATH to ensure that the correct library is loaded without error.
Redis
The Redis client package is included with HammerDB for all installations and requires no further
configuration.
To start the installer on Linux make the installer file executable and then run the installer executable.
[oracle@server1 ~]$ chmod u+x HammerDB-2.16-Linux-x86-64-Install
[oracle@server1 ~]$ ./HammerDB-2.16-Linux-x86-64-Install
On Windows double-click on the setup file that is appropriate for your system.
The installer will start giving you the option of selecting the installation language
Figure 5 Continue
Figure 6 Welcome
Choose the destination location and Click Next. To change the default location Click Browse and select a
new location.
Figure 10 Complete
10
Starting HammerDB
This section details how to start HammerDB after the software has been installed.
Linux
On Linux run HammerDB with the user with the correct permissions to access the database environment to
which you are connecting. The following example shows the oracle user for which we have configured the
Oracle client environment as shown previously in this document. Then set the DISPLAY environment
variable.
[oracle@server1 HammerDB-2.16]$ export DISPLAY=server1:0.0
and as the user for your chosen database run HammerDB.tcl directly from within the HammerDB directory.
11
Windows
To run HammerDB on Windows make sure that you have the correct permissions for your user to load
the required database libraries. If you are unsure review the section on Microsoft UAC later in this
document. Start HammerDB by double-clicking on the file hammerdb.bat.
Config.xml
In the HammerDB directory is a configuration file called config.xml that is read when HammerDB starts. If
the config.xml file is correctly formed the data defined will be applied to the menus and options within
HammerDB to enable customisation to your own environment.
At the top of the configuration file the value of the rdbms setting can be Oracle, MySQL, MSSQLServer ,
PostgreSQL or Redis
<?xml version="1.0" encoding="utf-8"?>
<hammerdb>
<rdbms>Oracle</rdbms>
</hammerdb>
For the other config.xml values please consult the relevant guides for the workloads they represent.
12
Figure 12 Uninstall.exe
And HammerDB will be deleted from the system. Click Finish to complete the uninstall process.
13
Troubleshooting
The following sections give examples of how to troubleshoot installation and configuration issues with
HammerDB.
14
To troubleshoot library errors you can manually verify the library loading by starting the tclsh prompt and
loading a library at the command line. On Linux for example you can do this by changing to the HammerDB
directory, exporting the LD_LIBRARY_PATH environment variable to include the HammerDB lib directory to
be searched first and then starting tclsh8.6 as follows:
[oracle@server1 HammerDB-2.16]$ export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH
15
Figure 17 tclsh86t.exe
At the prompt type the command to load the library that has produced the error. The following example
shows that the loading of Oratcl was not successful as oci.dll could not be loaded with error 126. This
particular error means that the library cannot be found. Another common error, error 193 is the result of
attempting to load the 64-bit oci.dll into the 32-bit version of HammerDB on Windows and is resolved by
ensuring the correct 32-bit Oracle client is installed. Troubleshoot your error with the appropriate
documentation for your database.
16
./lib/libtk8.6.so)
wish8.6: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by
./lib/libtcl8.6.so)
wish8.6: /lib64/libc.so.6: version `GLIBC_2.11' not found (required by
./lib/libtcl8.6.so)
You can check your version of GLIBC by running the following command, so for example this version of glibc
from is compatible.
# ./lib64/libc.so.6
GNU C Library stable release version 2.12, by Roland McGrath et al.
Copyright (C) 2010 Free Software Foundation, Inc.
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.3 (Santiago)
This version is no longer current.
# /lib64/libc.so.6
GNU C Library stable release version 2.5, by Roland McGrath et al.
Copyright (C) 2006 Free Software Foundation, Inc.
# cat /etc/redhat-release
17
Note that at version 2.16 HammerDB has a dependency on features in TCL 8.6 and therefore
will not operate with the libraries from previous versions of HammerDB.
18
Figure 19 wish85t.exe
19
20
21
make
make install
MySQLTcl
cd mysqltcl-3.052
./configure --enable-threads -with-mysql-include=/u01/mysql/include -with-mysqllib=/u01/mysql/lib
make
make install
PgTcl
cd pgtcl2.0.0
./configure -with-postgres-include=/pg/PostgresPlus/9.2AS/include -withpostgres-lib=/pg/PostgresPlus/9.1AS/lib
make
make install
Redis
Copy the Redis directory from the lib directory from one of the installer packages.
By default your software will have been installed in the /usr/local/bin and /usr/local/lib directories. Take the
installation for HammerDB on Linux or Windows and replace the bin and lib directories with the bin and lib
directories you have just compiled. HammerDB will now run on your chosen platform.
22