网上一直有朋友劝我写一篇关于IQ的入门的相关内容。IQ相对于ASE以及ASA而言,资料相对少一些。
1. 安装
有一篇实作的帖子:http://www.itpub.net/thread-1345562-1-1.html 写得还是蛮不错的。
我本机是64位Win7,安装的是iq1510_product_winx86 for x64,可能是因为我的机器已经安装了: vcruntime_2005, 2008的缘故,所以,一路安装起来,并没有报错。
那篇帖子的作者用的是1520, 按道理,系统会自动为他安装这些runtime的,安装包里头就有相应的分发包。
请看目录:
iq1510_product_winx86_32ms-redist-2008
iq1510_product_winx86_32ms-redist-2005
安装包其实也不大,总共才300来兆。我装的是试用版,最长能用30天。
2. 关于Demo数据库
IQ的文档,如果不仔细阅读,确实让人费解。 其实,IQ的很多用法与ASA相似,两者的文档不妨串读。
那样也许就容易一些。
安装完以后,我们会看从菜单里Sybase -> IQ 15.1 --> Start IQ demo数据库,为大家启动Demo数据库。
本文主要就是介绍这个demo数据库如何创建并启动的。
我们只要右键编辑这个快捷方式,就可以看到它的内容:
echo.
if exist iqdemo.db if exist iqdemo.cfg if exist iqdemo.iq if exist iqdemo.iqtmp (
start_iq "@iqdemo.cfg" "iqdemo.db"
goto :EOF
)
set /p response="Demo database needs to be created. Create now Y/N: "
if not {%response%}=={Y} (
if not {%response%}=={y} ( goto :EOF ))
echo.
echo Current Directory is: %CD%
echo.
"%ComSpec%" /C "%ALLUSERSPROFILE%SybaseIQdemomkiqdemo.bat" -y
if exist iqdemo.db if exist iqdemo.cfg if exist iqdemo.iq if exist iqdemo.iqtmp (
start_iq "@iqdemo.cfg" "iqdemo.db"
)
基本逻辑就是,如果已经创建了iqdemo.db,就试图启动它。如果没有,则调用programdataSybaseIQdemomkiqdemo.bat来创建这个数据库。看来最核心的操作都在批处理文件:mkiqdemo.bat里头了。
我们再把mkiqdemo.bat打开,看看里边都有什么?
( echo # %DEMO_NAME%.cfg echo # ------------------------------------------------------------ echo # Default startup parameters for the ASIQ demo database echo # ------------------------------------------------------------ echo. echo -n %OS_NAME%_%DEMO_NAME% echo -x tcpip{port=2638} echo. echo # The following parameters are also found in the configuration file echo # %IQDIR15%scriptsdefault.cfg. Any parameters not specified below echo # and not in the start up parameter list, will be added by start_iq echo # using default.cfg as a guide. echo. echo -c 48m echo -gc 20 echo -gd all echo -gl all echo -gm 10 echo -gp 4096 echo. echo -iqmc 32 echo -iqtc 24 echo. ) > %DEMO_NAME%.cfg
创建数据库启动的文件。
有下边这么一行来运行mkiqdemo.sql
echo.
echo.Starting Server ...
start_iq "@%SVR_NAME%.cfg"
if not %errorlevel%==0 (
echo ERROR: Starting of server failed
goto :end_batch_cleanup
)
echo.
echo.Connecting to server via %CONN_TYPE% ...
echo.Using: %CONN_UTIL%
dbisqlc %INP_VERBOSE% -c %CONN_UTIL% %SVR_NAME%.sql
if not %errorlevel%==0 (
echo Creation of database failed
goto :end_batch_cleanup
)
echo.
echo.Creation completed.
echo.
这里边就已经包含了启动数据库服务并在SQL脚本里创建数据库的动作了。看看sql脚本里头:
// CONNECT_UTIL_STRING
;
CREATE DATABASE 'iqdemo.db'
BLANK PADDING ON
DBA PASSWORD 'sql'
CASE IGNORE
IQ PATH 'iqdemo.iq' // RELATIVE SYS_SPACE
IQ SIZE 25 // For 15.0 release demo has 25/75 partition
IQ RESERVE 200
IQ PAGE SIZE 131072; // Block Size for 12.5 and up is 128k
// JAVA ON
// JCONNECT ON
// CONNECT_ASIQ_STRING
;
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// Create a dbspace for users objects
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CREATE DBSPACE iq_main
USING FILE iq_main
'iqdemo_main.iq' // RELATIVE USER_SPACE
SIZE 75
RESERVE 200 ;
这几条SQL语句就是创建数据库及表空间的动作了。
其实,我们将C:ProgramDataSybaseIQdemo目录完整备份出来,每次都可以进到demo目录下边,运行run_mkiqdemo.bat,来创建并运行iqdemo数据库了。
我们再来看看demo数据库的启动参数含义:
IQ full cmd line: -n sea