snow888 发表于 2008-06-16 08:59

还是 IQ ,关于裸设备的问题。

操作系统:

RHEL AS4 UPdate5

数据库:
Sybase IQ 12.7

这裸设备和 ASE 12.5.x 上不一样啊。如何干?

我的操作是:

fdisk -l

设备显示为 /dev/sdb

然后执行 fdisk /dev/sdb 在 /dev/sdb 上创建了一个分区,新的分区为 /dev/sdb1

按照 IQ 的说明,是可以直接使用未格式化的原始分区的,但是我建库的时候,直接把库所在的目录设置成这个 /dev/sdb1 ,就是不行。是不是我的操作不对啊?


请大牛们不吝赐教。详细说一下啊。最好能给个 example 。

:oops:

chuxu 发表于 2008-06-16 09:10

iq的元数据空间,日志等必须放在文件系统上,只有表空间和临时表空间可以放在裸设备上。
用SybaseCentral时候,Databasefile必须建在文件系统的目录上,而MainIQstore可以直接对应裸设备

snow888 发表于 2008-06-16 16:55

原帖由 chuxu 于 2008-6-16 09:10 发表 http://bbs.chinaunix.net/images/common/back.gif
iq的元数据空间,日志等必须放在文件系统上,只有表空间和临时表空间可以放在裸设备上。
用SybaseCentral时候,Databasefile必须建在文件系统的目录上,而MainIQstore可以直接对应裸设备

能不能详细说一下。

我这样理解这句话的含义,不知道对不对?

我第一次建数据库的时候, IQ PATH 必须只向实际的文件空间,DATABASE 指向的路径也必须是实际的文件空间,temporary path 指向的也是实际的文件空间,log on 也是实际的文件空间。而扩充数据空间的时候,可以指向裸设备了。

不知道对不对。

另外:我对于上面您所说的内容不大理解。

请详细指教。

zhaopingzi 发表于 2008-06-16 17:20

关于IQ的三种DBSPACEE:
(1)、Catalog Store(for metadata,扩展名为:.db)
一个IQ 数据库只能有一个Catalog store DBspace,而且只能创建在一个文件系统上,不能创建在裸设备上。
Catalog Store会随着元数据、表、视图、存储过程等对象的增加动态增长。
Catalog Store包含了管理一个IQ数据库的所有信息。
Catalog Store的逻辑名为SYSTEM。
一个数据库中所有表的信息都存储在Catalog Store的系统表中。例如系统表有:SYSIQCOLUMN、SYSIQFILE、 SYSIQINDEX、 SYSIQINFO、 SYSIQTABLE等。可以用语句:
Select * from SYSIQINFO 语句来查看相关信息。
(2)、IQ Store(for data,扩展名为:.iq)
IQ Store存储了压缩的数据信息,例如索引信息、事务日志、管理分配空间的结构等。
每一个数据库只有一个IQ Store。一个IQ Store通常情况下包括多个DBspace。
IQ Store的DBspace可以建立在裸设备或文件系统上。
IQ Store的逻辑名为:IQ_SYSTEM_MAIN
注意:IQ Store的文件系统的扩展名为.iq,裸设备没有扩展名。
(3)、IQ temporary Store(for temporary data,扩展名为:.iqtmp)
IQ temporary Store是数据库的工作区间。在装入数据时在其中进行排序数据,以建立索引。
一个数据库只有一个IQ temporary Store。一个IQ temporary Store可以包含多个物理文件。
IQ temporary Store可以是文件系统或裸设备。
IQ temporary Store的逻辑名为IQ_SYSTEM_TEMP

snow888 发表于 2008-06-17 08:38

谢谢楼上的回答。

我还想问一个问题。

Catalog Store(for metadata,扩展名为:.db)
一个IQ 数据库只能有一个Catalog store DBspace,而且只能创建在一个文件系统上,不能创建在裸设备上。
Catalog Store会随着元数据、表、视图、存储过程等对象的增加动态增长。

这句话的意思是否是说,在 .db 的文件中存取的数据库中的各种表的结构,而不是数据表中的具体数据记录。

如果以上的理解成立,那么这个 .db 的文件在创建数据库的时候,并不大,实际上,这个文件不管是创建数据库的时候,还是正常使用的过程中,这个文件都应该非常小。

是这样的吗?

[ 本帖最后由 snow888 于 2008-6-17 08:42 编辑 ]

snow888 发表于 2008-06-17 09:08

还是不行啊。

我的建库脚本为:

CREATE DATABASE '/home/sybaseiq/data/misinfo.db'
      message path'/home/sybaseiq/data/misinfo.iqmsg'
      temporary path '/home/sybaseiq/data/datafiles/misinfo.iqtmp'
      log on '/home/sybaseiq/data/misinfo.log'
      IQ PATH '/home/sybaseiq/data/datafiles/misinfo.iq'
      IQ PAGE SIZE 131072
      IQ SIZE 40
      collation '936ZHO'
      TRANSACTION
      LOG ON
      JAVA ON
      JCONNECT ON
      CASE RESPECT
;


其中 datafiles 是我用 ln -s /dev/sdb1 创建的一个原始设备文件的链接。
/dev/sdb1 是我用 fdisk /dev/sdb 创建的一个原始设备分区。

系统的提示是:
$ dbisql -c "eng=utility_db;uid=DBA;pwd=SQL;dbn=utility_db" -nogui -q CreateDB.SQL
Creating system tables
Collation sequence:936ZHO
Creating system views
Setting permissions on system tables and views
Setting option values
Loading Java classes
Initializing UltraLite deployment option

无法执行语句。
/home/sybaseiq/data/datafiles/misinfo.iq is not a directory
-- (hos_ion.cxx 182)
SQLCODE=-1006151, ODBC 3 语句="HY000"
文件: "CreateDB.SQL" 第 1 行,第 1 列

$

chuxu 发表于 2008-06-17 09:16

IQ PATH '/home/sybaseiq/data/datafiles/misinfo.iq'

IQ PATH 直接写'/dev/sdb'试试

snow888 发表于 2008-06-17 09:33

原帖由 chuxu 于 2008-6-17 09:16 发表 http://bbs.chinaunix.net/images/common/back.gif
IQ PATH '/home/sybaseiq/data/datafiles/misinfo.iq'

IQ PATH 直接写'/dev/sdb'试试


谢谢,试了,还是不行。

怎么办呀?

snow888 发表于 2008-06-17 09:36

还有,斑竹能不能把你的 MSN 告诉我啊。

我的 MSN 是 snow.80@live.cn

能联系一下么?我真的很需要你的帮助。

chuxu 发表于 2008-06-17 09:51

IQ PATH 直接写'/dev/rsdb' 再试试

应该用字符设备吧
页: [1] 2 3
查看完整版本: 还是 IQ ,关于裸设备的问题。