分享
 
 
 

DB2 环境部署-在DB2 UDB V8.1中使用裸(raw)设备

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

版权声明:

本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。

原文出处: http://www.aiview.com/notes/db2_using_raw.htm

作者: 张洋 Alex_doesAThotmail.com

最后更新: 2004-7-14

目录

一般信息

规划磁盘分区

创建RAW设备

创建数据库

规划日志以及备份文件存储

额外信息

参考资源

一般信息

本文中的命令和代码在以下环境编译执行通过:

IBM xSeriers 345(Inter 32位)

RedHat Enterprise Linux 3.0

DB2 V8.1 for Linux

主机连接一个IBM EMP300

磁盘柜,用于数据库数据存储。磁盘柜共有6块磁盘,单块146GB,其中5块做成RAID5,剩余一块做备用盘。

RAID5中,校验信息不单独占用一个磁盘,而是根据算法平均分布在各个磁盘上,这样避免了读写校验信息产生的瓶颈。

假设在主机上已经安装好了一个DB2服务,创建了一个实例,名为db2,还未建立数据库,并且磁盘柜已经在系统下安装好驱动程序,我们获得的设备名为sdb,还未进行分区。

下面分步介绍在磁盘阵列上建立raw设备并进行数据规划和数据放置的操作步骤:

规划磁盘分区

以root登录,对磁盘阵列进行分区,在root提示符下键入:

#fdisk /dev/sdb

新增3个主分区sdb1,sdb2,sdb3,每个分区20GB,分别划分给系统目录表空间、默认的系统临时表空间和新增的32kb的临时表空间,

剩下空间约527GB全部划分给第4个扩展分区sdb4,在扩展分区中增加5个逻辑分区sdb5,sdb6,sdb7,sdb8,sdb9,前两个逻辑分

区各160GB,用作表存储的用户表空间,第三个逻辑分区为20GB,用作专门放置索引的用户表空间,余下的2个逻辑分区分别为80GB、93GB,这两

个逻辑分区使用ext3进行格式化,用于存放日志和数据库备份。

注意:sdb1-sdb7均未进行格式化操作,准备用作raw设备,由DB2自行管理。

以下是分好区的磁盘状态:

Disk /dev/sdb: 587.2 GB, 587257085952 bytes

254 heads, 63 sectors/track, 71677 cylinders

Units = cylinders of 16002 * 512 = 8193024 bytes

Device Boot Start End Blocks Id System

/dev/sdb1 1 2501 20010469+ 83 Linux

/dev/sdb2 2502 5002 20010501 83 Linux

/dev/sdb3 5003 7503 20010501 83 Linux

/dev/sdb4 7504 71677 513456174 5 Extended

/dev/sdb5 7504 27502 160011967+ 83 Linux

/dev/sdb6 27503 47501 160011967+ 83 Linux

/dev/sdb7 47502 50002 20010469+ 83 Linux

/dev/sdb8 50003 60002 80009968+ 83 Linux

/dev/sdb9 60003 71677 93411643+ 83 Linux

创建RAW设备

打算用作raw设备的各个逻辑分区DB2不能够直接使用,需要使用raw命令创建raw设备名:

在root提示符下键入:

# raw -a

查询当前已经建立的raw设备名,目前为空,我们可以从第一个设备名用起,

在root提示符下键入:

# raw /dev/raw/raw1 /dev/sdb1 # 用于system catalog

tablespace (4K)

# raw /dev/raw/raw2 /dev/sdb2 # 用于system temp tablespace (4K)

# raw /dev/raw/raw3 /dev/sdb3 # 用于system temp tablespace (32K)

# raw /dev/raw/raw5 /dev/sdb5 # 用于user tablespace1 (32K),存储表

# raw /dev/raw/raw6 /dev/sdb6 # 用于user tablespace1 (32K),存储表

# raw /dev/raw/raw7 /dev/sdb7 # 用于user tablespace2 (32K),存储索引

至此,我们创建了6个raw设备名,用于交给DB2直接管理,查看一下已经创建的raw设备名的情况:

# raw -a

/dev/raw/raw1: bound to major 8, minor 17

/dev/raw/raw2: bound to major 8, minor 18

/dev/raw/raw3: bound to major 8, minor 19

/dev/raw/raw5: bound to major 8, minor 21

/dev/raw/raw6: bound to major 8, minor 22

/dev/raw/raw7: bound to major 8, minor 23

如果想删除一个raw设备名(例如/dev/raw/raw1),在root提示符下键入:

# raw /dev/raw/raw1 0 0

接着修改系统的初始化文件,添加如下行到 /etc/rc.d/sysinit

文件:

raw /dev/raw/raw1 /dev/sdb1

raw /dev/raw/raw2 /dev/sdb2

raw /dev/raw/raw3 /dev/sdb3

raw /dev/raw/raw5 /dev/sdb5

raw /dev/raw/raw6 /dev/sdb6

raw /dev/raw/raw7 /dev/sdb7

这样系统在下次启动时,会重新建立需要的raw设备名。

默认建立的raw设备拥有者是disk,必须让数据库实例的拥有者具有此设备的存取权限,在root提示符下键入:

# chown db2:disk /dev/raw/raw[1,2,3,4,5,6,7]

将db2用户更改为7个裸设备的拥有者,至此,这些裸设备已经可以为DB2所引用。

创建数据库

下面准备使用以上raw设备创建一个名为newdb的数据库,包含页size为4kb系统目录表空间、系统临时表空间以及用户表空间各一个;

然后新建页size为8kb、16kb、32kb的缓冲池各一个;

删除4kb的用户表空间,新建2个32kb页size的用户表空间,用于用户表的存储;

新建一个32kb页size的用户表空间,用于存储索引;

新建一个32kb页size的系统临时表空间;

我们将完成以上功能的脚本保存为newdb.sql,并通过如下方式执行此脚本:

在root提示符下键入如下命令,转到db2用户下:

# su - db2

执行上面的脚本:

$ db2 -td";" -f newdb.sql

至此数据库创建完成。下载脚本代码

规划日志以及备份文件存储

接下来,还需要规划日志和数据库备份的存储,首先将用于日志和数据库备份的分区进行格式化(此过程花费时间较长):

在root提示符下键入:

# mkfs.ext3 /dev/sdb8

# mkfs.ext3 /dev/sdb9

创建DB2数据库的目录:

# mkdir /db2

# chown db2:db2 /db2

# su - db2

$ mkdir /db2/db2log

$ mkdir /db2/db2backup

$ exit

mount逻辑分区到目录:

# mount /dev/sdb8 /db2/db2log

# mount /dev/sdb9 /db2/db2backup

更新数据库的log文件路径:

# su - db2

$ db2 connect to newdb

$ db2 update db cfg using newlogpath '/db2/db2log'

停顿数据库使修改生效,使用defer参数继续执行已有的事务,拒绝新的连接,停顿成功后发布激活数据库的命令:

$ db2 quiesce db defer

$ db2 unquiesce db

$ exit

至此我们完成了利用raw设备进行数据规划和数据放置的任务。

额外信息

当已经在raw设备上创建容器之后,若没有通过正常的步骤删除表空间所在数据库,也没有直接删除容器或者容器所在表空间,则再次利用这些raw设备时,DB2会报错:

The container is already in use

此时应使用db2untag命令释放container标志,而采用重新对磁盘进行分区或者格式化的操作是无济于事的。

释放已经在raw设备raw1上建立的container标志:

# su - db2

$ db2untag /dev/raw/raw1

参考资源

下载用于创建数据库的脚本

IBM DB2 开发者园地

http://www-900.ibm.com/developerWorks/cn/dmdd/certify/index.shtml

IBM DB2 信息中心

http://publib.boulder.ibm.com/infocenter/db2help/index.jsp

dbforums 论坛

http://dbforums.com/

《DB2 UDB v8.1 for Linux, UNIX, Windows 数据库管理》George

Baklarz, Bill Wong 合著,机械工业出版社出版

《DB2数据库管理与应用教程》庄济诚

著,清华大学出版社出版

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有