还是 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: iq的元数据空间,日志等必须放在文件系统上,只有表空间和临时表空间可以放在裸设备上。
用SybaseCentral时候,Databasefile必须建在文件系统的目录上,而MainIQstore可以直接对应裸设备 原帖由 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 也是实际的文件空间。而扩充数据空间的时候,可以指向裸设备了。
不知道对不对。
另外:我对于上面您所说的内容不大理解。
请详细指教。 关于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 谢谢楼上的回答。
我还想问一个问题。
Catalog Store(for metadata,扩展名为:.db)
一个IQ 数据库只能有一个Catalog store DBspace,而且只能创建在一个文件系统上,不能创建在裸设备上。
Catalog Store会随着元数据、表、视图、存储过程等对象的增加动态增长。
这句话的意思是否是说,在 .db 的文件中存取的数据库中的各种表的结构,而不是数据表中的具体数据记录。
如果以上的理解成立,那么这个 .db 的文件在创建数据库的时候,并不大,实际上,这个文件不管是创建数据库的时候,还是正常使用的过程中,这个文件都应该非常小。
是这样的吗?
[ 本帖最后由 snow888 于 2008-6-17 08:42 编辑 ] 还是不行啊。
我的建库脚本为:
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 列
$
IQ PATH '/home/sybaseiq/data/datafiles/misinfo.iq'
IQ PATH 直接写'/dev/sdb'试试 原帖由 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'试试
谢谢,试了,还是不行。
怎么办呀? 还有,斑竹能不能把你的 MSN 告诉我啊。
我的 MSN 是 snow.80@live.cn
能联系一下么?我真的很需要你的帮助。 IQ PATH 直接写'/dev/rsdb' 再试试
应该用字符设备吧