DB2 - 实例

简介

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

  • 数据库管理器配置文件
  • 系统数据库目录
  • 节点目录
  • 节点配置文件 [db2nodes.cfg]
  • 调试文件、转储文件

对于 DB2 数据库服务器,默认实例是"DB2"。 创建实例目录后无法更改其位置。 一个实例可以管理多个数据库。 在一个实例中,每个数据库都有一个唯一的名称、自己的一组目录表、配置文件、权限和特权。

DB2产品中实例的架构

db2_product

多个实例

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

在 Linux 上创建实例

如果 DB2 Server 以 root 用户身份安装,则可以在 Linux 和 UNIX 上创建多个实例。 实例可以同时独立运行在 Linux 和 UNIX 上。 您一次可以在数据库管理器的单个实例中工作。

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

列出实例

以下命令用于列出实例:

db2ilist

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

语法:

db2ilist 

示例:[查看 DB2 副本中创建了多少个实例]

db2ilist 

输出:

db2inst1 
db2inst2 
db2inst3  

实例环境命令

这些命令对于在 DB2 CLI 中安排实例非常有用。

获取实例

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

语法:

db2 get instance 

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

db2 get instance 

输出:

The current database manager instance is : db2inst1 

设置实例

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

语法:

set db2instance=<instance_name> 

示例:[为当前用户安排"db2inst1"环境]

set db2instance=db2inst1

db2start

使用此命令,您可以启动一个实例。 在此之前,您需要运行"set instance"。

语法:

db2start 

示例:[启动实例]

db2start

输出:

SQL1063N DB2START processing was successful

db2stop

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

语法:

db2stop 

输出:

SQL1064N DB2STOP processing was successful.

创建实例

让我们看看如何创建一个新实例。

db2icrt

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

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

>第1步:例如创建操作系统用户。

语法:

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

示例:[例如在组"db2iadm1"中创建名称为"db2inst2"、密码为"db2inst2"的用户]

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

第2步:以root用户进入DB2实例目录创建新实例。

语法:

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

第3步:使用以下语法创建实例:

语法:

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

示例:[在用户"db2inst2"中创建具有"ESE"(企业服务器版)功能的新实例"db2inst2"]

./db2icrt -s ese -u db2inst2 db2inst2

输出:

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

为实例安排通信端口和主机

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

语法:

db2c_<inst name> <inst_port>/tcp

示例:[在"services"文件中使用变量"db2c_db2inst2"添加实例"db2inst2"的"50001/tcp"端口号]

db2c_db2inst2 50001/tcp

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

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

示例 1:[使用值为"db2c_db2inst2"(例如"db2inst2")的变量 svcename 更新 DBM 配置

db2 update database manager configuration using svcename db2c_db2inst2 

输出

DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully.

语法 2:设置当前实例的"tcpip"通信协议

db2set DB2COMM=tcpip 

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

db2stop 
db2start 

更新实例

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

db2iupdt

该命令用于在同一版本发布内更新实例。 在执行此命令之前,您需要使用"db2stop"命令停止实例数据库管理器。 "inst_name"下面的语法表示以前发布或安装的 db2 服务器实例名称,您希望将其更新到较新版本或安装的 db2 服务器版本。

语法1:在正常模式下更新实例

db2iupdt <inst_name> 

示例1:

./db2iupdt db2inst2 

语法 2:在调试模式下更新实例

db2iupdt -D <inst_name> 

示例

db2iupdt -D db2inst2  

升级实例

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

db2iupgrade

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

语法 2:

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

示例:

db2iupgrade -d -k -u db2inst2 db2inst2 

命令参数:

-d:打开调试模式。

-k:如果您运行此命令的 DB2 副本支持升级前的实例类型,则保留该类型。

如果您在 Linux 上使用超级用户 (su) 执行 db2iupgrade 命令,则必须发出带有"-"选项的"su"命令。

删除实例

您可以删除或删除由"db2icrt"命令创建的实例。

db2idrop

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

语法:[以下语法中,'inst_username'表示实例用户名,'inst_name'表示实例名称]

db2idrop -u <inst_username> <inst_name> 

示例:[删除 db2inst2]

./db2idrop -u db2inst2 db2inst2  

在实例中使用其他命令

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

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

db2 get instance  

输出:

The current database manager instance is:  db2inst1  

语法2:[查看当前实例的操作位和发布版本]

db2pd -inst | head -2  

示例:

db2pd -inst | head -2  

输出:

Instance db2inst1 uses 64 bits and DB2 code release SQL10010   

语法3:[检查当前工作实例的名称]

db2 select inst_name from sysibmadm.env_inst_info    

示例:

db2 select inst_name from sysibmadm.env_inst_info    

输出:

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

语法:[将新实例设置为默认值]

db2set db2instdef=<inst_name> -g   

示例:[将新创建的实例数组作为默认实例]

db2set db2instdef=db2inst2 -g