DB2中服务器,实例,数据库,表空间|缓冲池|日志文件,表的关系图如下:
1.DB2服务器
所有的 DB2 服务器版本都包含相同的核心组件;用户可根据各自所需来选择不同价格的组件配置。图 1.1 图示了 DB2 产品的不同版本
所有 DB2 服务器拥有相同的核心组件,如果您愿意,您可以将 DB2 Express-C 升级到任何 DB2 服务器版本。这也意味着基于某一 DB2版本的应用程序可以无修改地运行在其它的高级的 DB2 版本上。而且从一个版本中所学到的技能同样适用于其它版本
2.实例instance
一个数据库服务器上可以创建多个实例(应用程序运行和创建数据库所必须的独立环境)
必须注意的是每一个实例的端口号必须是唯一的。这样在您远程连接数据库时,此端口号可以保证您能够正确的连接实例。
关键字 | 例子 | 解释 |
---|---|---|
db2icrt | db2icrt myinst | 创建一个新的实例 |
db2instance | set db2instance=myinst | 来激活任意DB2 实例 |
db2ilist | 显示系统您当前的所有实例清单 | |
db2start | 启动当前实例 | |
db2stop db2stop force 强制 | 停止当前实例 | |
db2idrop | db2idrop myinst | 删除一个实例 |
db2 get instance | 显示当前运行的实例 |
3.数据库database
在任一实例中都可以创建多个数据库。
数据库是诸如表,视图,索引等对象的集合。
数据库之间是相互独立的单元,因此一个数据库并不与其他数据库共享内部对象
sql例子 | 解释 |
---|---|
db2 create db [dbname] ; db2 create db [dbname] using codeset GBK territory CN; Db2 create database using codeset IBM-encCn territory CN; --这样可以支持中文 | 创建一个新的数据库 |
db2 connect to [dbname] – 连接到本地数据库 db2 connect to [dbname] user [username] using [password] --连接到远程数据库 | 连接到数据库 |
db2 connect reset | 断开连接数据库 |
db2 drop database [dbname] | 删除数据库 |
db2 list db directory | 列出所有数据库 |
db2 list active databases | 列出所有激活的数据库 |
db2 get db cfg | 列出所有数据库配置 |
随着数据库的创建,有几个默认的对象也同时被创建:表空间,表,缓冲池,日志文件。
因为创建这些对象需要一点时间,所以执行数据库创建过程需要几分钟。
4.表空间,缓冲池,日志文件
表空间:
SYSCATSPACE 表空间包含目录表(Catalog)。这个目录也以数据字典的形式存在于其他关系数据库管理系统中。它包含不可更改和不可删除的系统信息,否则数据库无法正常工作。当 DB2实现一些类似排序等需要额外空间的操作时,就会用到表空间 TEMPSPACE1。
如果创建一个表的时候没有指定空间,系统通常会使用 USERSPACE1 来存储您的数据库表。
用 CREATE TABLESPACE 语句创建自己的表空间,显示了一个表空间MYTBLS1
缓冲池
缓冲池是数据库使用的高速缓冲存储器。您可以创建多个缓冲池,但是至少应该有一个缓冲池,它的大小与现存的表空间页的大小相同。
日志文件
日志文件用于恢复操作。数据库运行过程中,不仅仅是数据库信息被存储在硬盘上,而且日志文件会存储所有针对数据的操作。
5.表
Db2创建表和其他oracle没有多大差别
CREATE TABLE artists
(artno SMALLINT not null,
name VARCHAR(50) with default 'abc',
classification CHAR(1) not null,
bio CLOB(100K) logged, -- 表示记录日志
picture BLOB(2M) not logged compact -- 不记录日志
)
IN mytbls1 -- 指定表空间