經驗總結:Sybase ASA9/ASA10的使用方法

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

這裏有很多都是不需要的。經過處理,我可以只留下win32和scripts子目錄就可以讓ASA工作。而shared目錄下邊的jdbc驅動完全是獨立的,你完全可以把它抽到別的地方。

在做了這樣的工作以後,現下需要寫一個批處理腳本用于啓動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

Trying to start SPX link ...

SPX communication link not started

Now accepting requests

3. 多帶幾個參數來啓動

asa-start.bat -x tcpip(ServerPort=2638) -n testdemodb eherodemo.db

表示啓來的數據庫的servername是testdemodb,但數據庫文件名是eherodemo.db,不帶-n選項,則數據庫名就是eherodemo

PersonalDB和Server DB的區別在于,前者只用于單機客戶端訪問,而後者可以爲多個遠程客戶端提供並發訪問。

針對ASA10, 它爲ASA9提供了升級工具:

這裏有一個腳本用于簡單的將asa9數據庫升級到asa10數據庫,腳本內容(asa-unload.bat):

@echo off

setlocal

call "%~dp0asa-setenv.bat"

echo Unloading Database...

echo %SQLANY10%\win32\dbunload.exe %*

"%SQLANY10%\win32\dbunload.exe" %*

endlocal

下邊是一個升級的運行結果:

d:\shared\ASA100>asa-unload.bat -c "dbf=d:\shared\asa902\eherotest.db;uid=dba;pw

d=sql" -n eherotest10.db

Unloading Database...

d:\shared\ASA100\..\ASA100\win32\dbunload.exe -c "dbf=d:\shared\asa902\eherotest

.db;uid=dba;pwd=sql" -n eherotest10.db

SQL Anywhere Unload Utility Version 10.0.0.2745

Connecting and initializing

Unloading user and group definitions

Unloading table definitions

Unloading index definitions

Unloading functions

Unloading view definitions

Unloading procedures

Unloading triggers

Unloading SQL Remote definitions

Unloading MobiLink definitions

使用起來非常方便。

最後,我們可以借用Openclient或者ASA安裝時帶有的一個jdbc連接工具來連接數據庫,這叫jutils。大概有1.2M左右。附件放不下。

感覺興趣的可以到郵箱iiihero AT hotmail.com中索取。

我將其打包放到附件裏邊。也非常好用。不僅可以連接ASA,也可以用來連接ASE。

個人經驗總結:如何限制sa登錄Sybase ASE
需求:必須限制 sa 登錄sybase ASE 解決思路如下: 利用sybase ASE的特性提供的存儲過程 sp_modifylogin,對登錄的合法性進行驗證。 -- 先新創建一個權限足夠高的用戶,將來當服務器有問題時,好用來恢複sa -- 接下來...查看完整版>>個人經驗總結:如何限制sa登錄Sybase ASE
 
個人經驗總結:Sybase數據庫的全量備份方案
Sybase數據庫産品自從1987年問世以來,它的客戶機/服務器(client/server)工作模式、分布處理的基礎體系結構、完善的安全保密性能、高速快捷的運行方式、多平台跨操作系統的廣泛應用等優點,迅速被IT界接受並推廣應用...查看完整版>>個人經驗總結:Sybase數據庫的全量備份方案
 
個人經驗總結:Sybase數據庫性能優化
這篇論壇文章(賽迪網技術社區)用一個實例講解了Sybase數據庫性能優化的具體過程,具體內容請參考下文: 共享鎖 sp_getapplock 鎖定應用程序資源 sp_releaseapplock 爲應用程序資源解鎖 SET LOCK_TIMEOUT 1800 鎖超...查看完整版>>個人經驗總結:Sybase數據庫性能優化
 
經驗總結:DB2數據庫功能及性能使用方法
◆1.安裝DB2後可以通過命令窗口這樣的命令行方式或控制中心這樣的圖形界面方式來操作,而如果你的數據庫服務端不在本機,則還需要在“客戶機配置輔助程序”中做一個客戶端連接的配置。 ◆2.控制中心中無法增刪改數據...查看完整版>>經驗總結:DB2數據庫功能及性能使用方法
 
SAP與Sybase聯手發布Afaria 支持App Store批量購買計劃
  采用無縫、安全的無線部署和移動設備應用門戶技術,確保App Store批量購買計劃適用于企業  SAP AG (NYSE: SAP) 及全球領先的企業級和移動 軟件 公司Sybase,SAP旗下的公司近日宣布,將首次憑借Sybase 業界領先...查看完整版>>SAP與Sybase聯手發布Afaria 支持App Store批量購買計劃
 
Sybase助力ISV將數據庫應用向雲擴展
  界唯一的雲數據管理解決方案——SQL Anywhere OnDemand Edition旨在滿足ISV及其客戶獨特的數據需求  全球領先的企業級和移動 軟件 公司Sybase,SAP(NYSE:SAP)旗下的公司近日宣布推出SQL Anywhere OnDemand ...查看完整版>>Sybase助力ISV將數據庫應用向雲擴展
 
Sybase連續十年被評爲企業移動設備管理軟件領袖
  全球領先的企業級和移動軟件公司Sybase,SAP(NYSE:SAP)旗下的公司近日宣布,在領先的IT市場研究咨詢公司IDC于近期發布的《2011至2015年全球企業移動設備管理預測和2010年供應商份額》報告中,Sybase被授予企業...查看完整版>>Sybase連續十年被評爲企業移動設備管理軟件領袖
 
全共享Sybase IQ15.3幫助企業步入雲時代
全共享Sybase IQ15.3幫助企業步入雲時代
  連續幾十年來,爲了制定具有戰略性、戰術性、操作性且行之有效的經營決策,各大商業企業和政府機構力求通過商業智能手段,將有關企業、客戶、市場、業務流程的原始數據轉換爲極具價值的信息。然而,隨時數據類型...查看完整版>>全共享Sybase IQ15.3幫助企業步入雲時代
 
Sybase Power Designer助推關貿網絡軟件工程質量效率雙飛揚
  爲了積極開拓網絡資源,加強通關自動化服務,1996年,由台灣財政部和民間股東共同出資設立了關貿網絡股份有限公司(以下簡稱“關貿網絡”)。曆經15年的發展,這家網絡公司已成長爲一家全方位的加值網絡服務企業...查看完整版>>Sybase Power Designer助推關貿網絡軟件工程質量效率雙飛揚
 
 
回到王朝網路移動版首頁