ehxz 发表于 2007-7-20 17:11:26

[转帖]Sybase ASA9/10的简易使用

<div class="t_msgfont" id="message7083459">Sybase除了大型商用关系数据库ASE以外,还有非常有名的嵌入式数据库,称为Adaptive Server Anywhere,到了版本10,就改称为Sql Anywhere。自从Sybase收购mobile365以后,它也越来越受到更多的关注了。<br/>当你安装完ASA以后,你会发现这个软件包居然有很大,ASA9大约有170M左右,ASA10的windows版本可以达到240M左右。<br/><br/>实际上,我们经常能用到的东西仅需要其中几个目录就可以,将这些目录提取出来,压缩以后,就4M左右。本文介绍的内容仅供学习者自己探索,如果商用,请尊重版权。<br/>1. 必要的环境变量<br/>ASA9涉及到的环境变量主要有两个,<br/>set ASANY9=d:\SybaseASA9 <br/>set ASANYSH9=d:\SybaseASA9\Shared <br/>ASA10涉及到的环境变量主要也是两个, <br/>set SQLANY10=D:\SybaseASA10<br/>set SQLANYSH10=D:\SybaseASA10<br/>注意变量名称的变化。所谓share目录主要用于存放jconnect, sybcentral等jdbc驱动、sybcentral GUI客户端工具等<br/><br/>2. 量体裁衣<br/>原始的目录结构可能是如下的样子:<br/>ce<br/>charsets<br/>docs<br/>drivers<br/>h<br/>java<br/>MobiLink<br/>Palm<br/>readme.txt<br/>Samples<br/>scripts<br/>Shared<br/>snmp<br/>support<br/>temp<br/>ultralite<br/>win32<br/><br/>这里有很多都是不需要的。经过处理,我可以只留下win32和scripts子目录就可以让ASA工作。而shared目录下边的jdbc驱动完全是独立的,你完全可以把它抽到别的地方。<br/><br/>在做了这样的工作以后,现下需要写一个批处理脚本用于启动ASA数据库。<br/>a. asa-setenv.bat (用于设置环境变量)<br/>@echo off<br/>set ASANY9=D:\SybaseASA9 <br/>if not "%ASANY9%" == "" set PATH=%ASANY9%\win32;%PATH%<br/><br/>b. asa-init.bat (这个显然用于建立ASA的数据库)<br/>@echo off<br/>call "%~dp0asa-setenv.bat"<br/>echo Initializing Database...<br/>echo %ASANY9%\win32\dbinit.exe %*<br/>"%ASANY9%\win32\dbinit.exe" %*<br/><br/>c. asa-startsvr.bat (以Server模式启动ASA数据库)<br/>@echo off<br/>call "%~dp0asa-setenv.bat"<br/>echo Starting Database...<br/>echo %ASANY9%\win32\dbsrv9.exe %*<br/>"%ASANY9%\win32\dbsrv9.exe" %*<br/><br/>d. asa-starteng.bat(以Personal DB的模式启动ASA数据库)<br/>@echo off<br/>call "%~dp0asa-setenv.bat"<br/>echo Starting Database...<br/>echo %ASANY9%\win32\dbeng9.exe %*<br/>"%ASANY9%\win32\dbeng9.exe" %*<br/><br/>e. asa-stop.bat (停止数据库)<br/>@echo off<br/>call "%~dp0asa-setenv.bat"<br/>echo Stopping Database...<br/>echo %ASANY9%\win32\dbstop.exe %*<br/>"%ASANY9%\win32\dbstop.exe" %*<br/><br/>我们来看一个示例:<br/>1.创建一个新的ASA数据库文件:<br/>D:\shared\ASA902&gt;asa-init eherodemo.db<br/>Initializing Database...<br/>D:\shared\ASA902\win32\dbinit.exe eherodemo.db<br/>Adaptive Server Anywhere Initialization Utility Version 9.0.2.3302<br/>Creating system tables<br/>Collation sequence:&nbsp;&nbsp;936ZHO<br/>Creating system views<br/>Setting permissions on system tables and views<br/>Setting option values<br/>Initializing UltraLite deployment option<br/>Database "eherodemo.db" created successfully<br/><br/>2. 以Server模式启动eherodemo.db<br/>D:\shared\ASA902&gt;asa-start eherodemo.db<br/>Starting Database...<br/>D:\shared\ASA902\win32\dbsrv9.exe eherodemo.db<br/>ransaction log: eherodemo.log<br/>Starting checkpoint of "eherodemo" (eherodemo.db) at Fri Jul 20 2007 14:20<br/>Finished checkpoint of "eherodemo" (eherodemo.db) at Fri Jul 20 2007 14:20<br/>Database "eherodemo" (eherodemo.db) started at Fri Jul 20 2007 14:20<br/>Database server started at Fri Jul 20 2007 14:20<br/>Trying to start SharedMemory link ...<br/><br/>&nbsp; &nbsp; SharedMemory link started successfully<br/><br/>Trying to start NamedPipes link ...<br/><br/>&nbsp; &nbsp; NamedPipes link started successfully<br/><br/>Trying to start TCPIP link ...<br/><br/>Starting on port 2638<br/>&nbsp; &nbsp; TCPIP link started successfully<br/><br/>Trying to start SPX link ...<br/><br/>SPX communication link not started<br/><br/>Now accepting requests<br/><br/>3. 多带几个参数来启动<br/>asa-start.bat -x tcpip(ServerPort=2638) -n testdemodb eherodemo.db<br/>表示启来的数据库的servername是testdemodb,但数据库文件名是eherodemo.db,不带-n选项,则数据库名就是eherodemo<br/><br/>PersonalDB和Server DB的区别在于,前者只用于单机客户端访问,而后者可以为多个远程客户端提供并发访问。<br/><br/>针对ASA10, 它为ASA9提供了升级工具:<br/>这里有一个脚本用于简单的将asa9数据库升级到asa10数据库,脚本内容(asa-unload.bat):<br/>@echo off<br/>setlocal<br/>call "%~dp0asa-setenv.bat"<br/>echo Unloading Database...<br/>echo %SQLANY10%\win32\dbunload.exe %*<br/>"%SQLANY10%\win32\dbunload.exe" %*<br/>endlocal<br/><br/>下边是一个升级的运行结果:<br/>d:\shared\ASA100&gt;asa-unload.bat -c "dbf=d:\shared\asa902\eherotest.db;uid=dba;pw<br/>d=sql" -n eherotest10.db<br/>Unloading Database...<br/>d:\shared\ASA100\..\ASA100\win32\dbunload.exe -c "dbf=d:\shared\asa902\eherotest<br/>.db;uid=dba;pwd=sql" -n eherotest10.db<br/>SQL Anywhere Unload Utility Version 10.0.0.2745<br/>Connecting and initializing<br/>Unloading user and group definitions<br/>Unloading table definitions<br/>Unloading index definitions<br/>Unloading functions<br/>Unloading view definitions<br/>Unloading procedures<br/>Unloading triggers<br/>Unloading SQL Remote definitions<br/>Unloading MobiLink definitions<br/><br/>使用起来非常方便。<br/><br/>最后,我们可以借用Openclient或者ASA安装时带有的一个jdbc连接工具来连接数据库,这叫jutils。大概有1.2M左右。附件放不下。<br/>感觉兴趣的可以到邮箱iiihero&nbsp;&nbsp;AT&nbsp;&nbsp;hotmail.com中索取。<br/>我将其打包放到附件里边。也非常好用。不仅可以连接ASA,也可以用来连接ASE。<br/><br/>我在我的blog里也为ASA写了两篇更简单的短文,作了相关介绍,有兴趣可以看看:<br/><a href="http://hi.baidu.com/hexiong/blog%20...%205b2f177e3e6f57.html" target="_blank">http://hi.baidu.com/hexiong/blog ... 5b2f177e3e6f57.html</a></div><div class="t_msgfont"></div><div class="t_msgfont"><a href="http://bbs.chinaunix.net/viewthread.php?tid=964928&amp;pid=7084656&amp;page=1&amp;extra=page%3D1#pid7084656">http://bbs.chinaunix.net/viewthread.php?tid=964928&amp;pid=7084656&amp;page=1&amp;extra=page%3D1#pid7084656</a></div><div class="t_msgfont"></div><div class="msgheader">QUOTE:</div><div class="msgborder">这是我在CU(ChinaUnix)上写的一篇小帖子,一并写到这里,与大家共享。<br/><span class="post-footers">作者:<a href="http://hi.baidu.com/hexiong" target="_blank"><font color="#800080">hexiong</font></a> <br/><font color="#0082ff">版权声明</font>:可以任意转载,转载时请务必以超链接形式标明文章<font color="#0082ff">原始出处</font>和作者信息及<font color="#0082ff">本声明</font>。<br/><a href="http://bbs.chinaunix.net/viewthread.php?tid=964928&amp;extra=page%3D1">http://bbs.chinaunix.net/viewthread.php?tid=964928&amp;extra=page%3D1</a><br/><a href="http://hi.baidu.com/hexiong/blog/item/37faa40f52828defab6457b4.html">http://hi.baidu.com/hexiong/blog/item/37faa40f52828defab6457b4.html</a></span></div><br/><div class="t_msgfont"></div>
[此贴子已经被作者于2007-7-23 13:25:18编辑过]

winlong 发表于 2007-9-14 13:33:41

<p>不错,非常有用。</p><p>Starting checkpoint of "eherodemo" (eherodemo.db) at Fri Jul 20 2007 14:20<br/>Finished checkpoint of "eherodemo" (eherodemo.db) at Fri Jul 20 2007 14:20<br/>Database "eherodemo" (eherodemo.db) started at Fri Jul 20 2007 14:20<br/>Database server started at Fri Jul 20 2007 14:20<br/>Trying to start SharedMemory link ...<br/>SharedMemory link started successfully<br/>Trying to start NamedPipes link ...<br/>NamedPipes link started successfully<br/>Trying to start TCPIP link ...<br/>Starting on port 2638<br/>TCPIP link started successfully<br/>Trying to start SPX link ...<br/>SPX communication link not started<br/>Now accepting requests</p><p>不过,这里如果是以服务方式启动的,怎么没有显示出,并发的最大用户数?也没有显示Cache,是没有设置吗?<br/></p>
页: [1]
查看完整版本: [转帖]Sybase ASA9/10的简易使用

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com