分类: DB2/Informix
2008-05-31 16:29:39
管理磁盘空间
数据库服务器使用以下物理单元管理磁盘空间:
块是分配给服务器的磁盘或物理空间单元。块可以是裸设备(特殊字符设备)或 UNIX 熟文件。当向服务器分配块时,需要指定下面三个值:
服务器的逻辑限制为 32,767 块。然而,UNIX 内核将限制进程可以打开的文件数,该限制将取代服务器限制。
页面是服务器使用的基本 I/O 单元。从 IDS Version 10 开始,页面的大小不再根据产品平台确定。任何在根 dbspace 后创建的块/dbspaces 的页面大小范围从 2K 到 16K 之间,使用多个默认页面大小。如果现有页面不能存放指定大小的页面,将创建一个缓冲池。
磁盘中连续的物理页面集合。表空间的大小按照区段单元分配。表的区段大小在创建表时指定。
Blobpage 是存储在 blobspace 中的 blob 数据类型的基本存储单元。可将 blobpage 的大小配置为系统页面大小的若干倍。
sbpage 是数据库服务器用来存储 sbspace 内的智能大对象(smart large objects)的页面类型。与 blobpage 不同,sbpage 不能够进行配置。sbpage 的大小与数据库页面大小相同。
|
数据库服务器使用以下逻辑单位存储数据:
Dbspace 是一个或多个用于存储数据库和表的块的逻辑组合。每个 dbspace 必须至少分配了一个块。
blobspace 是一个逻辑存储单元,由一个或多个只存储有 TEXT 和 BYTE 数据的块组成。数据库服务器将存储在 blobspace 中数据直接写入磁盘。该数据并不经过共享内存驻留区。
sbspace 是一个逻辑存储单元,由一个或多个存储智能大对象的块组成。智能大对象包括 BLOB、CLOB 和用户定义数据类型(UDTs)。
Tblspace 是为存储一个 dbspace 中特定表或索引信息而分配的所有区段的集合。tblspace 表示的空间不一定是连续的,而任何区段表示的空间则一定是连续的。
onspaces -c -d |
onspaces -c -b |
onspaces -c -S |
可使用 onspaces 工具在系统命令行中删除 dbspace、blobspace 或 sbspace。在删除 dbspace 之前,必须先要删除其中创建的所有数据库和表。
在删除 blobspace 之前,必须先要删除含有引用该 blobspace 的 TEXT/BYTE 列的表。
Example : To drop the dbspace dbspace1. onspaces -d dbspace1 |
可使用 onspaces 工具向 dbspace 或 blobspace 添加块。清单 6 展示了使用 onspaces 工具向 dbspace 添加块使用的参数:
onspaces -a |
可使用 onspaces 向 sbspace 添加块。清单 7 展示了使用 onspaces 工具向 sbpace 添加块使用的参数:
onspaces -a |
|
添加了两个新的内置 SQL 管理 API 函数,通过 SQL 的 EXECUTE function 语句,模拟 Dynamic Server 的不同管理命令行工具,可以完成远程管理任务。
ADMIN 和 TASK 函数为 Dynamic Server 的管理命令行工具提供了一个 SQL 接口。这些内置函数只在每个 Dynamic Server 实例的 sysadmin 数据库中做了定义,并且只能被用户 informix 调用。
当用户连接到 Dynamic Server 实例的 sysadmin 数据库时,可远程调用这些函数。
对 ADMIN 或 TASK 函数的每个调用会生成两个结果:
TASK 函数返回说明返回状态的字符串。ADMIN 函数返回一个整数说明返回状态,这是到 command_history 表的链接。
EXECUTE FUNCTION task('create dbspace','dbs1', '/dev/rdsk/device1 ', '200000',
'1000000');
Output : (expression) Space 'dbs1' added.
|
EXECUTE FUNCTION task ('drop dbspace', 'dbs1');
Output : (expression) Space 'dbs1' dropped.
** WARNING ** A level 0 archive will need to be done before any chunks from
DBspace dbs1 can be reused (see Dynamic Server Administrator's manual).
|
EXECUTE FUNCTION task ( 'add mirror', 'dbs1', '/dev/rdsk/device1','200000', '/dev/rdsk/device2', '450000'); Output: (expression) Mirror chunk '/dev/rdsk/device2' added to space 'dbs1' |
EXECUTE FUNCTION task('create blobspace ','blobsp1', '/dev/rdsk/device8 ', '50',
'200000', '1000000');
Output: (expression) Space 'blobsp1' added.
|
EXECUTE FUNCTION task('create blobspace ','blobsp1', '/dev/rdsk/device8 ', '50',
'200000', '1000000');
Output: (expression) Space 'blobsp1' added.
|