Skip to content

DB2 - 实例

Db2 实例是一个完整、独立的数据库管理环境。您可以将其视为一个逻辑服务器,拥有自己的专用内存、后台进程和配置文件。一台物理服务器可以托管多个实例,允许您为开发、测试和生产创建独立的环境。

实例为 Db2 数据库管理器提供了运行时环境。其关系如下:

物理服务器 -> Db2 软件安装 -> 一个或多个实例 -> 每个实例一个或多个数据库。

每个实例目录都包含关键组件:

  • 数据库管理器配置(DBM CFG):一个包含实例级设置的文件,例如内存分配、诊断日志级别和通信协议。
  • 系统数据库目录:跟踪实例管理的所有数据库的目录。
  • 节点目录:用于远程连接的目录。
  • 诊断日志(db2diag.log):用于故障排除实例和数据库错误的主要日志文件。

虽然实例的概念是基础性的,但您与它交互的方式因部署模型而异。

这是传统模式,您将 Db2 安装在 Linux、UNIX 或 Windows 服务器上,并使用命令行工具完全控制实例的创建和管理。

一种现代且流行的开发和测试方法。Docker 容器通常运行一个单一的、预配置的 Db2 实例。您通过管理容器来管理实例的生命周期。

# 示例:在 Docker 容器中启动 Db2 Community Edition 实例
# 此命令将下载镜像并启动名为 'db2inst1' 的实例
docker run -itd --name mydb2 --privileged=true -p 50000:50000 -e DBNAME=testdb -e LICENSE=accept ibmcom/db2

在像 Db2 on Cloud 这样的托管云服务中,实例管理被抽象化。您只需预置一项“服务”,云提供商会处理底层的实例创建、修补和维护。您直接与数据库端点交互。

核心实例管理命令(本地部署)

Section titled “核心实例管理命令(本地部署)”

这些命令对于管理传统的 Db2 安装至关重要。

  • db2ilist:列出服务器上的所有实例。
  • db2 get instance:显示当前会话中的活动实例。
  • set db2instance=<instance_name>:(Windows)将您的会话切换到不同的实例。
  • export DB2INSTANCE=<instance_name>:(Linux/UNIX)将您的会话切换到不同的实例。
  • db2start:启动当前实例的数据库管理器。
  • db2stop:停止数据库管理器,安全地断开所有用户连接。
  • db2icrt:(以 root/admin 身份运行)创建一个新实例。
  • db2idrop:(以 root/admin 身份运行)删除一个实例。

实例行为由数据库管理器(DBM)配置控制。您可以使用以下命令查看和更新设置。

-- 查看当前 DBM 配置
db2 get dbm cfg
-- 示例:更新参数(例如,诊断日志级别)
db2 update dbm cfg using diaglevel 4
-- 注意:某些参数更改需要重启实例(db2stop/db2start)才能生效。

当出现问题时,这些是您的主要工具:

  • db2diag.log:查找任何错误的首要位置。它提供详细的诊断信息。
  • db2pd:“问题诊断”工具。它可以提供内存、事务、锁等的快照。(例如,db2pd -db <dbname> -locks 查看当前锁)。