数据库设备

所有的数据库都创建在数据库设备上。所谓数据库设备,不是指一个可识别的物理设备,而是指用于存储数据库和数据库对象的磁盘原始分区或操作系统文件。增加一个新的数据库设备时,必须对这些设备“初始化”。初始化的过程就是将物理磁盘、磁盘分区或操作系统文件变为SYBASE数据库可以识别的设备。初始化数据库设备使用DISKINIT命令:


DISKINIT NAME=设备名, PHYSNAME=物理设备名, VDEVNO=虚拟设备号, SIZE=块数



其中,NAME指数据库设备名,此名将用于CREATEDATABASE和ALTERDATABASE命令。PHYSNAME是原始磁盘分区或操作系统文件名。VDEVNO是数据库设备的标识号,在SQLServer中,它必须是唯一的。SIZE的单位是2K的块,对于新创建的数据库,最小的SIZE是model数据库的尺寸,即1024个2K的块(2M)。


例如:/*将/dev目录下400M的物理设备初始化为SYBASE的数据库设备tele114_log01*/ diskinit name=“tele114_log01”, physname=“/dev/rtelelog” vdevno=4 size=204800/*2Kbyte*204800=400Mbyte*/ go



和我们熟悉的sql server不太一样的是在sql server中可以直接创建数据库,但是在sybase中需要先创建设备,并且需要为设备指定大小,当设备创建完成后才能在设备中建立数据库。这样的话我们在磁盘上能看到的就是数据库设备而不是数据库,这样的好处就是sybase数据库转移竟然可以直接复制粘贴,而不是像sql server那样还需要附加,这次维护sybase数据库最后就是直接复制粘贴来实现数据库的转移(在后面的文章中将详细介绍)。

数据库设备从逻辑上被划分为数据库段以允许将某一特定的对象放置在指定的段上(创建对象时指定),一数据库设备可拥有多达192个段,一段可使用255个逻辑设备上的存储空间。当用户创建一个数据库时,SQLSERVER会自动在该数据库中创建三个段:SYSTEM、LOGSEGMENT、DEFAULT,这三个段分别用来存储数据库的系统表、事务日志和其他数据库对象

在数据库中创建段的步骤是:

先用Diskinit初始化物理设备

通过使用Createdatabase和alterdatabase的on子句,使数据库设备对数据库可用,于是新设备自动增加到数据库的default和system段。

一旦数据库设备存在并对数据库可用,使用存储过程Sp_addsegment定义数据库的段。语法如下:

Sp_addsegment段名,数据库名,设备名