DB2 实例
实例是 DB2 数据库管理器的逻辑环境。 使用实例,我们可以管理数据库。 根据我们的要求,我们可以在一台物理机上创建多个实例。 Instance目录的内容是:
- 数据库管理器配置文件
- 系统数据库目录
- 节点目录
- 节点配置文件 [db2nodes.cfg]
- 调试文件、转储文件
对于 DB2 数据库服务器,默认实例是“DB2”。 实例目录创建后无法更改其位置。 一个实例可以管理多个数据库。 在一个实例中,每个数据库都有一个唯一的名称、它自己的一组目录表、配置文件、权限和特权。
DB2产品实例架构
多个实例
我们可以在 Linux、UNIX 和 Windows 上的一个 DB2Server 中创建多个实例。 可以在一台物理机器上安装多个 DB2Server。
在 Linux 上创建实例
如果 DB2 服务器是作为 root 用户安装的,那么我们可以在 Linux 和 UNIX 上创建多个实例。 一个实例可以在 Linux 和 UNIX 上独立同时运行。 我们一次可以在数据库管理器的单个实例中工作。
Instance 文件夹包含数据库配置文件和文件夹。 Instance 目录存储在 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实例目录创建新实例。
Location:
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”的变量 svcename 更新 DBM 配置,例如“db2inst2”
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 副本实例用户。
语法
db2iupgrade -d -k -u <inst_username> <inst_name>
示例
db2iupgrade -d -k -u db2inst2 db2inst2
命令参数
- -d:打开调试模式。
- -k:如果我们运行此命令的 DB2 副本支持升级前实例类型,则保留它。
如果我们在 Linux 上使用超级用户 (su) for 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