Db2 简明教程
DB2 - Instance
Introduction
实例是 DB2 数据库管理器的逻辑环境。使用实例,您可以管理数据库。根据我们的要求,您可以在一台物理机上创建多个实例。实例目录的内容为:
-
Database Manager Configuration file
-
System Database Directory
-
Node Directory
-
Node Configuration File [db2nodes.cfg]
-
Debugging files, dump files
对于 DB2 数据库服务器,默认实例为“DB2”。不可能在创建实例目录后更改其位置。一个实例可以管理多个数据库。在一个实例中,每个数据库具有唯一名称、其自己的目录表集、配置文件、权限和特权。
Creating instance on Linux
如果将 DB2 服务器安装为 root 用户,则可以在 Linux 和 UNIX 上创建多个实例。一个实例可以在 Linux 和 UNIX 上独立地同时运行。一次只能在一个数据库管理器实例内工作。
实例文件夹包含数据库配置文件和文件夹。实例目录在 Windows 上的存储位置根据操作系统不同而异。
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
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
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” 命令。
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