DB2手工创建数据库,很简单的。
创建例子数据库:
1. 生成数据库存放目录,和 归档目录
mkdir -p /demo/sample
mkdir -p /demo/samplearc
2. 生成sample数据库
db2sampl -dbpath /demo/sample
3. 指定数据库归档目录
-- DISK: 指磁盘 TSM:指IBM TSM VENDOR: 指第三方存储设备
db2 update db cfg for SAMPLE using LOGARCHMETH1 DISK: /demo/samplearc
其它数据库创建:
1. 查找数据库默认创建路径
# ./db2 get dbm cfg|grep "DFTDBPATH"
Default database path (DFTDBPATH) = /home/db2inst1
当然也可在创建时手工指定
//create database mydb on d:\data
2. 创建数据库
简单例子:
create database xcldb using codeset gbk territory cn;
代码页和整理次序参数:
所有db2字符类型(char varchar clob dbclob)都有一个相关联的字符代码页
即对照表,将这些数据转为数据库中存储的二进制数据库.
中文代码页为1386 codeset为GBK, Territory为CN
产生文件:
会创建3个默认表空间,日志,配置信息,历史文件
SYSCATSPACE 数据字典
TEMPSPACE1 临时表空间
USERSPACE1 存储所有用户对象(表,索引)的地方.
dbv9之前默认为sms表空间,之后,除临时表空间外其它默认为dms表空间
复杂些的例子:
create database xcldb
DFT_EXTENT_SZ 4
CATALOG TABLESPACE MANAGED BY DATABASE USING
(FILE 'C:\DATA\CATALOG.DAT' 2000,FILE 'D:\DATA\CATALOG.DAT' 2000)
EXTENTSIZE 8
PREFETCHSIZE 16
TEMPORARY TABLESPACE MANAGED BY SYSTEM USING
('C:\TEMPTS','D:\TEMPTS')
USER TABLESPACE MANAGED BY DATABASE USING
(FILE 'C:\XCLDB\USERTS.DATA' 1200)
EXTENTSIZE 24
PREFETCHSIZE 48
--DFT_EXTENT_SZ 4 默认扩展数据块大小是4个页面
--CATALOG TABLESPACE MANAGED BY DATABASE USING 编目空间将由数据库管理
--('C:\TEMPTS','D:\TEMPTS') 临时表空间将跨两个文件.
--(FILE 'C:\TS\USERTS.DATA' 1200) 这个空间只有一个容器.由1200个页面组成
--EXTENTSIZE 24 user表空间的EXTENTSIZE是24个页面
--PREFETCHSIZE 48 查询时,预读取48个页面