第10章 管理磁盘空间

第10章 管理磁盘空间[@more@]

一、使用偏移量在一个裸设备(如原始磁盘设备、磁盘分区)或一个熟文件中创建多个块。
通过指定偏移量以及分配小于可用总空间的块,可从磁盘分区、磁盘设备或文件中创建多个块。偏移量指定块的开始位置。数据库服务器通过将块大小增加至偏移量来确定块的最后字节的位置。

对于第一个块,分配任何初始偏移量(如有需要,但一般为0)并将大小指定为少于分配磁盘空间总大小的数量。
对于每个附加块,请指定偏移量以包含所有先前分配的块并加上初始偏移量,然后分配少于或等于分配中剩余的空间量大小。

在采用熟文件生产环境中,一般在一个熟文件上仅创建一个块,这样方便管理。一定要搞清楚存储空间与块之间的关系:存储空间肯定有名字,块肯定没有名字,块存在于存储空间中,它从某一个偏移量开始占用一定大小的空间。
所以:
1、标识一个块只能是用存储空间名加上偏移量(注意没有大小,因此也有可能产生块的重叠)了。这一点可从为 dbspace 添加块和删除块的操作中看出。
比如,从 dbspaces 的一个存储空间中删除一个块:
onspaces -d dbsp3 -p /dev/raw_dev1 -o 300
比如,从一个存储空间中向 dbspace 添加一个块:
onspaces -a blobsp3 -p /dev/raw_dev1 -o 200 -s 10240
比如,新创建一个 dbspace:
onspaces -c -d dbspce1 -p /dev/raw_dev1 -o 5000 -s 10240 -m /dev/raw_dev2 5000
以上3个例子中, -p 都指定了存储空间的名字,而 -d 或 -a 后也都指明了 dbspace名(也可能为blobspace或sbspace名,后面会谈到的。)
2、由于存储空间有名字,所以对存储空间的操作就比对块的操作方便了许多。
比如,删除数据库空间:
onspaces -d dbspce5
即删除了名为dbspce5的数据库空间和镜像。(镜像会被级联删除,且删除之前必须先删除在该存储空间中创建的数据库和表)。如果想删除包含数据的智能大对象空间,则还是加上 -f 选项。在删除存储空间后,还得执行0级备份。
3、对块的监视。
使用 onstat -d 可以监视块的地址、块所在的数据库空间号、块的大小,块中可用页数以及块中的表。如果想要查看最新的块的信息,还得执行 onstat -d update 操作才可以。
对块的祥细监视可参考:P10-33
以上部分是本人的理解,如有错误,还请批评。

二、在 UNIX 上分配熟文件形式的存储空间
请参见: http://publib.boulder.ibm.com/infocenter/idshelp/v10/topic/com.ibm.admin.doc/admin02.htm#ToC_632

以下过程显示为 UNIX 上的磁盘空间分配熟文件形式的存储空间 usr/data/my_chunk 的一个示例。

2.1、分配格式化的文件空间
2.1.1以用户 informix 的身份登录:
su informix

2.1.2将目录切换至格式化的空间将驻留的目录:
cd /usr/data

2.1.3通过将 null 连接至数据库服务器要用于磁盘空间的文件名来创建块:
cat /dev/null > my_chunk
或 touch my_chunk

2.1.4将文件许可权设置为 660(rw-rw----):
chmod 660 my_chunk

2.1.5必须将组和文件所有者均设置到 informix:
ls -l my_chunk -rw-rw----
1 informix informix
0 Oct 12 13:43 my_chunk

三、在 UNIX 上分配裸设备形式的存储空间
请参见: http://publib.boulder.ibm.com/infocenter/idshelp/v10/topic/com.ibm.admin.doc/admin02.htm#ToC_633
3.1 创建并安装裸设备。
3.2 将字符专用设备的所有权和许可权更改到 informix。
3.3 验证操作系统对字符专用设备的许可权为 crw-rw----。
3.4 用 UNIX 链接命令 ln -s 在字符专用设备名称和另一文件名之间创建符号链接。
如果您的操作系统不支持符号链接,则硬链接也可起作用。

ln -s /dev/rxy0h /dev/my_root # orig_device link to symbolic_name
ln -s /dev/rxy0a /dev/raw_dev2
ls -l
crw-rw--- /dev/rxy0h
crw-rw--- /dev/rxy0a
lrwxrwxrwx /dev/my_root@->/dev/rxy0h
lrwxrwxrwx /dev/raw_dev2@->/dev/rxy0a


注意:
运行 onmode -BC 启用最大块和存储空间数。
在大多数平台上,最大块大小为 4 TB(如果您没有运行 onmode -BC,则最大块大小为 2 GB)。
存储空间的最大块数为 32,766。存储空间可以是数据库空间、Blob 空间和 Sb 空间的任何组合。
考虑到对数据库服务器实例大小的所做的所有限制,实例的最大大小为 8 PB。

四、创建数据库空间 dbspace
通过上面的《二、在 UNIX 上分配熟文件形式的存储空间》或《三、在 UNIX 上分配裸设备形式的存储空间》创建存储空间后,便可以使用这些存储空间创建dbspace

4.1 在 UNIX 上,必须以用户 informix 或 root 身份登录来创建数据库空间。
4.2 数据库服务器必须处于联机、单用户或静默方式。
4.3 利用上面的《二、在 UNIX 上分配熟文件形式的存储空间》或《三、在 UNIX 上分配裸设备形式的存储空间》创建的存储空间使用 onspaces -c -d 选项来创建包含一个块(chunk)的数据库空间。
其中 -s size 和 -o offset 选项的缺省单位是千字节。
以下示例在 UNIX 上使用原始磁盘空间显示了 10 兆字节的镜像数据库空间 dbspce1,对主要块和镜像块均有 5000 千字节的偏移量。
onspaces -c -d dbspce1 -p /dev/raw_dev1 -o 5000 -s 10240 -m /dev/raw_dev2 5000

这个数据库空间 dbspace1 包含一个块(chunk),此 chunk 的大小为 10MB。

4.3.1 指定第一个和下一个扩展数据块大小。
创建数据库空间时,可以指定第一个和下一个扩展数据块大小。创建数据库空间后,不能改变第一个和下一个扩展数据块大小的规范。此外,不能为临时数据库空间、Sb 空间、Blob 空间或外部空间指定扩展数据块大小。您不能在创建数据库空间后改变第一个和下一个扩展数据块大小的规范。
如果想要为数据库空间中的表空间 tblspace 指定第一个和下一个扩展数据块大小,可使用以下参数:
第一个扩展数据块大小:-ef size_in_kbytes
下一个扩展数据块大小:-en size_in_kbytes
也可以使用 TBLTBLFIRST 配置参数中指定第一个扩展数据块大小并在 TBLTBLNEXT 配置参数中指定下一个扩展数据块大小。但需要初始化数据库服务器实例。
可使用 oncheck -pt 和 oncheck -pT 显示表空间 tblspace 的第一个和下一个扩展数据块大小。

4.3.2 定义页面大小
使用 onspaces -k 选项设置页面大小(以千字节计):

4.4 在创建数据库空间之后,必须对根数据库空间和新数据库空间执行 0 级备份:ontape -s -L 0

五、 向 dbspace 添加 chunk
使用onspaces 的 -a 选项为现有的 dbspace 添加 chunk

在创建 dbspace 或向 dbspace 添加块之后,必须对根数据库空间和包含该块的数据库空间、Blob 空间或 Sb 空间执行 0 级备份。

如果已对存储空间进行镜像,则必须为主要块和镜像块(-m 选项)都指定路径名。
如果指定了不正确的路径名、偏移量或大小,则数据库服务器不会创建块,并且会显示错误消息。
以下示例将 10 兆字节的镜像块添加至 blobsp3。对主要块和镜像块都指定了 200 千字节的偏移量。如果您不添加镜像块,则可省略 -m 选项。
onspaces -a blobsp3 -p /dev/raw_dev1 -o 200 -s 10240 -m /dev/raw_dev2 200

六、 创建 blobspace
blobspace 是专门用来存储 byte,text类型数据的空间,但byte,text也可以存储在 dbspace 中。
首先:同《四、创建数据库空间 dbspace》,把选项 -d 改为 -b,但blob页的大小由 -g 来指定。
其次:在创建 Blob 空间后,必须对根数据库空间和 blob 空间执行 0 级备份:ontape -s -L 0
再次:切换至下一逻辑日志文件:onmode -l

七、 创建智能大对象空间 sbspace
clob 和 blob 类型的数据只能存储在 sbspace 中。
首先:同《四、创建数据库空间 dbspace》,把选项 -d 改为 -S。
其次:在创建 sbspace 后,必须对根数据库空间和新智能大对象空间执行 0 级备份:ontape -s -L 0
再次:如果想使用该空间,必须在 SBSPACENAME 配置参数中指定空间名称。

例:创建 20 兆字节的镜像 Sb 空间 sbsp4。为主要块和镜像块均指定 500 千字节的偏移量,还指定具有 200 KB偏移量(-Mo)的 150 KB大小的元数据(-Ms)。AVG_LO_SIZE -Df 标记指定智能大对象的平均期望大小 32 千字节。
onspaces -c -S sbsp4 -p /dev/rawdev1 -o 500 -s 20480 -m /dev/rawdev2 500
-Ms 150 -Mo 200 -Df "AVG_LO_SIZE=32"

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22565551/viewspace-1027940/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22565551/viewspace-1027940/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值