官术网_书友最值得收藏!

Creating and configuring instances for non-partitioned environments

A DB2 instance can be defined as a logical container or as a logical context for databases. It can also be described as a layer between DB2 software binaries, a database, and its objects. Also it provides a level of isolation between databases; for example, it is possible to have two or more databases on the same environment, with the same name, but under different instances. It also provides and ensures the communication layer between clients and databases.

Getting ready

For this recipe (and almost all recipes in this book), we will use two servers running Red Hat Enterprise Linux Server x64 release 5.5 (Tikanga), named nodedb21 and nodedb22. The hostnames are optional, but our recommendation is to set up an identical environment to avoid confusion during reading and applying the recipes.

As install location for the IBM DB2 9.7 Enterprise Server Enterprise software product, we will use the directory /opt/ibm/db2/V9.7 on nodedb21. On nodedb22, we will install DB2 Client software to location /opt/ibm/db2/V9.7_clnt. The instance owner will be db2inst1 on nodedb21 and db2clnt1 as client instance owner on nodedb22. Also, on nodedb21, we will create a second instance owner user named db2inst2, to demonstrate how to create an instance manually.

How to do it...

The default method to create an instance is during the IBM DB2 9.7 Enterprise Server Edition software installation. The other possible option is to use the db2icrt command.

In Linux and Unix, every instance is created under a dedicated user, called the instance owner. To create an instance in Linux and UNIX you have to be the root user; on these platforms, we are limited to one instance per user. On Microsoft Windows platforms, you may have more than one instance created under the same user.

Usually, if you set up the software in graphical mode you do not have to create the users manually—you can do this using the wizard. In our recipes, we want to reuse the same groups (db2iadm1 and db2fadm1) for the non-partitioned and the multipartitioned instance and database setup. For the multipartitioned setup we will have the same groups defined on both servers; because we have to deal with security regarding permissions, here, we should create the groups with the same group ID (GID):

  1. Create primary groups with the same GID on both servers:
    [root@nodedb21 ~]# groupadd -g 1103 db2iadm1 [root@nodedb21 ~]# groupadd -g 1102 db2fadm1 [root@nodedb21 ~]# [root@nodedb22 ~]# groupadd -g 1103 db2iadm1 [root@nodedb22 ~]# groupadd -g 1102 db2fadm1 [root@nodedb22 ~]#
    

    Tip

    Downloading the example code

    You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

  2. Run db2setup from the IBM DB2 9.7 Enterprise Server Edition software installation kit.

    Note

    Instance owner user db2inst and fenced user db2fenc will be created during installation. The groups db2iadm1 and db2fadm1 will automatically fill in on the screen.

  3. To create a new instance during the installation with db2setup in graphical mode, navigate through configuration steps 1 to 6 and, at step 7 you will find Create a DB2 instance option checked; this is the default option.and let as it is.Click Next.
    How to do it...
  4. At step 8—Partitioning options—you will find Single partition instance option checked ; this is the default option and let as it is. Click Next and finalize installation. If installation was successful, we have a new instance named db2inst1 created.

    Another way to create an instance is to use the db2icrt command. This method is suitable in the case that you install the DB2 software with db2_instal (manual installation), or that you do not check the Create a DB2 instance option during installation with db2setup. Other scenarios would be if you drop an instance and want to create a new one, or if you want to create an additional instance.

  5. As mentioned previously, in Linux and Unix, every instance has to be created under an instance owner user. As a root user, we will create the user db2inst2 as instance owner and db2fenc2 as fenced user; set passwords identical to the individual usernames:
    [root@nodedb21 ~]# useradd -g db2iadm1 db2inst2 [root@nodedb21 ~]# useradd -g db2fadm1 db2fenc2 [root@nodedb21 ~]# passwd db2inst2 Changing password for user db2inst2. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@nodedb21 ~]# passwd db2fenc2 Changing password for user db2fenc2. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@nodedb21 ~]#
    
  6. At this step, set the communication protocol to TCP/IP. The instance communication protocol is set up using the DB2COMM variable. We can set this variable no protocol managers will be started and will lead to communication errors at the client side.
    [db2inst2@nodedb21 ~]$ db2set DB2COMM=TCPIP [db2inst2@nodedb21 ~]$
    
  7. Next, as user root, edit /etc/services and add db2c_db2inst2 50002/tcp entry (highlighted in bold in the listing bellow). Port 50002 will be assigned to db2inst2 instance. Port 50001 corresponds to the db2c_db2inst1 service name and was added at db2inst1 instance creation. Port names prefixed with DB2 are reserved for inter-partition communication, a subject that we're going to discuss later on.
    db2c_db2inst1 50001/tcp
    DB2_db2inst1 60000/tcp
    DB2_db2inst1_1 60001/tcp
    DB2_db2inst1_2 60002/tcp
    DB2_db2inst1_END        60003/tcp db2c_db2inst2 50002/tcp
    

    Note

    If you choose to use only port numbers for SVCENAME database manager parameter you do not need to edit this file.

  8. As root user, create instance db2inst2, using the previously created users as instance owner and fenced user:
    [root@nodedb21.~]# /opt/ibm/db2/V9.7/instance/db2icrt -a SERVER ENCRYPT -p db2c_db2inst2 -u db2fenc2 db2inst2 DBI1070I Program db2icrt completed successfully. [root@nodedb21 ~]#
    
    • We need to explain a little bit about the options used for creating instance db2inst2:
      • The -a option indicates the authentication type; the default is SERVER. Using the -a option, the following authentication modes are available: SERVER, CLIENT, and SERVER ENCRYPT. We may change it later by modifying the AUTHENTICATION or the SRVCONN_AUTH instance parameter.
      • The -u switch is used to set the fenced user.
      • The -p option is used to specify the port or its corresponding service name used for client communication, as defined in /etc/services. The port or service name may be changed later by modifying the SVCENAME database manager parameter
      • For MS Windows platforms, we don't have the -a option to specify the authentication mode. The -p option in Windows has a different meaning; it is used to specify the instance profile. The -u option is for specifying the account name and password used that will be included in the Windows service definition associated with the instance.

Note

To use the Control Center for managing an instance locally or remotely, you need to have DB2 Administration Server (DAS) up and running, on the server.

To check the status of DAS, execute the following command, as DAS owner user, which is in our case dasusr1:

[dasusr1@nodedb21 ~]$ db2dascfg get dasstatus

ACTIVE

[dasusr1@nodedb21 ~]$

Usually, it is installed and created during IBM DB2 software installation. If there is no DAS created, you should create it using the dascrt command. The steps are similar to those for creating an instance—create a group and a user. It has to be created by specifying the owner.

For example, /opt/ibm/db2/V9.7/instance/dascrt -u dasusr1.

How it works...

In Linux or Unix, when an instance is created, the db2icrt command builds up under the instance owner home directory, the sqllib directory, as a collection of symbolic links pointing to the IBM DB2 software installation home directory. If you want to see what is executing db2icrt in the background, you need to include the d option to enable debug mode. This explains what happens behind the scenes for the steps mentioned earlier. Usually, this switch is used for detailed diagnostics, and should be activated at the request of IBM support.

Almost all files and directories from sqllib directory are symbolic links to the corresponding installation path (DB2HOME). A short listing inside sqllib directory looks like this:

[db2inst1@nodedb21]/home/db2inst1/sqllib>symlinks -v . other_fs: /home/db2inst1/sqllib/map -> /opt/ibm/db2/V9.7/map other_fs: /home/db2inst1/sqllib/bin -> /opt/ibm/db2/V9.7/bin other_fs: /home/db2inst1/sqllib/ruby64 -> /opt/ibm/db2/V9.7/dsdriver/ruby64

On MS Windows platforms, the db2icrt command creates a service. The binaries are actually copied and a service associated with the instance is created.

On a generic Windows machine we'll create an instance named db2win. Initially, the associated service has the status set to stopped and the startup type set to manually. If you want the service to start automatically at system boot, you have to change its startup type to automatic.

To create instance db2win, execute the following command under a privileged user:

C:\Windows\system32>db2icrt db2win DB20000I The DB2ICRT command completed successfully.

To find the associated Windows service with db2win instance, execute the following command:

C:\Windows\system32>sc query state= all | findstr "DB2WIN" SERVICE_NAME: DB2WIN DISPLAY_NAME: DB2 - DB2COPY1 - DB2WIN C:\Windows\system32>

There's more...

The db2isetup graphical tool might be used also for creating instances; this tool is available only on the Linux and Unix platforms.

On Linux and Unix you have the possibility to create a non-root type instance using the installer. You are limited to only one non-root instance per server.

Updating instances using the db2iuptd command

Usually this command is used to update an instance after an upgrade to a higher version, or migrate an instance from a lower product level such as Workgroup Edition to Enterprise Edition. Also it might be used for instance debug using the -d option. Like db2icrt, this command has its own particularities on MS Windows operating systems. To find the available options and related descriptions of this command issue db2iuptd -h. For non-root type instances exists a variant of this command named db2nruptd.

主站蜘蛛池模板: 揭西县| 垦利县| 沂南县| 赤峰市| 扎鲁特旗| 瑞金市| 新晃| 道真| 泾阳县| 田东县| 即墨市| 婺源县| 满洲里市| 沿河| 三亚市| 聊城市| 右玉县| 梁河县| 永吉县| 会泽县| 穆棱市| 鸡东县| 玉溪市| 萨迦县| 冀州市| 泸水县| 军事| 宜黄县| 巧家县| 三台县| 桃园市| 大连市| 安平县| 博乐市| 同仁县| 桃园县| 阳朔县| 宜春市| 昌乐县| 亳州市| 新安县|