Let's take a look at the DB2 ESE configuration with four database partitions, four servers, and one database partition per server. The following setup instructions are based on this configuration but can easily be adjusted for partitioned configurations with a fewer or greater number of servers and database partitions. For example, server_1 is the primary or instance-owning database partition server; server_2, server_3, and server_4 are the participating database partition servers.
When you install DB2 ESE with multiple-partition database environment, you need to follow similar considerations as described in the single-partition database environment.
Before performing the DB2 installation, you need to verify that each server:
meets the necessary installation requirements
has the correct operating system version and fix level
has enough memory to run DB2
has enough disk space for DB2 product installation
belongs to the same network
has the necessary user accounts for installation and setup
can communicate with each other via TCP/IP
has consistent time and date settings
For UNIX:
You must update kernel parameters to the recommended values for HP-UX, Linux, and Solaris.
Use db2osconf for Solaris.
A system restart is required.
For Solaris, set the following network parameters:
Set the TCP network parameters:
ndd ?set /dev/tcp tcp_xmit_hiwat 65536 ndd ?set /dev/tcp tcp_recv_hiwat 65536
Set the UDP network parameters:
ndd ?set /dev/udp udp_xmit_hiwat 65536 ndd ?set /dev/udp udp_recv_hiwat 65536
To list the current network settings:
no ?get /dev/tcp <network_parm> no ?get /dev/udp <network_parm>
For AIX, set the following network parameters:
Set the maximum number of processes to a higher value. The default value for maxuproc is 500.
chdev ?l sys0 ?a maxuproc='4096'
To list the current TCP/IP network setting:
no ?a | pg
To set the TCP/IP network parameters:
no ?o thewall=1048576 no ?o rfc1323=1 no ?o tcp_sendspace=655360 no ?o tcp_recvspace=655360 no ?o udp_sendspace=65536 no ?o udp_recvspace=655360 no ?o sb_max=1310720
Create a DB2 home file system on the primary server (server_1) and share this home directory to the participating servers (server_2, server_3, and server_4). This will be the instance home directory. You also need to create necessary file systems and/or raw devices to store database file structure, log files, backup images, table space containers, etc.
NOTE
For additional kernel parameters, refer to the DB2 ESE Quick Beginnings Guide.
After preparing the environment, you will install the DB2 product using the DB2 Setup Wizard. The installation includes the following:
It is recommended to install an instance-owning database partition server for the primary server (server_1) first:
./db2setup
Set up DB2 Administration Server (for the primary server, then the remaining participating servers).
Create DAS instance:
./dasicrt db2as
NOTE
The db2icrt and dasicrt commands must be run from the DB2 installation directory as root:
On AIX: /usr/opt/db2_08_01/instance
On HP-UX, Linux, Solaris: /opt/IBM/db2/V8.1/instance
On Windows: \Program Files\IBM\SQLLIB\bin
Start Administration Server:
db2admin start
It is recommended in setup to create a local administration contact list on the instance-owning database partition. When the DB2 Administration Server is installed and configured on the other participating database partition servers, it will be configured to use the contact list on the instance-owning database partition server.
NOTE
After installation, the instance-owning database partition on the server_1, the db2nodes.cfg file was updated as follows:
0 server_1 0
Set up DB2 instance and configuration.
Create DB2 instance:
./db2icrt ?a SERVER ?u db2fenc1 db2inst1
Modify .profile to include db2profile as needed:
# The following three lines have been added by UDB DB2. if [ -f $HOME/db2inst1/sqllib/db2profile ]; then . $HOME/db2inst1/sqllib/db2profile fi
The DB2COMM registry variable determines which protocols will be enabled when the database manager is started. You can use the db2set ?all command to verify or to set the DB2COMM registry to TCPIP protocol using:
db2set DB2COMM=TCPIP
You can use the db2 get dbm cfg command to verify the service name or to update SVCENAME in the database manager configuration file using:
db2 update dbm cfg using SVCENAME db2c_db2inst1
For communication between the DB2 server and remote clients, you need to add two entries in the /etc/services file on all servers:
db2c_db2inst1 50000/tcp # remote client's port
To enable the Control Center to manage partitioned databases, you must have a Control Center listener daemon running on each server. This daemon is called dd2cclst, and it is used by all instances that are created on a given server. On all servers, you must reserve a port called db2ccmsrv in the /etc/services for use by the db2cclst daemon:
db2ccmsrv 50100/tcp # Control Center Listener
You can use the db2licm ?l command to verify the existing license product.
Verify the port range that DB2 has reserved for database partitions communication. Before you create a DB2 instance, you must decide (as a minimum) how many database partitions will be defined per server.
Verify that the port range is available on each participating database partition server.
During the installation process, you specify a location and name for two response files. The first response file is for installing a replica of the primary server. The second response file is for installing database partition servers on participating computers (i.e., /dbhome/db2inst1/AddPartitionResponse.file).
For each participating database partition server, server_2, server_3, and server_4, you will install a database partition server using the response file created from the previous step. This ensures that the same components are installed and configured the same way:
db2setup ?r /dbhome/db2inst1/AddPartitionResponse.file
NOTE
You must log on to each participating server and perform a response file installation.
Verify and update the database partition configuration file (db2nodes.cfg) as needed. Based on the current configuration, with four servers and a database partition per server, update db2nodes.cfg to appear similar to the following:
0 server_1 0 1 server_2 0 2 server_3 0 3 server_4 0
Verify and enable communication between database partitions as needed. Communication between database partitions is handled by the FCM. To enable FCM, a port or port range must be reserved in the /etc/systems file on each computer in your partitioned database system. This task must perform on the participating server only.
Verify and enable the execution of remote commands. In a partitioned database environment, each database partition must have the authority to perform remote commands on all other database partition servers participating in an instance. This can be done by updating the .rhosts file in the home directory for the instance.
Add entries to the /dbhome/db2inst1/.rhosts file for each server, including the primary server. The .rhosts file has the following format:
hostname instance_owner_ID -------- ----------------- server_1.dntteam.com db2inst1 server_2.dntteam.com db2inst1 server_3.dntteam.com db2inst1 server_4.dntteam.com db2inst1
NOTE
This is a preferred approach for the .rhosts file.
- Instead of specifying each host name individually, you may specify the following entry in the .rhosts file, but this may pose a security risk and should be done only in a test environment. The following entry in the .rhosts allows this "trusted" user db2inst1 to execute remote commands from any hosts that are defined in the /etc/hosts file:
+ db2inst1
NOTE
For information on errors encountered during installation, on Windows, see the db2.log file. This db2.log file stores general information and error messages resulting from the install and uninstall activities. On Linux and UNIX, see the /tmp/db2setup.log.