Chinaunix首页 | 论坛 | 博客
  • 博客访问: 67557
  • 博文数量: 7
  • 博客积分: 1426
  • 博客等级: 上尉
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-21 15:11
文章分类

全部博文(7)

文章存档

2010年(1)

2009年(4)

2008年(2)

我的朋友
最近访客

分类:

2009-12-10 23:21:52

3.使用vtoc命令划分slice 
3.1.命令模式 
VTOC的全称Volume Table of Contents,目录卷表,他管理着fdisk分区表和slice的分区表。 
prtvtoc命令是个磁盘VTOC信息的显示工具,该命令的命令模式如下: 
prtvtoc -f filename /dev/rdsk/c0b0t1d0s0 (filename能够任意指定) 
edvtoc命令是硬盘VTOC信息的编辑工具,因为每个硬盘在UnixWare7操作系统中都是VTOC驱动程式通过VTOC表进行管理的,所以说edvtoc也是UnixWare7修改硬盘分区的工具该命令的命令模式如下: 
edvtoc -f filename /dev/rdsk/c0b0t1d0s0 (filename是指定的vtoc文档) 
利用diskadd或disksetup命令添加一个2G大小的分片 
3.2.读取VTOC信息 
以root用户登录 
# prtvtoc -f vtoc.txt /dev/rdsk/c0b0t3d0s0 
# pg vtoc.txt 
--------------------------------------------------------------------- 
# SLICE TAG FLAGS START SIZE 
0 0x5 0x201 32 45998000 ——》代表整个逻辑盘 
1 0x4 0x201 2048 4280320 ——》代表第一个分片(裸设备) 
2 0x0 0x0 0 0 
3 0x0 0x0 0 0 
4 0x0 0x0 0 0 
5 0x0 0x0 0 0 
6 0x0 0x0 0 0 
7 0x1 0x201 32 34 ——》boot区 
8 0xd 0x201 66 1982 ——》Alternate sector/track 
9 0x0 0x0 0 0 
10 0x0 0x0 0 0 
11 0x0 0x0 0 0 
12 0x0 0x0 0 0 
13 0x0 0x0 0 0 
14 0x0 0x0 0 0 
15 0x0 0x0 0 0 
(EOF): 
-------------------------------------------------------------------------- 
注: 
SLICE:该字段表示分片号,其中分片号0(代表整个逻辑盘)、7、8是系统任何; 
TAG:该字段对于分片号0、7、8是系统自定的(0x5、0x1、0xd),不能改变,其他分片号在划分裸设备时对应该字段都是0x4; 
FLAGS:该字段中0x200表示文档系统,0x201表示裸设备; 
START:开始大小,其数值等于上一个分片的start+size,例如在vtoc文档中,我们能够看到其中slice8的start值(66)等于slice7的start+size值(32+34),其中slice1的start值(2048)等于slice8的start+size值(66+1982); 
SIZE:分片大小,单位512字节,其中slice0的size表示整个逻辑盘的大小45998000*0.5K=22.998G,而slice1的分片实际大小为4280320*0.5K=2.14G,因为sybase限制分片最大2G,所以我们能够修改vtoc文档使size大小为4000000*0.5K=2G 
3.3.编辑VTOC信息 
了解vtoc.txt文档中每个字段的意义,我们就能够利用vi工具编辑该文档,修改后的文档为: 
------------------------------------------------------------------ 
#SLICE TAG FLAGS START SIZE 
0 0x5 0x201 32 47101920 
1 0x4 0x201 2048 4000000 
2 0x4 0x201 4002048 4000000 
3 0x4 0x201 8002048 4000000 
4 0x4 0x201 12002048 4000000 
5 0x4 0x201 16002048 4000000 
6 0x4 0x201 20002048 4000000 
7 0x1 0x201 32 34 
8 0xd 0x201 66 1982 
9 0x4 0x201 24002048 4000000 
10 0x4 0x201 28002048 4000000 
11 0x4 0x201 32002048 4000000 
12 0x4 0x201 36002048 4000000 
13 0x4 0x201 40002048 4000000 
14 0x4 0x201 44002048 3000000 
------------------------------------------------------------------------------------ 
注: 
1. 编辑vtoc.txt有一个原则,最后一个slice的结束sector不能超出整个fdisk分区的范围,假如超出,将产生不可预料的严重错误,甚至有导致整个系统瘫痪的可能(假如整个硬盘作为裸设备则不会出现该问题)。 
2. 任何分片的的size之和不能超过该硬盘的大小,即任何slice(1-14)对应的size之和不能大于slice0对应的szie数值。 
3. 编辑vtoc.txt文档时,最后一行不能为空行。 
3.4.更新VTOC信息 
利用edvtoc命令更新硬盘的VTOC信息: 
# edvtoc -f vtoc.txt /dev/rdsk/c0b0t3d0s0 
您会看到 
--------------------------------------------------------------------------- 
UX:edvtoc: INFO: The following slices are the new disk configuration 
you have created. NO ERROR or VALIDITY checking has been done on it. 
slice 0: tag: DISK perms: VALID UNMOUNTABLE start: 32 length: 47101920 
slice 1: tag: USER perms: VALID UNMOUNTABLE start: 2048 length: 4000000 
slice 2: tag: USER perms: VALID UNMOUNTABLE start: 4002048 length: 4000000 
slice 3: tag: USER perms: VALID UNMOUNTABLE start: 8002048 length: 4000000 
slice 4: tag: USER perms: VALID UNMOUNTABLE start: 12002048 length: 4000000 
slice 5: tag: USER perms: VALID UNMOUNTABLE start: 16002048 length: 4000000 
slice 6: tag: USER perms: VALID UNMOUNTABLE start: 20002048 length: 4000000 
slice 7: tag: BOOT perms: VALID UNMOUNTABLE start: 32 length: 34 
slice 8: tag: ALT SEC/TRK perms: VALID UNMOUNTABLE start: 66 length: 1982 
slice 9: tag: USER perms: VALID UNMOUNTABLE start: 24002048 length: 4000000 
slice 10: tag: USER perms: VALID UNMOUNTABLE start: 28002048 length: 4000000 
slice 11: tag: USER perms: VALID UNMOUNTABLE start: 32002048 length: 4000000 
slice 12: tag: USER perms: VALID UNMOUNTABLE start: 36002048 length: 4000000 
slice 13: tag: USER perms: VALID UNMOUNTABLE start: 40002048 length: 4000000 
slice 14: tag: USER perms: VALID UNMOUNTABLE start: 44002048 length: 3000000 
Is this configuration the VTOC you want written to c0b0t3d0s0? 
(y/n) y 
----------------------------------------------------------------------------------------------- 
编译内核后重新启动机器 : 
# /etc/conf/bin/idbuild 
# shutdown -y -g0 -i6 
三.查看分片情况 
# cd dev/rdsk 
# lf c0b0t3d01s* 
假如看到的文档从cob0t3d0s0~c0b0t3d0se的话,表示分片成功。 
四.映射裸设备文档 
1.映射裸设备 
通过裸设备创建数据库设备(database device),则需首先将裸设备文档映射到指定的文档名上: 
# ln -s /dev/rdsk/c0b0t3d0s1 /home/sybae/devlink/dev25 
链接映射后,还需将/dev/rdsk/c0b0t3d0s1的文档属性进行修改: 
# chown sybase:sybase /dev/rdsk/c0b0t1d0s1 
# chmod 660 /dev/rdsk/c0b0t1d0s1 
这里我们为了方便能够先编写一个devcfg的shell脚本: 
#raw device config 20040618 
ln -s /dev/rdsk/c0b0t3d0s1 /home/sybase/devlink/dev25 
ln -s /dev/rdsk/c0b0t3d0s2 /home/sybase/devlink/dev26 
ln -s /dev/rdsk/c0b0t3d0s3 /home/sybase/devlink/dev27 
ln -s /dev/rdsk/c0b0t3d0s4 /home/sybase/devlink/dev28 
ln -s /dev/rdsk/c0b0t3d0s5 /home/sybase/devlink/dev29 
ln -s /dev/rdsk/c0b0t3d0s6 /home/sybase/devlink/dev30 
ln -s /dev/rdsk/c0b0t3d0s9 /home/sybase/devlink/dev31 
ln -s /dev/rdsk/c0b0t3d0sa /home/sybase/devlink/dev32 
ln -s /dev/rdsk/c0b0t3d0sb /home/sybase/devlink/dev33 
ln -s /dev/rdsk/c0b0t3d0sc /home/sybase/devlink/dev34 
ln -s /dev/rdsk/c0b0t3d0sd /home/sybase/devlink/dev35 
ln -s /dev/rdsk/c0b0t3d0se /home/sybase/devlink/dev36 
修改脚本属性为可执行: 
# chmod +x devcfg 
# devcfg 
2.修改裸设备属主及属性 
# chown sybase:sybase /dev/rdsk/c0b0t3* 
# chown sybase:sybase /dev/dsk/c0b0t3* 
# chown sybase:sybase /dev/async 
# chmod 660 /dev/dsk/c0b0t1d0s0 
# chmod 660 /dev/rdsk/c0b0t3d0s 
# chmod 660 /dev/dsk/c0b0t3d0s0 
到此,裸设备配置完成,之后在裸设备上划分建立数据库设备就能够了。 
注: 
服务器由于更改配置需要重启,重新rebuild后裸设备的映射关系连同属主、属性有可能会回复初始状态,这不是我们希望看到的。解决此问题的办法,就是将裸设备的映射关系连同改变属主、属性的操作统一写在一个可执行文档中(例如S99rawdevcfg),然后将此文档的属性用chmod 777 S99rawdevcfg改为可执行,再将此文档置放于系统自启动目录/etc/rc2.d下,则系统启动时自动执行此文档,以确保裸设备的正常运作。
阅读(611) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~