DB2实验教程:创建数据库/表空间

发布时间:2019-11-06编辑:脚本学堂
DB2实验教程:创建数据库/表空间

实验任务:
A.建立数据库
B. 建立表空间;
C. 执行脚本文件来建立多个表空间;
D.访问那些包含表空间信息的SYSCAT视图;
E. 列出表空间相关信息;
F. 列出容器相关信息。

一. 创建数据库
1.查看create database指令语法
创建数据库可以通过DB2命令create database来完成。通过在线帮助工具可以查看create database指令语法。
(1)选择菜单“工具”à“命令中心”,或相应的图标来启动“命令中心”;
(2)在“命令中心”中选择“交互式”标签页,并且在“命令”下的文本框中输入“create database”;
(3)选择菜单“交互式—>执行”(或ctrl+enter,或点击左上角工具栏的齿轮图标)。
(4)从Create database命令语法可以看出,该命令可以指定:数据库名﹑数据库位置(控制文件﹑设定文件﹑事务日志文件以及默认的表格空间要建立在什么位置)﹑数据库别名﹑国别区码﹑排序集﹑默认数据块大小,该语句也可为编目表空间﹑临时表空间﹑用户表空间指定特定值。
此外,也可以通过“创建数据库向导”来创建一个新数据(本实验采用该方法)。
2.通过“创建数据库向导”创建数据库。
(1)在“控制中心”中,右键单击inst1下的“数据库”,在弹出菜单中选择“创建—>使用向导创建数据库”;
(2)在向导的“名称”页面中,数据库名一栏输入MUSICDB,其它值均按默认设置,点击“下一步”按钮;
(3)分别选择向导左边的“用户表”﹑“目录表”﹑“临时表”标签页,并点击相应页面的“下一步”按钮完成相关设置。“用户表”﹑“目录表”﹑“临时表”默认使用的表空间类型为SMS,即各页面中的“低维护-自动增加(系统管理的表空间)(L)”选项。
(4)在向导的“性能”页面中,因为MUSICDB的表空间均按照系统缺省设置,所以此时不能修改数据块大小或者预取大小。(如果为用户表﹑目录表﹑临时表设置了特定的容器,则可以通过“性能”页面设置数据块或预取大小)。点击“下一步”按钮开始数据库“区域”的设置。
(5)向导的“区域”页面可以设置数据库的语言环境和整理顺序,系统已自动设置完成这些选项,直接点击“下一步”按钮。
(6)在向导“总结”页面中,会显示前几步所设的创建数据库的参数。点击“显示命令”按钮即可查看创建该数据库的全部命令。单击“上一步”则回到前面步骤修改创建参数。点击“总结”页面的“完成”按钮,则生成数据库。
等待一小段时间,系统就会弹出“DB2消息”窗口提示数据库已经创建完毕,并且询问是否启动“配置顾问程序”来调整数据库。点击“否”按钮关闭该窗口。这时,所创建的MUSIC数据库会出现在控制中心对象树中“数据库”节点下。
3.查看数据库信息。
系统数据库目录包含了当前实例下所有数据库的条目信息,可以在“命令中心”输入命令“list db directory”来查看系统数据库目录中MUSICDB的信息。
(1)数据库建立时如果未设置别名,系统会自动为它设置一个与数据库名相同的别名。MUSICDB的别名为MUSICDB。
(2)目录条目类型的“间接”是指该数据库为本地数据库(运行在同一主机),而“远程”是指数据库运行在另一个远程系统中。本实验中MUSICDB的目录条目类型为“间接”。
4.查看数据库的连接状态。
(1)在“命令中心”输入如下命令来检查现在的连接状态:get connection state
执行该命令后,输出窗口显示连接状态为“可连接而未连接”。
(2)输入如下命令连接到MUSICDB:
 connect to MUSICDB
(3)再次输入命令“get connection state”检查连接状态,输出窗口显示连接状态为“可连接并已连接”,并列出相应的“SQL授权标识”及“本地数据库别名”等信息。
5.修改数据库配置文件
每一个数据库都有它自己的数据库配置文件,该文件包含了该数据库的相关信息和配置参数。要查看MUSICDB数据库配置文件,可在控制中心的对象树中右键单击“MUSICDB”,并在弹出菜单中选择“配置参数”。借助弹出的“数据库配置?—?MUSICDB”窗口,可以看查或更改相应的参数值。
(1)在“命令中心”中输入命令“update db cfg for MUSICDB using maxlocks 20 num_freqvalues 12”,该命令将每个应用程序的最大锁列表的百分比设为20,并指定当RUNSTAS命令上指定了With Distribution 选项时,将收集的最高频出现的值的数目设为12。
(2)查看MAXLOCKS和NUM_FREQVALUES的当前值与延迟值是否相同。
connect to MUSICDB
get db cfg for MUSICDB show detail
通过输出窗口可见这两个参数的当前值和延迟值是一致的。
6.查看表空间及表空间容器等信息
(1)数据库创建时,三个表空间也同时被创建,在命令中心中输入命令list tablespaces,可查看这些表空间的相关信息。结果如下:
SYSCATSPACE——ID 0
TEMPSPACE1——ID 1
USERSPACE1——ID 2
(2)表空间容器信息可以通过命令list tablespace containers获取。
要查看MUSICDB中标识为0的表空间容器信息,可输入命令:list tablespace containers for 0。该容器类型为路径/目录,此目录为X:inst1NODE0000SQL00001SQLT0000.0。
(3)要查看临时表空间(ID=1)和默认用户表空间(ID=2)的容器信息,可用下列语句实现:
list tablespace containers for 1
list tablespace containers for 2
临时表空间的默认路径为X:inst1NODE0000SQL00001SQLT0001.0
用户表空间的默认路径为X:inst1NODE0000SQL00001SQLT0002.0
7.查看系统目录表和视图
在命令中心中输入命令list tables for system列出系统目录表和视图,这些表和视图存储在SYSCATSPACE表空间中。
SYSCAT模式拥有所有建立在系统目录表上的视图,可通过该模式的这些视图来访问系统目录表。例如在命令中心中输入如下命令查看所有模式为“SYSIBM”(即系统目录表)的表名和表标识号:
select tabname, tableid from syscat.tables where tabschema='SYSIBM' and type='T'

二. 建立表空间
数据库MUSICDB需要额外的几个表空间,本节先通过“控制中心”来创建其中一个表空间。其余表空间通过的脚本命令文件来创建。
1.通过向导建立表空间dms01
(1)在控制中心的左边的对象树上,右键单击数据库“MUSICDB”下的“表空间”,在弹出菜单中选择“创建”;
(2)在“创建表空间向导”的第一页中,指定新表空间的名称为dms01,并点击“下一步”;
(3)在向导的“类型”页面,选择表空间的类型为常规,并点击“下一步”;
(4)在“空间管理”页面,选择该表空间为“数据库管理表空间”,并在下一步的“容器”页面中,点击“添加”按钮,弹出“定义容器”窗口。
(5)选择容器大小的计算单位为4KB页,并在大小一栏输入160,选择驱动器为X:在容器一栏输入dmsdms01,然后点击“确定”按钮。继续点击“下一步”按钮;
(6)在向导的“读/写”页面,将数据块大小设置为4 个4KB页面;
(7)设置完该表空间的所有性质后,单击“总结”页面的“显示SQL”按钮查看刚才所作的设定,sql语句应为:CREATE REGULAR TABLESPACE DMS01 PAGESIZE 4 K MANAGED BY DATABASE USING ( FILE 'X:dms01' 106 ) EXTENTSIZE 4 OVERHEAD 10.5 PREFETCHSIZE 4 TRANSFERRATE 0.33 BUFFERPOOL "IBMDEFAULTBP" DROPPED TABLE RECOVERY OFF,点击“关闭”按钮关闭“显示SQL”窗口;
(8)点击向导的完成按钮。
 
在命令中心中输入命令list tablespaces show detail检查新创建的表空间。(应先执行connect to MUSICDB)
2.执行脚本命令文件来创建其它表空间。
(1)在加载并执行脚本之前,首先要检查命令中心的选项和工具设置,并完成下面设置:
在命令中心中,选择“命令中心—>选项”菜单,选择“命令中心选项”窗口的“执行”标签页,确保“自动落实SQL语句”和“若发生错误则停止执行”两选项都被选中,选择“结果”标签页,确保“详细(将命令文本回送执输出)”选项被选中,然后点击“确定”按钮。
选择“工具—>工具设置”菜单,选择“工具设置”窗口的“一般”标签页,确保该页面的“使用语句终止符;”选项被选中。关闭“工具设置”窗口。
(2)通过执行脚本文件CRTBLSP创建其余表空间。
在命令中心中,选择“脚本”标签页,选择菜单“脚本—>导入”;
确保“导入”窗口中的系统名一栏与Windows系统名一致。选择目录和文件列表框找到CRTBLSP脚本,单击“确定”按钮。该脚本将创建dms02,dms03,dms04,dms05,dms06和sms01六个表空间,执行该脚本。
3.查看表空间信息。
(1)在控制中心对象树中右键单击MUSICDB下的表空间,并在弹出菜单中选择“刷新”。在控制中心里并不能查看到表空间的标识号,但可通过在命令中心中输入list tablespace看到。
表空间及其关联的标识号如下:
SYSCATSPACE—ID 0
TEMPSPACE1—ID 1
USERSPACE1—ID 2
DMS01—ID 3
DMS02—ID 4
DMS03—ID 5
DMS04—ID 6
DMS05—ID 7
DMS06—ID 8
SMS01—ID 9
在命令中心中输入命令:list tablespaces show detail,查看表空间的详细信息。
(2)SMS表空间并不使用预先格式好的容器,因此SMS的目录容器所在的文件系统中可用空间的变动会直接影响到SMS表格空间的容量,而DMS表空间则要设置预留空间的大小。
查看标识号为3的表空间的容器的详细信息:
list tablespace containers for 3 show detail
容器类型为文件,且该文件为X:dmsdms01。
查看标识号为9的表空间的容器的详细信息:
list tablespace containers for 9 show detail
容器类型为路径/目录,且路径为x:smssms01和x:smssms02
(3)表空间的信息也可通过视图SYSCAT.TABLESPACES来访问,该视图中包含表空间信息的列有:
TBSPACE-表空间名
DEFINER-表空间创建者的用户名
TBSPACEID-表空间的内部标识号
TBSPACETYPE-表空间类型,D代表DMS,S代表SMS
DATATYPE-表空间可存储的数据的类型。L代表只能存储大对象数据对象,A代表所有永久对象,T代表只能存储临时表。
在命令中心中输入下列SQL语句,可实现上述信息的查询:
select tbspace, definer, tbspaceid, tbspacetype, datatype from syscat.tablespaces
(4)特定的表所相关的表空间信息可以通过SYSCAT.TABLES视图来访问,该视图中包含表空间信息的列有:
TBSPACEID-该表所在的主表空间内部标识号;
TBSPACE-该表所在的主表空间名称;
INDEX_TBSPACE-包含该表索引的表空间;
LONG_TBSPACE-包含该表大对象数据的表空间。
为列出表SYSIBM.SYSTABLES所在表空间的信息,可在命令中心输入如下SQL语句:
select tabname, tbspaceid, tbspace, index_tbspace, long_tbspace
from syscat.tables
where tabname=’SYSTABLES’
 
在命令中心中输入命令connect reset断开与MUSICDB的连接。