Db2 简明教程

DB2 - Instance

Introduction

实例是 DB2 数据库管理器的逻辑环境。使用实例,您可以管理数据库。根据我们的要求,您可以在一台物理机上创建多个实例。实例目录的内容为:

  1. Database Manager Configuration file

  2. System Database Directory

  3. Node Directory

  4. Node Configuration File [db2nodes.cfg]

  5. Debugging files, dump files

对于 DB2 数据库服务器,默认实例为“DB2”。不可能在创建实例目录后更改其位置。一个实例可以管理多个数据库。在一个实例中,每个数据库具有唯一名称、其自己的目录表集、配置文件、权限和特权。

Architecture of instance in DB2 product

db2 product

Multiple instances

您可以在 Linux、UNIX 和 Windows 上的一个 DB2Server 中创建多个实例。可以在一台物理机上安装多个 DB2Server。

Creating instance on Linux

如果将 DB2 服务器安装为 root 用户,则可以在 Linux 和 UNIX 上创建多个实例。一个实例可以在 Linux 和 UNIX 上独立地同时运行。一次只能在一个数据库管理器实例内工作。

实例文件夹包含数据库配置文件和文件夹。实例目录在 Windows 上的存储位置根据操作系统不同而异。

Listing instances

以下命令用于列出实例:

db2ilist

此命令列出系统上可用的所有实例。

Syntax:

db2ilist

Example: [查看在 DB2 副本中创建的实例数量]

db2ilist

Output:

db2inst1
db2inst2
db2inst3

Instance environment commands

这些命令可用于在 DB2 CLI 中安排实例。

Get instance

此命令显示当前正在运行的实例的详细信息。

Syntax:

db2 get instance

Example: [查看激活当前用户的当前实例]

db2 get instance

Output:

The current database manager instance is : db2inst1

Set instance

要在 DB2 UDB 上启动或停止某个实例的数据库管理器,可针对当前实例执行以下命令。

Syntax:

set db2instance=<instance_name>

Example: [为当前用户安排 “db2inst1” 环境]

set db2instance=db2inst1

db2start

使用此命令,可以启动一个实例。执行此操作之前,您需要运行 “set instance”。

Syntax:

db2start

Example: [启动一个实例]

db2start

Output:

SQL1063N DB2START processing was successful

db2stop

使用此命令,可以停止一个正在运行的实例。

Syntax:

db2stop

Output:

SQL1064N DB2STOP processing was successful.

Creating an instance

让我们了解一下如何创建一个新实例。

db2icrt

如果要创建一个新实例,您需要使用 root 登录。实例 ID 不是 root ID 或 root 名称。

以下是创建新实例的步骤:

Step1 :为实例创建一个操作系统用户。

Syntax:

useradd -u <ID> -g <group name> -m -d <user location> <user name>
-p <password>

Example : [在组 “db2iadm1” 中为用户名为 “db2inst2” 的实例创建一个用户,密码为 “db2inst2”]

useradd -u 1000 -g db2iadm1 -m -d /home/db2inst2 db2inst2 -p db2inst2

Step2 : 以 root 用户身份访问 DB2 实例目录,创建新实例。

Location:

cd /opt/ibm/db2/v10.1/instance

Step3 : 使用以下语法创建实例:

Syntax:

./db2icrt -s ese -u <inst id> <instance name>

Example : [使用 ESE(企业服务器版)特性以用户 db2inst2 创建新实例 db2inst2]

./db2icrt -s ese -u db2inst2 db2inst2

Output:

DBI1446I The db2icrt command is running, please wait.
 ….
 …..
DBI1070I Program db2icrt completed successfully.

Arranging communication port and host for an instance

编辑 /etc/services 文件并添加端口号。在给出的语法中,“inst_name”表示实例名称,“inst_port”表示实例的端口号。

Syntax:

db2c_<inst name> <inst_port>/tcp

Example : [在 services 文件中为实例 db2inst2 添加变量 db2c_db2inst2 的端口号 50001/tcp]

db2c_db2inst2 50001/tcp

Syntax 1 : [使用服务名称更新数据库管理器配置。以下语法中的 svcename 表示实例服务名称,inst_name 表示实例名称]

db2 update database manager configuration using svcename db2c_&<inst_name>

Example 1 : [使用值 db2c_db2inst2 为实例 db2inst2 变量 svcename 更新 DBM 配置]

db2 update database manager configuration using svcename db2c_db2inst2

Output

DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully.

Syntax 2 : 为当前实例设置 tcpip 通信协议

db2set DB2COMM=tcpip

Syntax 3 : [停止并启动当前实例以从数据库管理器配置获取更新的值]

db2stop
db2start

Updating an instance

你可以使用以下命令更新实例:

db2iupdt

此命令用于在同一版本发布中更新实例。在执行该命令之前,你需要使用 db2stop 命令停止实例数据库管理器。在语法中,“inst_name”表示要更新为较新版本或已安装的 DB2 服务器版本的先前发布或已安装的 DB2 服务器实例名称。

Syntax 1 : 以正常模式更新实例

db2iupdt <inst_name>

Example1:

./db2iupdt db2inst2

Syntax 2 : 以调试模式更新实例

db2iupdt -D <inst_name>

Example

db2iupdt -D db2inst2

Upgrading an instance

你可以将实例从以前的 DB2 副本版本升级到当前最新安装的 DB2 副本版本。

db2iupgrade

在 Linux 或 UNIX 系统上,该命令位于 DB2DIR/instance 目录中。在以下语法中,“inst_name”表示以前的版本 DB2 实例,“inst_username”表示当前安装版本 DB2 副本实例用户。

Syntax 2 :

db2iupgrade -d -k -u <inst_username> <inst_name>

Example :

db2iupgrade -d -k -u db2inst2 db2inst2

Command Parameters:

-d : 启用调试模式。

-k : 如果 DB2 副本(你在其中运行此命令)中支持预升级实例类型,将保留该类型。

如果在 Linux 上对 DB2iupgrade 命令使用超级用户 (su),你必须使用 “-” 选项发出 “su” 命令。

Dropping an instance

你可以放弃或删除 “db2icrt” 命令创建的实例。

db2idrop

在 Linux 和 UNIX 操作系统中,此命令位于 DB2_installation_folder/instance 目录中。

Syntax : [在以下语法中,“inst_username” 表示实例用户名,而“inst_name” 表示实例名称]

db2idrop -u <inst_username> <inst_name>

Example : [要放弃 db2inst2]

./db2idrop -u db2inst2 db2inst2

Using other commands with instance

要找出我们现在正在处理哪个 DB2 实例的命令。

Syntax 1 : [要检查数据库管理器激活的当前实例]

db2 get instance

Output:

The current database manager instance is:  db2inst1

Syntax 2 : [要查看具有操作系统位和发行版本的当前实例]

db2pd -inst | head -2

Example:

db2pd -inst | head -2

Output:

Instance db2inst1 uses 64 bits and DB2 code release SQL10010

Syntax 3 : [要检查当前工作实例的名称]

db2 select inst_name from sysibmadm.env_inst_info

Example:

db2 select inst_name from sysibmadm.env_inst_info

Output:

INST_NAME  --------------------------------------
db2inst1
1 record(s) selected.

Syntax : [要将新实例设置为默认值]

db2set db2instdef=<inst_name> -g

Example : [要将新创建的实例排列为默认实例]

db2set db2instdef=db2inst2 -g