5. 安装注意事项和规划

在验证您的系统满足基本要求之后,您应该通过考虑安装方法以及用户和组的创建来规划您的安装

5.1. 安装方法

下载并解压 tar.gz 文件后,文件树看起来像这样

exp/ -|
    disk1/ -|
      db2_install    (* command line installation script *)
      db2setup       (* GUI installation launcher *)
      installFixPack (* not applicable for Express-C *)
      db2/ -|        (* installation and licensing files *)
      doc/ -|        (* install instructions and release notes *)

您可以使用三种方法来安装 DB2

每种方法都有其自身的优点和缺点。方法的选择取决于您的专业知识水平和环境类型,但一般来说,如果图形界面可用,建议使用 db2setup,因为它易于安装。

5.1.1. db2setup 安装

db2setup 命令启动 DB2 Launchpad,这是一个图形工具,用于配置和组织 DB2 安装。它布置 DB2 文件集,创建和配置 DB2 实例、用户和组、通信、DB2 工具使用的管理数据库,并设置通知进程。DB2 Launchpad 还允许您创建响应文件,以便将特定设置复制到其他系统。

对于经验较少的用户,使用 db2setup 是最佳方法,因为大多数配置在安装期间自动执行。如前所述,您需要一个能够渲染图形用户界面的 X Window 系统才能成功使用 db2setup

5.1.2. db2_install 安装

db2_install 命令脚本在您的 Linux 系统上安装所有 DB2 软件包。此方法可靠且常用于专家用户在更大、更复杂的系统上安装 DB2。但是,诸如设置用户和组、创建实例、工具目录数据库创建以及通知设置等任务需要在安装完成后手动执行。

db2_install 的一个限制是它仅以英语安装用户帮助(如帮助、消息和工具界面),而 db2setup 支持安装其他语言。此外,db2_install 安装可能需要更长的时间(由于手动配置任务较多);它需要更高的知识和技能水平,并且不能用于创建响应文件。

5.1.3. 响应文件安装

可以使用 DB2 安装向导或通过编辑现有的 DB2 响应 (.rsp) 文件来创建响应文件。它允许您在多台机器上安装 DB2,并具有一致的安装和配置设置。响应文件安装速度很快,因为它绕过了图形向导配置。使用响应文件而不是 db2_install 命令的另一个优点是它在每台机器上创建一个数据库管理服务器 (DAS),而使用 db2_install,DAS 必须在安装后手动创建。

安装映像上包含一个示例响应文件 (db2exp.rsp),可以对其进行修改并用于安装 DB2、配置用户、创建实例、设置通知、创建工具目录以及配置大量数据库管理参数。如果您已经拥有所需的所有信息,这是最快的安装方法。与 db2setup 不同,响应文件安装是非交互式的,并且最初准备响应文件需要更长的时间。

5.2. 用户和组设置

DB2 需要用户 ID 和组来进行数据库身份验证。本节讨论这些 ID 和组以及如何创建它们。

5.2.1. 用户和组要求

DB2 至少需要三个用户和组:实例所有者、fenced 用户和数据库管理服务器 (DAS) 用户。您可以使用安装实用程序提供的默认名称,或指定您自己的用户和组名称。例如,考虑以下由 DB2 安装 Launchpad 生成的默认用户 ID 和组名称

表 3. 默认用户 ID 和组名称

必需用户

用户名

组名

描述

实例所有者

db2inst1

db2grp1

管理 DB2 实例

Fenced 用户

db2fenc1

db2fgrp1

负责执行“fenced”用户定义的函数,例如 JDF 和存储过程。

DAS 用户

dasusr1

dasadm1

管理 DB2 管理服务器

5.2.2. 创建用户

您必须具有 root 权限才能创建用户和组。有三种方法可以创建 DB2 用户 ID

  • DB2 Launchpad:DB2 Launchpad 安装在安装期间为您创建所有必需的用户和组。上面表格中显示了创建的默认用户和组。此方法还允许您选择指定自己的用户和组名称。

  • 响应文件:如果在响应文件中指定用户和组信息,也可以在响应文件安装期间创建用户。例如,考虑以下响应文件中的条目,这些条目为 DB2 创建三个必需的用户和组

    * DAS user
    DAS_USERNAME = dasusr1
    DAS_GROUP_NAME = dasadm1
    DAS_HOME_DIRECTORY = /home/dasusr1
    DAS_PASSWORD = ******
    * Instance-owning user
    inst1.NAME = db2inst1
    inst1.GROUP_NAME = db2grp1
    inst1.HOME_DIRECTORY = /db2home/db2inst1
    inst1.PASSWORD = ******
    inst1.AUTOSTART = YES
    inst1.AUTHENTICATION = SERVER
    inst1.SVCENAME = db2c_db2inst1
    inst1.PORT_NUMBER = 50001
    inst1.FCM_PORT_NUMBER = 60000
    inst1.MAX_LOGICAL_NODES = 4
    * Fenced user
    nst1.FENCED_USERNAME = db2fenc1
    inst1.FENCED_GROUP_NAME = db2fgrp1
    inst1.FENCED_HOME_DIRECTORY = /db2home/db2fenc1
    inst1.FENCED_PASSWORD = ******

  • 使用命令行手动创建。要使用此方法,请按照以下步骤操作

    1. 以 root 身份登录到您的机器。

    2. 使用以下命令为实例所有者、fenced 用户和 DAS 用户创建组

      groupadd db2grp1
      groupadd db2fgrp1
      groupadd dasadm1
      Linux 将使用第一个可用的组 ID (GID) 号码创建组。如果您愿意,可以指定 GID 号码。

    3. 创建一个属于每个组的用户并指定主目录。例如,您可以选择将所有主目录放在/db2home通过输入以下命令

      useradd -g db2grp1  -m -d /db2home/db2inst1 db2inst1 -p password1
      useradd -g db2fgrp1 -m -d /db2home/db2fenc1 db2fenc1 -p password2
      useradd -g dasadm1  -m -d /db2home/dasusr1 dasusr1 -p password3
                          

5.2.3. 将现有用户添加为 DB2 用户

要使现有系统用户能够充当 DB2 实例管理员,您必须对现有用户帐户进行一些修改

  • 将您的用户添加到 db2grp1 组。SYSADM_GROUP 数据库管理器配置参数控制谁有权访问该实例中所有数据库的级别。您可以通过输入以下命令来确定哪个组设置为 SYSADM 组

    db2 get dbm cfg | grep SYSADM_GROUP

    默认情况下,DB2 将此设置为 db2grp1 组。要将用户添加到 SYSADM 组,请修改/etc/groups文件(以 root 身份),将用户帐户 ID 添加到 DB2 系统管理员组的行中。例如

    db2grp1:x:102:jackc,ellenp,frankj

  • 通过将以下行添加到主目录中的 .bashrc 文件来更新用户的配置文件

    # The following three lines have been added by the DB2 SYSADM.
    if [ -f /home/frankj/sqllib/db2profile ]; then
        . /home/frankj/sqllib/db2profile
    fi

  • 安装后,如果您希望授予或撤销对数据库(或其他对象)的访问权限,请使用控制中心的“用户和组”部分或 GRANT 和 REVOKE SQL 语句。如果您想查看示例,默认情况下,SAMPLE 数据库向“PUBLIC”授予了许多特权。