Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1634504
  • 博文数量: 201
  • 博客积分: 2812
  • 博客等级: 少校
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-18 18:28
个人简介

从事数据库工作多年,目前看好分布式NeSQL/HTAP数据库在企业客户市场的发展。未来的主要方向是——致力于 NewSQL/HTAP 数据库的推广普及。

文章存档

2016年(1)

2015年(8)

2014年(23)

2013年(50)

2012年(32)

2011年(87)

分类: Sybase

2011-01-26 21:26:19

   在这篇博文中将介绍如何构建一个IQ学习用的数据库,这个数据库来自于Sybase公司的megaphone2示例数据库。在以后我的博文中在说明一些知识的时候经常会引用到这个数据库。下面就说明这个数据库的建立步骤。
 
1.创建数据库
     在考虑数据库的存储时,可以根据自己机器的情况选择使用文件系统或是裸设备。下面以Linux环境下的IQ 15.2 为例给出两种情况的建库示例脚本。
 
--使用文件系统的createdb.sql
CREATE DATABASE '/sybiqdb/mp2/mp2.db'
 JAVA ON
 JCONNECT ON
 CASE RESPECT 
 BLANK PADDING ON
 COLLATION '936ZHO'
 IQ PAGE SIZE 131072
 PAGE SIZE 4096
 IQ PATH '/sybiqdb/mp2/mp2_iq_main.iq'  
 IQ SIZE 300  --300M
 TEMPORARY PATH '/sybiqdb/mp2/mp2_iq_temp.iq'
 TEMPORARY SIZE 200 --100M
 
 
--使用裸设备的createdb.sql
CREATE DATABASE '/sybiqdb/mp2/mp2.db'
 JAVA ON
 JCONNECT ON
 CASE RESPECT 
 BLANK PADDING ON
 COLLATION '936ZHO'
 IQ PAGE SIZE 131072
 PAGE SIZE 4096
 IQ PATH '/dev/raw/raw1'  --300M裸设备
 TEMPORARY PATH '/dev/raw/raw2'; --100M裸设备
 
 有了创建数据库的脚本时候,具体怎么建库呢?按照下面的步骤即可:
 (1) 启动IQ Utility Server
     start_iq -n utility_srv -x "tcpip{port=4000}"
 
 (2) 使用dbisql执行建库脚本cretedb.sql
     dbisql -c "uid=DBA;pwd=sql;eng=utility_srv;dbn=utility_db" -nogui createdb.sql
 
     
2.启动创建好的mp2数据库
 (1) 编辑一个mp2.cfg配置文件
     在/sybiqdb/mp2目录下编辑一个mp2.cfg文件,其内容如下:
# ------------------------------------------------------------
# Default startup parameters for the megaphone2 database
# ------------------------------------------------------------
-n  mp2
-x  tcpip{port=3638}
-cl 32m
-ch 64m
-gc 20
-gd dba
-gk dba
-gl all
-gm 10
-gp 4096
-ti 4400
-tl 300
-iqmc 128
-iqtc 128  
 
 (2) 启动mp2数据库 
     cd /sybiqdb/mp2
     start_iq @mp2.cfg mp2.db
 
  
3.创建数据库用户mpuser,并为其授权
  (1) 创建mpuser用户
    A. 执行dbisql -c "uid=DBA;pwd=sql;eng=mp2" -nogui
    B. 在dbisql工具中执行如下命令并按“回车键”
        sp_iqaddlogin mpuser,mpuserpwd
 
  (2) 为用户与创建数据库对象的权限
      在dbisql工具中执行如下命令并按“回车”键
        grant resource to mpuser
 
    
 
 
阅读(2877) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

andkylee2011-10-03 12:58:11

okjiaojie: 请问
(1) 启动IQ Utility Server
     start_iq -n utility_srv -x "tcpip{port=4000}"
与start_iq @iqdemo.cfg iqdemo.db有什么不同,关键是-n uti.....
删除数据库可以使用:
drop database '/sybiqdb/mp2/mp2.db'  
写上元数据所在的文件名。

lion_sybiq_1272011-02-22 21:10:00

你的提的问题很好。这样回答你的问题吧:
(1) 在使用 start_iq -n utility_srv -x "tcpip{port=4000}"
方式启动IQ时(注意:没有加xxx.db)实际上是启动了一个空数据库,这个空数据库用来解析发出的create database语句。
   -n指定的是IQ Server名,这个名称要与dbisql -c中指定的eng相同;在连接空数据库时-c中的dbn必需写成utility_db
(2) 创建好的数据删除可以把目录下的.db文件删除即可,对于数据库设备如果使用的是raw device那么就不用管它,如果是使用文件系统,那么可以使用os命令删除它。

okjiaojie2011-02-22 16:49:43

请问
(1) 启动IQ Utility Server
     start_iq -n utility_srv -x "tcpip{port=4000}"
与start_iq @iqdemo.cfg iqdemo.db有什么不同,关键是-n utility_srv

(2) 使用dbisql执行建库脚本cretedb.sql
     dbisql -c "uid=DBA;pwd=sql;eng=utility_srv;dbn=utility_db" -nogui createdb.sql

这样建好库之后,应该怎样删除这个库呢
我使用drop database 'xxx';提示找不到dbname哦

另:eng=utility_srv;dbn=utility_db"是何意