Sybase除了大型商用关系数据库ASE以外,还有非常有名的嵌入式数据库,称为Adaptive Server Anywhere,到了版本10,就改称为Sql Anywhere。自从Sybase收购mobile365以后,它也越来越受到更多的关注了。
当你安装完ASA以后,你会发现这个软件包居然有很大,ASA9大约有170M左右,ASA10的windows版本可以达到240M左右。
实际上,我们经常能用到的东西仅需要其中几个目录就可以,将这些目录提取出来,压缩以后,就4M左右。本文介绍的内容仅供学习者自己探索,如果商用,请尊重版权。
1. 必要的环境变量
ASA9涉及到的环境变量主要有两个,
set ASANY9=d:\SybaseASA9
set ASANYSH9=d:\SybaseASA9\Shared
ASA10涉及到的环境变量主要也是两个,
set SQLANY10=D:\SybaseASA10
set SQLANYSH10=D:\SybaseASA10
注意变量名称的变化。所谓share目录主要用于存放jconnect, sybcentral等jdbc驱动、sybcentral GUI客户端工具等
2. 量体裁衣
原始的目录结构可能是如下的样子:
ce
charsets
docs
drivers
h
java
MobiLink
Palm
readme.txt
Samples
scripts
Shared
snmp
support
temp
ultralite
win32
在做了这样的工作以后,现下需要写一个批处理脚本用于启动ASA数据库。
a. asa-setenv.bat (用于设置环境变量)
@echo off
set ASANY9=D:\SybaseASA9
if not "%ASANY9%" == "" set PATH=%ASANY9%\win32;%PATH%
b. asa-init.bat (这个显然用于建立ASA的数据库)
@echo off
call "%~dp0asa-setenv.bat"
echo Initializing Database...
echo %ASANY9%\win32\dbinit.exe %*
"%ASANY9%\win32\dbinit.exe" %*
c. asa-startsvr.bat (以Server模式启动ASA数据库)
@echo off
call "%~dp0asa-setenv.bat"
echo Starting Database...
echo %ASANY9%\win32\dbsrv9.exe %*
"%ASANY9%\win32\dbsrv9.exe" %*
d. asa-starteng.bat(以Personal DB的模式启动ASA数据库)
@echo off
call "%~dp0asa-setenv.bat"
echo Starting Database...
echo %ASANY9%\win32\dbeng9.exe %*
"%ASANY9%\win32\dbeng9.exe" %*
e. asa-stop.bat (停止数据库)
@echo off
call "%~dp0asa-setenv.bat"
echo Stopping Database...
echo %ASANY9%\win32\dbstop.exe %*
"%ASANY9%\win32\dbstop.exe" %*
我们来看一个示例:
1.创建一个新的ASA数据库文件:
D:\shared\ASA902>asa-init eherodemo.db
Initializing Database...
D:\shared\ASA902\win32\dbinit.exe eherodemo.db
Adaptive Server Anywhere Initialization Utility Version 9.0.2.3302
Creating system tables
Collation sequence: 936ZHO
Creating system views
Setting permissions on system tables and views
Setting option values
Initializing UltraLite deployment option
Database "eherodemo.db" created successfully
2. 以Server模式启动eherodemo.db
D:\shared\ASA902>asa-start eherodemo.db
Starting Database...
D:\shared\ASA902\win32\dbsrv9.exe eherodemo.db
ransaction log: eherodemo.log
Starting checkpoint of "eherodemo" (eherodemo.db) at Fri Jul 20 2007 14:20
Finished checkpoint of "eherodemo" (eherodemo.db) at Fri Jul 20 2007 14:20
Database "eherodemo" (eherodemo.db) started at Fri Jul 20 2007 14:20
Database server started at Fri Jul 20 2007 14:20
Trying to start SharedMemory link ...
SharedMemory link started successfully
Trying to start NamedPipes link ...
NamedPipes link started successfully
Trying to start TCPIP link ...
Starting on port 2638
TCPIP link started successfully