基于linuxsuse10安装db2 8.2.4

基于linuxsuse10安装db2 8.2.4

1,建立用户和组 ,如下:

----------------------------------------------------------------------

组                                 id                                        用户

db2adm1                     1001                  db2inst1              ===>实例所有者

db2fenc1                     1002                  db2fenc1             ==>受防护的用户

dasadm1                     1003                  dasusr1               ==>DAS实例所有者

db2grp1                        1004                   dwadm                ==>一般db2用户

db2grp1,db2adm1        1005                   bips                     ==>作为dba的用户

-----------------------------------------------------------------------

前两个用户和组是创建实例必须,db2inst1用户名和要创建的实例db2inst1必须同名。

db2fenc1受防护的用户用于在db2数据库所使用的地址空间之外运行用户定义的函数和存储过程。

#groupadd -g 1001db2adm1

#groupadd -g 1002db2fenc1

#groupadd -g 1003dasadm1

#groupadd -g 1004db2grp1

 

#useradd -m -gdb2adm1 -u 1001 db2inst1

#passwd db2inst1 (设置密码)

#useradd -m -gdb2fenc1 -u 1002 db2fenc1

#passwd db2fenc1(设置密码)

#useradd -m -gdasadm1 -u 1003 dasusr1

#passwd dasusr1(设置密码)

#useradd -m -gdb2grp1 -u 1004 dwadm

#passwd dwadm(设置密码)

#useradd -m -gdb2grp1 -G db2adm1 -u 1005 bips

#passwd bips(设置密码)

 

2,建立数据库存方目录(根据需要)

确定CREATE DATABASE的位置,创建目录,如 /db2dir/db2db

mkdir -m 777 -p/db2dir/db2db

 

3,开始安装

以root用户

解压DB2安装文件并进入安装文件目录

执行./db2_install -b /home/db2inst1 -p DB2.ESE

 

或者执行./db2_install

然后根据提示选择版本,和安装路径。

版本输入DB2.ESE

……

路径(默认/opt/IBM/db2/V8.1)

……

 

解压补丁文件(FP11_MI00152.tar)

执行./installFixPak -y

 

4.在安装目录中找到许可证文件:db2ese.lic

执行 /opt/IBM/db2/V8.1/adm/db2licm -a db2ese.lic

 

5.创建db2 实例

#cd/opt/IBM/db2/V8.1/instance

#./db2icrt -aSERVER -s ese -u db2fenc1 -w 32 db2inst1

 

启动实例

#su - db2inst1

$ db2start

 

以root用户

vi /etc/services

新增如下一行

DB2c 50000/tcp

保存退出

 

配置相关参数:

su - db2inst1

$db2 update dbm cfgusing SVCENAME DB2c

$db2 update dbm cfgusing ASLHEAPSZ 256

$db2 update dbm cfgusing MON_HEAP_SZ 1024

$db2 update dbm cfgusing SHEAPTHRES 50000

$db2setdb2comm=tcpip

 

重新启动DB2

$db2stop force

$db2start

 

DB2创建数据库

一个DB2数据库实例可以同时管理多个DB2数据库,而一个DB2数据库只能由一个DB2实例管理。

 

1.首先需要了解DB2数据库的存储结构:

物理结构:

大家都知道操作系统的最小存储单位是快(block),在linux和unix上最小快是512字节,在windows上最小存储单位是1KB,而数据库上最小存储单位是数据页(datapage)。

数据库为了保证写存储时的吞吐量,引入了一个更大的单位扩展数据块extent,他是datapage的整数倍。

 

 

逻辑结构:

表空间容器是由很多个扩展数据块extent组成的,表空间也是由多个容器组成的。

 

操作系统块==》数据页(datapage)==》扩展数据块extent==》容器container==》表空间tablespace

 

2.DB2数据库表空间的管理类型:

系统管理的空间 (SMS);此时,由操作系统的文件系统管理器分配和管理空间,数据库容器是操作系统文件。

数据库管理的空间(DMS);此时,有DB2数据库管理程序控制存储空间,表空间容器可使文件系统或裸设备。

DMS的自动存储;这只是一种处理DMS存储的不同方式。

 

3.表空间和缓冲池的关系:

每个表空间与一个特定的缓冲池相关,而且表空间和他相关的缓冲池必须有相同的页(pagesize)大小。一个表空间只可和一个缓冲池关联,而一个缓冲池可用于多个表空间。

 

 

建库之前应了解的信息:

 

1)、权限:

/home/db2inst1>db2 get dbm cfg | grep SYSADM_GROUP

 SYSADM group name                        (SYSADM_GROUP) =DB2ADM1

需是db2adm1组的用户。

2)、系统空间是否够用,确定数据库目录,如:/data/db2dir/testdb

3)、代码页和整理次序

         using codeset GBKterritory CN

         collate using identity            ==》选择以逐字节二进制比较

4)、确定扩展数据块的页数extentsize

5)、预取页得数据页数prefetchsize

 

--创建数据库:

create databasetestdb \

on/data/db2dir/testdb \

using codeset GBKterritory CN \

collate usingidentity

 

如此,db2会默认创建3个数据库表空间(extentsize,prefetchsize都用的默认设置,切不可更改),当然也可以用语法自己定义这3个表空间

 

1)、Syscatspace    ===》保存数据库编目,和数据库元数据即数据字典。

         CATALOG TABLESPACE  MANAGED BY DATABASE  USING ( FILE '…' …)

或CATALOG TABLESPACE  MANAGED BY SYSTEM USING('… ' )

2)、TEMPSPACE1       ==》db2用于放置分组,排序,连接和重组中间结果的工作区域。

         TEMPORARY TABLESPACE  MANAGED BY DATABASE  USING ( FILE '…'… )

….

3)、Userspace1         ==》存放用户数据的表空间。

         USER TABLESPACE  MANAGED BY DATABASE  USING ( FILE '…'… )

.....

数据库维护

 

--连接数据库

db2 connect todatabasename

--查看与数据库连接的程序

db2 listapplication

--列出数据库目录:

db2 list databasedirectory/db2 list db2 directory

--列出当前实例:

db2 get instance

--察看示例配置文件:

db2 get dbmcfg|more

--修改实例参数

db2 update dbmcfg  using SVCENAME DB2c

--查看数据库版本

db2level

db2 "select *from sysibm.sysversions"

--设置实例系统启动时是否自动启动

db2iauto -on

db2iauto –off

 

我自己需要创建两个DMS的表空间来存放用户数据和索引,因为其用的pagesize非默认值,所以需先创建同pagesize大小的

连接到数据库:db2 connect to testdb

 

--查看缓冲池表空间:

select * fromsyscat.bufferpools;

--查看表空间对应的缓冲池

selecttbspace,bufferpoolid from syscat.tablespaces;


--创建缓冲池

create bufferpooldw_bp immediate size 3000 pagesize 16k

 

--创建DMS表空间

create tablespacedw_tbl pagesize 16384 managed by database using (file'/data/db2dir/dccdb/NODE00001' 500000) extentsize 16 prefetchsize 16 bufferpooldw_bp \

 

create tablespacedw_idx pagesize 16384 managed by database using (file'/data/db2dir/dccdb/NODE00002' 190000) extentsize 16 prefetchsize 16 bufferpooldw_bp \

 

--创建用户临时表空间

create usertemporary tablespace TEMPSP16K  pagesize16384 managed by database using(file '/data/db2dir/dccdb/NODE00003' 65000)extentsize 16 prefetchsize 16 bufferpool dw_bp

 

创建模式

create schema db2test [authorization db2test]   -->指定模式所属的用户,默认为创建该模式的用户拥有。

 

表空间维护

 

--.查看当前数据库表空间

db2 listtablespaces show detail

--查看tablespace id = 2使用容器所在目录

db2 list tablespacecontainers for 2 show detail

--查看表空间快照

db2 get snapshotfor tablespaces on testdb

--删除缓冲池

drop bufferpool bp1

--将表空间下所有容器扩展10000页

alter tablespacedw_tbl extend (all 10000)

--添加DMS容器(会发生表空间重新平衡)

alter tablespacedw_tbl add (file '/data/db2dir/testdb/NODE00003' 100000,file '/data/db2dir/testdb/NODE00004'100000)

-- 缩小表空间容器也的大小(减少5000页)

alter tablespacedw_tbl reduce (file '/data/db2dir/testdb/NODE00001' 5000)

--改变表空间容器也的大小(减少到5000页)

alter tablespacedw_tbl resize (file '/data/db2dir/testdb/NODE00001' 5000)

-- 删除容器

alter tablespace dw_tbldrop (file 'data/db2dir/testdb/NODE')

--重命名表空间

rename tablespacedw_tbl to tbl

--将表空间从脱机状态(offline)转换到联机状态(online)

alter tablespace<name> switch online

--删除表空间(一个表的数据放在不同的表空间,如:数据放在dw_tbl上,索引放在dw_idx上,删除是需要同时删除)

drop tablespacedw_tbl

dorp tablespacedw_tbl,dw_idx


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值