Skip to content

DB2 - 服务器安装

本章将指导您完成 IBM Db2 服务器的现代安装和设置方法。虽然传统的本地安装仍然是一个选项,但我们将重点关注使用 Docker 进行容器化,这是开发、测试和许多生产环境中推荐的方法,因为它具有速度快、一致性高和隔离性强的特点。

选项 1:使用 Docker 进行开发设置(推荐)

Section titled “选项 1:使用 Docker 进行开发设置(推荐)”

使用 Docker 是在任何机器上运行 Db2 实例最快、最流行的方式。它将数据库封装在一个轻量级、可移植的容器中。

  • Docker Desktop(适用于 Windows/Mac)或 Docker Engine(适用于 Linux)已安装并正在运行。
  • 对命令行有基本的了解。

打开您的终端,从 IBM 在 Docker Hub 上的官方仓库拉取最新的 Db2 Community Edition 镜像。

docker pull ibmcom/db2

执行以下命令启动新的 Db2 容器。此命令还将创建一个名为“testdb”的数据库。

docker run -itd --name mydb2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=your_password -e DBNAME=testdb -v /my/db2/data:/database ibmcom/db2

让我们分解一下这条命令:

  • docker run -itd:以交互式、分离模式运行容器。
  • --name mydb2:为您的容器分配一个易于记忆的名称。
  • --privileged=true:Db2 需要此权限才能获得必要的内核级权限。
  • -p 50000:50000:将您本地机器的 50000 端口映射到容器内部的 50000 端口,允许您从主机连接到数据库。
  • -e LICENSE=accept:您必须接受许可条款才能运行容器。
  • -e DB2INST1_PASSWORD=your_password:设置默认实例所有者 db2inst1 的密码。请选择一个强密码。
  • -e DBNAME=testdb:在启动时自动创建一个名为“testdb”的数据库。
  • -v /my/db2/data:/database:(可选但推荐)将主机上的本地目录挂载到容器中。这确保即使您删除容器,您的数据库数据也能持久保存。

要运行 Db2 命令,您需要以实例用户 db2inst1 的身份进入正在运行的容器的 shell。

docker exec -tiu db2inst1 mydb2 bash -c "db2start"

片刻之后,您可以连接到您的数据库:

docker exec -tiu db2inst1 mydb2 bash -c "db2 connect to testdb"

选项 2:在 Linux 上进行传统安装

Section titled “选项 2:在 Linux 上进行传统安装”

此方法适用于在本地或虚拟机上设置专用 Db2 服务器的系统管理员。

  • 处理器:现代多核 64 位 CPU(例如 x86-64, POWER)。
  • 内存:最低 4 GB,推荐 8 GB 或更高。
  • 硬盘:最低 50 GB 可用空间。
  • 操作系统:受支持的 Linux 发行版(例如 RHEL、SLES、Ubuntu)。
  • 软件:所需的库,例如 libstdc++、32 位兼容库等。请务必查阅官方 IBM 文档,以获取您的特定 Db2 版本和操作系统所需的精确前提条件。

安装前,使用安装程序中包含的 db2prereqcheck 工具来验证您的系统是否满足所有要求。

./db2prereqcheck -v 11.5.8.0
  1. 从 IBM 网站下载 Db2 服务器版本并解压存档。
  2. 运行非交互式安装脚本:./db2_install。
  3. 创建 Db2 实例所有者、隔离用户和管理用户。
  4. 使用 db2icrt 命令创建 Db2 实例:/opt/ibm/db2/V11.5/instance/db2icrt -u db2fenc1 db2inst1。
  5. 以实例所有者身份登录(su - db2inst1)并启动 Db2 实例(db2start)。

安装完成后,您可以验证版本和许可证信息。

此命令显示已安装 Db2 产品的当前版本和服务级别。

# 对于 Docker:
docker exec -iu db2inst1 mydb2 bash -c "db2level"
# 对于传统安装:
su - db2inst1
db2level

输出(示例):

DB21085I 此实例或安装(适用的实例名称:“db2inst1”)使用“64”位和 DB2 代码版本“SQL11058”,级别标识符为“0609010F”。
信息令牌为“DB2 v11.5.8.0”、“s2305101200”、“DYN2305101200AMD64”和 Fix Pack “0”。
产品安装在“/opt/ibm/db2/V11.5”。

此命令显示与许可证相关的信息。

# 在传统安装中以 root 或 sudo 身份运行
db2licm -l
# 对于 Docker,在容器内以 root 身份运行
docker exec -itu root mydb2 bash -c "/opt/ibm/db2/V11.5/adm/db2licm -l"

CLP 是与 Db2 交互的主要工具。它可以用三种模式使用:

  • 命令模式: 每个命令都以 db2 为前缀。适用于单个命令或脚本。示例:db2 connect to testdb。
  • 交互模式: 输入 db2 启动。提示符会变为 db2 =>,您可以直接输入 SQL 语句和命令,无需前缀。输入 quit 退出。
  • 批处理模式: 将您的命令放入文件中(例如 myscript.sql),并使用 db2 -tvf myscript.sql 执行。-t 标志使用分号作为语句终止符,-v 则会回显正在运行的命令。