DB2 - 实例

  • 介绍

    Instance 是 DB2 Database Manager 的逻辑环境。使用实例,您可以管理数据库。根据我们的要求,您可以在一台物理机上创建多个实例。Instance目录的内容是:
    • 数据库管理器配置文件
    • 系统数据库目录
    • 节点目录
    • 节点配置文件 [db2nodes.cfg]
    • 调试文件、转储文件
    对于 DB2 数据库服务器,默认实例是“DB2”。实例目录创建后无法更改其位置。一个实例可以管理多个数据库。在一个实例中,每个数据库都有一个唯一的名称、它自己的一组目录表、配置文件、权限和特权。
  • DB2 产品中的实例架构

    db2_product
  • 多个实例

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

    如果 DB2 Server 是作为 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

    使用此命令,您可以启动一个实例。在此之前,您需要运行“设置实例”。
    语法:
    
    db2start 
    
    实例:[启动实例]
    
    db2start
    
    输出:
    
    SQL1063N DB2START processing was successful
    

    db2stop

    使用此命令,您可以停止正在运行的实例。
    语法:
    
    db2stop 
    
    输出:
    
    SQL1064N DB2STOP processing was successful.
    
  • 创建实例

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

    db2icrt

    如果要创建新实例,需要使用 root 登录。实例 ID 不是根 ID 或根名称。
    以下是创建新实例的步骤:
    Step1: 例如创建一个操作系统用户。
    语法:
    
    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  
    
    Step2: 以root用户进入DB2实例目录新建实例。
    Location:
    
    cd /opt/ibm/db2/v10.1/instance  
    
    Step3:使用以下语法创建实例:
    语法:
    
    ./db2icrt -s ese -u <inst id> <instance name>
    
    实例: [在用户 'db2inst2' 中创建一个具有 'ESE' 特性的新实例 'db2inst2' (Enterprise Server Edition)]
    
    ./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
    
    实例:[在“服务”文件中为实例“db2inst2”添加“50001/tcp”端口号,变量“db2c_db2inst2”]
    
    db2c_db2inst2 50001/tcp
    
    语法 1:[使用服务名称更新数据库管理器配置。以下语法“svcename”表示实例服务名称,“inst_name”表示实例名称]
    
    db2 update database manager configuration using svcename db2c_&<inst_name>
    
    实例 1:[使用变量 svcename 更新 DBM 配置,其值为“db2c_db2inst2”,例如“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 副本版本。

    db2i 升级

    在 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 
    
    Command Parameters:
    -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