扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:张策【原创】 2007年5月24日
关键字: Anywhere SQL Sybase 赛贝斯 SQL Server
对专为开箱即得的高性能、容易管理、开放性强、互操作性高、有跨平台支持且快速响应客户而设计的SQL Anywhere Studio来讲,其中包含了关系型数据库、数据移动技术、管理工具和开发设计工具共四大部分组件。其中关系型数据库分为Adaptive Server Anywhere,简称ASA,和ASA的部署选项UltraLite。
ASA是一个完全的关系型数据库,支持标准SQL,支持在不同网络环境和操作系统平台上工作,且有“个人服务器”与“网络服务器”两个版本。ASA的诸多卓越性能使其长期称霸于分布式数据环境、移动计算环境和嵌入式计算环境的市场。有些功能堪称惊世之作:
* 数据库服务器内存动态调节,而不像其他数据库有内存限制,或需要手工调节内存设置,且有可能大量占用空闲内存
* 跨平台数据库文件可用。Unix下的ASA数据库文件只要拷贝到Windows下就可用了,有的数据库近年才实现跨平台的备份/恢复功能
* 索引顾问
* 使用散读,提高极端情况下全表扫描的效率
* 支持Windows 95/98等其他数据库不支持的操作系统
不过,要想尝试这些特性,必须先要启动数据库服务器。ASA分为“个人服务器”与“网络服务器”两个版本,所以启动ASA时,你可以根据情况来选择。
* 启动“个人服务器”,使用dbeng9命令。(注意,我们采用的是SQL Anywhere 9或是9.X版本)
* 启动“网络服务器”,使用dbsrv9命令。
个人服务器:
除 Windows CE 以外的 Windows 操作系统上,个人服务器可执行文件的名称是 dbeng9.exe。Windows CE 不支持个人服务器。在 UNIX 操作系统上,它的名称是 dbeng9。
网络服务器:
在 Windows 操作系统(包括 Windows CE)上,网络服务器可执行文件的名称是 dbsrv9.exe。在 Novell NetWare 上,其名称为 dbsrv9.nlm;在 UNIX 操作系统上则为 dbsrv9。
请求处理引擎在这两种服务器上是等同的。每种服务器都支持完全相同的SQL,并且具有完全相同的数据库功能。二者的主要区别包括:
* 网络支持 只有网络服务器才支持通过网络进行通信。
* 连接数 个人服务器将同时连接的数量限制在 10 个以下。网络服务器的限制取决于购买的许可证。
* CPU 数 网络数据库服务器在技术上可使用计算机上可用的所有CPU(跟授权许可证相关)。而个人数据库服务器和运行时数据库服务器都限于单个处理器。
* 内部线程的缺省数量 您可以使用-gn选项来配置服务器可同时处理的请求的数量。除了Windows CE的缺省线程数为3之外,个人数据库服务器和网络数据库服务器的缺省线程数均为20。
* 启动缺省值 为了反映出它们是用作个人服务器还是用作供多名用户使用的网络服务器,彼此的启动缺省值稍有不同。
既然通过dbeng9和dbsrv9的启动过程是一样的,我们就可通过一个命令来了解其中的详细内容。
1、最简单的启动方法:
假如我们要启动ASA的例程数据库asademo,在缺省安装的情况下,该数据库位于“C:\Program Files\Sybase\SQL Anywhere 9”目录下。启动命令行,即在“开始”-“运行”中键入cmd,切换到该目录下,键入:
dbeng9 -n asademo9 asademo.db
即可启动了。启动后,在任务栏上会有一图标显现。
几个比较重要的参数:
参数跟在dbeng9或dbsrv9命令后,以指挥数据库服务器的行为,称为数据库服务器选项,通常也成为数据库引擎选项。以下是几个常用的:
* -c 设置初始高速缓存大小
* -gm 设置最大连接数
* -gp 设置服务器页面大小(本项在一个服务器中启动多个数据库时比较有用)
* -n 设置服务器名称
* -o 将消息输出到指定文件
一些参数跟在数据库文件后的,以指挥数据库行为,称为数据库选项:
* -m 检查点后截断事务日志
* -r 以只读模式打开数据库
* -n 命名数据库
以下是一些例子:
1、如何理解数据库引擎和数据库:
比如我有两个数据库文件,能通过下面的命令运行在同一数据库引擎下:
dbeng9 asademo1.db asademo2.db
当然,也可以分别将asademo1.db和asademo2.db分别运行在不同的数据库引擎下。只要书写两条dbeng9命令即可。如果asademo1.db和asademo2.db的页面大小不同,数据库引擎必须启动大页面的模式(-gp)来满足数据库的要求,因为ASA引擎不能装载页面大小大于服务器页面大小的数据库文件。如果不使用此选项,则使用命令行中第一个数据库的页面大小。在除UNIX外的所有其它平台上,如果不使用此选项,并在不装载数据库的情况下启动引擎,则缺省值为 1024;UNIX平台2048。所以,你可以写成dbeng9 -gp 4096 asademo1.db asademo2.db。
2、数据库引擎的名称与数据库的名称:
如果刚才你通过我写的dbeng9 asademo1.db asademo2.db来启动数据库引擎,并运行了两个数据库,你会发现,也许你很难正确分别连接到这两个数据库。当然,经验不足也是一定的原因。不过,真正的系统不应该这样启动,应该这样:
dbeng9 -n myserver asademo.db -n prod
如果这样,数据库引擎的名称就为myserver,数据库的名字为prod。如果不指定任何-n的命名选项,假如dbeng9 asademo.db,则数据库引擎的名字缺省为第一个启动的数据库名:asademo,数据库名字缺省为数据库文件名asademo。若我们写成dbeng9 asademo1.db -n db1 asademo2.db -n db2,那么数据库引擎的名字并未使用-n指定,缺省为db1,asademo1的名字为db1,asademo2的名字为db2。这样的话,在Sybase Central中就能很方便连接上你想要连接的那个数据库了。
3、其他启动办法:
也可以这样启动数据库:
* 先启动数据库引擎:例如,dbeng9 -n test
* 再打开dbisql,在cmd下键入dbisql。
* 在dbisql下,无需连接到任何数据库,键入:
start database C:\Program Files\Sybase\SQL Anywhere 9\asademo.db
as db1
on test
这样,就相当于在test数据库引擎下将asademo.db启动成名为db1的数据库。所以,这时你可通过填写正确的连接信息(数据库名、服务器名、用户名、密码)连接上这个刚刚启动的数据库。
(责任编辑:张思童)
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者