DB2 Zos 浅谈 - DB2 LUW VS DB2 Zos

 

概述:

各位可能对DB2 LUW了解得比较多,但对DB2 Zos(大机操作系统)知之甚少,因为IBM的内部资料一向是比较封闭的,特别是我们在市场上很少看到的产品,比如Zos操作系统,一般来说都是银行内部供职的人员还有IBM的员工才会接触到,圈子比较小。

本次分享主要对比DB2 LUW DB2 for Zos,帮助我们快速理解大机DB2的架构。

 

DB2 Zos简介:

 

Z/os操作系统下可同时运行多个DB2子系统,   每个子系统对应一组DB2的地址空间(Address Space)ssnmMSTRssnmDBM1ssnmDISTssnmSPASssnmWLMssnmIRLM 其中的ssnmSUBSYSTEM NAME

一个DB2子系统主要由以下三个地址空间组成

         DBM1DATABASE ADDRESS SPACE):

             提供数据库服务的地址空间,主要包括SQL ProcessBuffer manageBind

         MSTRSYSTEM SERVICE ADDRESS SPACE):

               提供系统服务的地址空间,执行各种系统相关功能,

               主要有Thread managementLog managementCheckpointTrace        

         IRLMINTERNAL RESOURCE LOCK MANAGER):

                   提供内部资源锁定管理的地址空间,即Lock Management

 

DB2命令” START DB2”可启动这些地址空间。

例如:在生产的SD.DA中可以看到:BB1AIRLMBB1AMSTRBB1ADBM1 

 

 

DB2 LUW DB2 Zos 对比:

下图为DB2 LUW的架构,可以看到服务端的整个NODE(网络里的一台计算机)含两个实例 INST1 INST2,每个实例里各含两个数据库(DB001DB002)(DB003DB004),每个数据库里含三个表空间(catalog, tempspace1, userspace1)。每个数据库里有数据库级的配置文件和日志文件(DB Config, LOGS)。整个实例还有实例级的配置文件,客户端可以连接到服务端。

 

DB2 Zos 浅谈 - DB2 LUW VS DB2 Zos_DB2

下图为DB2 for Zos的架构图,服务端整个LPAR(主机虚拟的计算机)含两个子系统(DB7G, DB8G,相当于分布式平台里的实例),每个子系统里含四个系统数据库(DSNDB*),一个用户数据库(DB001),用户数据库里含一个用户表空间。整个子系统级别有日志文件和BSDS文件。整个子系统有子系统级的配置文件。客户端通过DB2 CONNECT DDF Distributed Data Facility)可以连接到服务端。

DB2 Zos 浅谈 - DB2 LUW VS DB2 Zos_数据库_02

下图通过对ZOS LUWDB2的不同进行对比,可以看出有部分在LUW中为表空间属性的,在ZOS用数据库的属性来代替。

DB2 Zos 浅谈 - DB2 LUW VS DB2 Zos_数据库_03

下面我们简单介绍一下ZOS中几个重要的数据库:

DB2 Zos 浅谈 - DB2 LUW VS DB2 Zos_数据库_04

DIRECTORY DATABASEDSNDB01)由一系列的Tablespace组成,它包含DB2正常操作所需的Control Block和状态信息,不能使用SQL语句来访问DIRECTORY

它包括的Tablespace有:

   DBD01 DATABASE DESCRIPTOR TABLESPACE,存放定义在DB2系统中的所有Database的内部描述符,即DBD,它是所有DB2中的对象的内部描述。

   SCT02 SKELETON CURSOR TABLESPACE,包括DBRM的存取路径的信息,应用程序的SQL语句的内部形式等。每当Bind一个PLANDB2就会在SCT02中创建一个Skeleton Cusor Table

SPT01 SKELETON PACKAGE TABLESPACE,包括PACKAGE的存取路径的信息,应用程序的SQL语句的内部形式等。每当Bind一个PACKAGEDB2就会在SPT01中创建一个SKELETON PACKAGE TABLE

   SYSUTILX SYSTEM UTILITIES TABLESPACE,在DB2中运行的每一个Utility,在SYSUTILIX中都有一条记录来描述该Utility的状态信息,在Utility正常结束或终止之后这条记录就被删除了,但是对于异常停止的Utility是不删除的,当重新启动异常停止的UTILTIY时会用到这条记录。

   SYSLGRNX LOG RANGE TABLESPACE,记录Tablespace

IndexspacePartitionOpenClose时的Log RBA值。

 DB2 Zos 浅谈 - DB2 LUW VS DB2 Zos_DB2_05

 DB2CATALOG DATABASEDSNDB06)由一系列的Table组成,记录了定义在DB2中的所有Object的相关信息,可以使用SQL语句对其进行操作。这些系统表名为‘SYSIBM.SYS*’

DSNDB06中主要包含以下内容:

   通过Data Definition Language(DDL)定义的所有

   Object

   Application Package

   Application Plan

   所有授权用户及其权限范围

  Image Copy Dataset的名字和所在的卷

 DB2 Zos 浅谈 - DB2 LUW VS DB2 Zos_DB2_06

DSNDB04在安装DB2子系统时定义的。如果用户创建TableTablespace时没有指定Database,系统将自动指定缺省的Database—DSNDB04,其缺省的Buffer PoolBP0,缺省的Storage GroupSYSDEFLT.

 

另外,我们需要对DB2I有所了解。熟练使用DB2I, 基本就能解决简单的zos运维了。

 

DB2I 9000系统上 DB2系统为用户提供的一个交互式的应用工具,在 DB2I 里,用户可以执行任意 SQL语句、自动生成数据库表结构定义、准备用户程序、预编译用户程序、BI ND计划或包、执行用户程序、执行 DB2 命令、运行 DB2 工具程序。DB2I DB2 开发人员经常会使用到的工具,这里我们就经常用到的一些功能作简要介绍。

 

下面是 DB2I 的初始画面:

DB2 Zos 浅谈 - DB2 LUW VS DB2 Zos_数据库_07

 各选项的功能是:

1 SPUFI 用来编写 SQL语句,并运行产生结果

2 DCLGEN 自动生成不同语言的表结构和宿主语言的定义

3 PROGRAM PREPARATI ON 通过多层画面输入准备程序所需要的各种参数,来完成程

序的预编译、编译、预连接、连接和执行各个步骤

4 PRECOMPI LE 通过画面输入必要的参数来对源程序进行预编译

5 BI ND/ REBI ND/ FREE 绑定、重绑定或释放计划或包

6 RUN 执行 SQL程序

7 DB2 COMMANDS 执行 DB2命令

8 UTI LI TI ES 执行其他 DB2工具程序

D DB2I DEFAULTS 设置全局参数

X EXI T 退出