一.DB2相关概念
1.DB2体系结构:
DB2体系结构中的最高一层是系统,一个系统表示DB2的一个安装。在由很多机器组成 的网络环境中,我们有时=也称系统为数据库分区,一个系统可以包含多个DB2实例,每个实例能够管理一个或多个数据库。
2.实例(Instance):
实例也称为数据库管理器(Database Management Application),是数据库管理器在内存中的映像,是管理数据的DB2代码。实例相当于Informix Server,在一台机器上可以有多个相互独立的实例,实例之间彼此独立,同时运行,不会相互影响。每个实例可以管理若干个数据库,一个数据库只属于一个实例。实例可控制对数据执行的操作,并管理分配给实例的系统资源。每个实例都是独立的运行环境,可以编目数据库和设置配置参数。可以在同一物理服务器上创建多个实例,并为每个实例提供唯一的数据库服务器环境。
3.数据库(Database):
关系数据库使用一种表来管理数据,表由在行和列中以逻辑关系排列的数据组成,每个表的数据在逻辑上相关,在表之间能够定义关系。每个数据库包含一组系统编目表(也叫数据字典)、配置文件和恢复日志,系统编目表用于描述数据的逻辑和物理结构,配置文件包含所有为数据库分配的配置参数值,恢复日志记录正在进行的事务处理和可存档的事务处理。数据库可以是本地的,也可以是远程的。本地数据库物理上位于本地的机器上;当数据库物理上驻留在另一台机器上时,则称为远程的。
4.表空间(Tablespace):
表空间是数据库中表数据与数据库之间的逻辑中间层,数据库中的物理空间组织为表空间的集合,而表空间是表的逻辑集合。表空间包含容器集合,容器是用来描述物理空间分配的一般术语。数据库将数据存储在自己的表空间容器中。
表存储在一个或几个表空间中,为了提高性能,或者为了便于表空间的备份,可以将表中不同类型的数据分别存储在不同的表空间中,比如将常规数据存储在第一个表空间中,将表的索引存储在第一个表空间中,将大对象数据存储在第三个表空间中。
表空间最终会映射到物理存储介质上,对物理存储的合理使用可以让管理员有效地控制数据库的性能,例如,可以使用最快的设备或内存硬盘来存储频繁使用的表,使用较慢的设备存储不经常使用的数据。表空间的概念提供了对底层存储物理设备的更加灵活的使用。
表空间的规划设计会显著影响数据库运行的性能。
表空间具有以下类型:
- 系统编目表空间(SysCatSpace)
- 系统临时表空间(SysTempSpace)
- 用户表空间(UserSpace)
- 用户临时表空间(UserTempSpace)
一个数据库中必须存在两个系统基本表空间,分别是系统编目表空间与系统临时表空间。在数据库中创建的任何对象都以在系统编目表空间中增加记录的方式体现,对于临时表空间,其占用磁盘大小是根据使用情况动态伸缩的,即仅在需要时才分配磁盘空间,并在使用后进行回收。此外,若用户需要创建表,则需要创建用户表空间,若需要使用临时表,则需要创建用户临时表空间。
5.容器(Container):
表空间有2种管理方式:
- DMS(Database management Space)方式
- DMS(System management Space)方式
DMS与SMS方式在表空间建立是指定,建好后不能转换。对于DMS方式,一个表空间对应了一个或多个容器(Container),容器指定了数据的物理存储位置。对于SMS方式,只能够指定一个目录,不能够增加。
容器分为三种类型:
- Files 文件
- Devices 设备
- Directory 目录
文件与设备,用于DMS方式表空间;目前,用于SMS方式的表空间,此种方式不需要人工 管理数据存储文件,DB2可根据情况在目录中自动增加存储文件,只要磁盘空间允许。
实质上,表空间是数据存储的逻辑位置定义,容器则是数据存储的物理位置定义。
6.缓冲池(bufferpool):
缓冲池是一块内存区域,所有索引和数据页(除了LOB)都必须有序地经过该区域,从而进行处理。缓冲池是数据库管理器使用的主要高速缓存。在数据库性能问题方面,缓冲池是进行调优的最重要对象。
二. DB2安装部署
1.解压,安装
[root@root215 data]# tar zxvf db2_v101_linuxx64_expc.tar.gz
[root@root215 data]# ls
db2_v101_linuxx64_expc.tar.gz expc
[root@root215 data]# cd expc/
[root@root215 expc]# ./db2_install
DBI1324W Support of the db2_install command is deprecated. For
................................省略..................................
Default directory for installation of products - /opt/ibm/db2/V10.1
***********************************************************
Install into default directory (/opt/ibm/db2/V10.1) ? [yes/no] #询问是否安装到这个位置上,输入yes
yes
DB2 installation is being initialized.
................................省略..................................
The execution completed successfully.
For more information see the DB2 installation log at
"/tmp/db2_install.log.62881".
2.创建用户,用户组
一个用户只能拥有一个实例
[root@root215 expc]# groupadd -g 2000 db2iadm1
[root@root215 expc]# groupadd -g 2001 db2fadm1
[root@root215 expc]# useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1
[root@root215 expc]# useradd -m -g db2fadm1 -d /home/db2fenc1 db2fenc1
[root@root215 expc]# passwd db2inst1
3.创建实例和样本数据库
[root@root215 expc]# cd /opt/ibm/db2/V10.1/instance/
[root@root215 instance]# chmod -R 755 *
[root@root215 instance]# ./db2icrt -p 50000 -u db2fenc1 db2inst1
DBI1446I The db2icrt command is running, please wait.
...........................省略.................................
DBI10701 Program db2icrt completed successfully.
[root@root215 instance]# su - db2inst1
[db2inst1@root215 ~]$ db2sampl
Starting the DB2 instance...
Creating database "SAMPLE"...
...........................省略.................................
'db2sampl' processing complete.
4.设置实例端口号,通讯方式
[db2inst1@root215 ~]$ db2 update dbm cfg using svcename 50000
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
[db2inst1@root215 ~]$ db2set DB2COMM=tcpip
[db2inst1@root215 ~]$ db2set -all //查看实例级变量
[i] DB2COMM=TCPIP
[i] DB2AUTOSTART=YES
[g] DB2_COMPATIBILITY_VECTOR=MYS
[g] DB2SYSTEM=root215
[g] DB2INSTDEF=db2inst1
5.启动实例
[db2inst1@root215 ~]$ db2start
SQL1063N DB2START processing was successful.
[db2inst1@root215 ~]$ lsof -i :50000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
db2sysc 96811 db2inst1 3u IPv4 39452 0t0 TCP *:50000 (LISTEN)