胡國(guó)勇(huguoyong@163.net)
在開(kāi)篇之前,先講題外話(huà),說(shuō)一說(shuō)我為什么選擇Linux+Sybase,興許大家會(huì)有些共鳴。 我不是計(jì)算機(jī)科班出身,也不是IT業(yè)中人,只是個(gè)電腦愛(ài)好者,玩游戲,裝程序,上網(wǎng)瞎逛,DOS,Win31,Win95,WinNT,樣樣都搗鼓一下。雖說(shuō)也學(xué)了一些雜七雜八的東西,但看著家里先后花了近兩萬(wàn)塊捧回來(lái)的老中青三臺(tái)電腦(從486、Pentium到賽揚(yáng))一天天地貶值,到如今連三千塊也不值,心里不由想到該學(xué)一些有用的“本領(lǐng)”了,也算是對(duì)得起自己的“巨額”投資。
學(xué)什么好呢?數(shù)據(jù)庫(kù)容易入門(mén),用途又廣,網(wǎng)絡(luò)社會(huì)又來(lái)了,就學(xué)數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)上的應(yīng)用吧。于是我就選擇了Visual Foxpro開(kāi)發(fā)前端客戶(hù)程序,后臺(tái)使用SQL數(shù)據(jù)庫(kù)管理系統(tǒng)這種流行的客戶(hù)機(jī)/服務(wù)器模式來(lái)學(xué)。SQL數(shù)據(jù)庫(kù)有很多,選哪個(gè)廠家,什么平臺(tái)呢?開(kāi)始我想學(xué)WinNT+MS SQL SERVER,挺流行的,參考書(shū)又多,可是哪兩個(gè)軟件價(jià)格驚人,雖然有D版,但版權(quán)管得越來(lái)越嚴(yán),咱還是用正版軟件吧——免費(fèi)操作系統(tǒng)就用Linux,SQL數(shù)據(jù)庫(kù)就選Sybase了。為什么呢?1、Sybase是世界著名的數(shù)據(jù)庫(kù)廠商,對(duì)Linux很支持,Sybase ASE for Linux就推出了多個(gè)版本,其網(wǎng)站產(chǎn)品下載、技術(shù)手冊(cè)、疑難解答挺齊全的,遇上問(wèn)題容易找到解決辦法。2、Sybase ASE與MS SQL SERVER是近親,MS SQL SERVER的早期版本就是Sybase公司為微軟公司開(kāi)發(fā)的。兩者體系相近,管理方式、命令、函數(shù)、工具差不多,你看一看兩家的技術(shù)文檔就知道了(我曾經(jīng)買(mǎi)了一套MS SQL SERVER 6.5的技術(shù)手冊(cè))。學(xué)會(huì)了Sybase ASE,轉(zhuǎn)頭去學(xué)MS SQL SERVER,應(yīng)該比較容易上手吧。
對(duì)于我來(lái)說(shuō),Sybase ASE和Linux都是剛?cè)腴T(mén),很多地方還是一知半解、迷迷糊糊,主要靠自己去摸索,去走出一條路來(lái)。文中講的是我的學(xué)習(xí)收獲,不是標(biāo)準(zhǔn)答案,其中錯(cuò)誤肯定不少,請(qǐng)大家指正。下面就講講我學(xué)Sybase ASE for Linux的過(guò)程,僅供參考。
一、我學(xué)Sybase ASE for Linux用到的資源
(一)軟件
1、Sybase Adaptive Server Enterprise 11.9.2(以下稱(chēng)ASE11.9.2)的RPM包,共7個(gè)文件:
(1)sybase-ase-11.9.2-3.i386.rpm
(2)sybase-chinese-11.9.2-3.i386.rpm
(3)sybase-common-11.9.2-3.i386.rpm
(4)sybase-doc-11_9_2-1_i386.rpm
(5)sybase-monserver-11.9.2-3.i386.rpm
(6)sybase-openclient-11.1.1-3.i386.rpm
(7)sybase-sqlremote-6.0.2-1.i386.rpm
我是從Sybase公司的網(wǎng)站上面下載的,需要注冊(cè)一下才能下載。網(wǎng)址是:
http://www.
2、ASE11.9.2的補(bǔ)丁,共兩個(gè)文件:
(1)EBF9820.tgz——補(bǔ)丁程序
(2)EBF9820.ltr——文檔
我是從Sybase中國(guó)公司的網(wǎng)站上面下載的,網(wǎng)址是:
http://www..cn
3、Windows平臺(tái)的ASE管理工具
(1)asentlnx.exe。這是從Sybase公司的網(wǎng)站下載的。安裝后有如下工具:
①Sybase Central——管理ASE數(shù)據(jù)庫(kù)的圖形界面工具
②SQL Modeler——強(qiáng)大的客戶(hù)/服務(wù)器應(yīng)用程序設(shè)計(jì)工具(可惜我不會(huì)用?。?
③Dsedit——設(shè)置客戶(hù)端接口文件(sql.ini)的圖形界面工具
④OC OS Config Utility——設(shè)置客戶(hù)端機(jī)器的環(huán)境變量、網(wǎng)絡(luò)驅(qū)動(dòng)程序等的工具
⑤Sybase System11 ODBC驅(qū)動(dòng)程序
(2)sybase11.exe。這是我從http://www.網(wǎng)站下載的。安裝后有如下工具:
①Sybase SQL Server Manager——管理ASE數(shù)據(jù)庫(kù)的圖形界面工具
②Sybase Monitor Client——監(jiān)控SQL Server的圖形界面工具
③SQLEDIT——設(shè)置客戶(hù)端接口文件(sql.ini)的圖形界面工具
④SYBPING——測(cè)試客戶(hù)端與SQL Server的連通情況的圖形界面工具
⑤WISQL32——執(zhí)行SQL查詢(xún)的圖形界面工具
Sybase SQL Server Manager和WISQL32在我的系統(tǒng)中執(zhí)行有些小問(wèn)題,不知何故。
4、圖形界面的SQL查詢(xún)工具
(1)WinSQL Lite 3.8。這是Windows平臺(tái)上的軟件,推薦使用,是免費(fèi)版,可在http://www./winsql下載,需要在網(wǎng)站上注冊(cè),取得一個(gè)注冊(cè)碼。WinSQL還有一個(gè)功能更強(qiáng)大的專(zhuān)業(yè)版,但購(gòu)買(mǎi)一個(gè)單用戶(hù)許可證要149美金。
(2)WISQL32。上面已講過(guò)。
(3)sybquery-0.2.0.tar.gz。這是X-Windows上的軟件??稍?a href="http://www./">http://www.網(wǎng)站下載。
(4)jisql。這是Sybase公司開(kāi)發(fā)的基于Java的圖形界面的SQL查詢(xún)工具,可在Windows平臺(tái)和Linux平臺(tái)運(yùn)行。可惜我一直沒(méi)能用起來(lái)。
5、Ribo工具。這是Sybase公司開(kāi)發(fā)的基于Java的圖形界面工具,用來(lái)捕獲和顯示使用TDS表格式數(shù)據(jù)流協(xié)議的客戶(hù)端和服務(wù)器之間傳遞的數(shù)據(jù),可在Windows平臺(tái)和Linux平臺(tái)運(yùn)行。我不懂怎么用。
6、Windows平臺(tái)的終端工具。我選用NetTerm4.2登錄Linux,命令可復(fù)制、粘貼,可回卷屏幕翻查,方便多了??稍谌A軍軟件網(wǎng)站(http://www.)下載。
(二)技術(shù)文檔
1、英文文檔:在/opt/sybase-11.9.2/doc/PDF下面有三十個(gè)文檔(其中兩個(gè)重復(fù)):
(1)aserb.pdf——Linux、Intel平臺(tái)的Sybase Adaptive Server Enterprise 11.9.2版本公告
(2)ocsrb.pdf——Linux、Intel平臺(tái)的Open Client及Server產(chǎn)品(11.1.1版)版本公告
(3)asem1192.pdf——Sybase Adaptive Server Enterprise Monitor 11.9.2版本公告
(4)asefun92.pdf——Sybase Adaptive Server Enterprise 11.9.2新功能
(5)whatsup.pdf——Sybase ASE的新特點(diǎn)
(6)uxinstall.pdf——Linux、Intel平臺(tái)的Sybase ASE安裝指南
(7)aseuxcfg.pdf——配置Unix平臺(tái)的Adaptive Server Enterprise
(8)u_config.pdf——Unix平臺(tái)的Open Client與Server配置指南
(9)sag.pdf——Sybase ASE系統(tǒng)管理指南
(10)perform.pdf——Sybase ASE性能優(yōu)化指南
(11)mngmonas.pdf——Sybase ASE的管理與監(jiān)控
(12)utprogux.pdf——Sybase ASE的Unix工具組
(13)sqlref_1.pdf——Sybase ASE參考手冊(cè)(卷1:命令與函數(shù))
(14)sqlref_2.pdf——Sybase ASE參考手冊(cè)(卷2:存儲(chǔ)過(guò)程)
(15)sqlref_3.pdf——Sybase ASE參考手冊(cè)(卷3:數(shù)據(jù)類(lèi)型與系統(tǒng)表)
(16)svrtsg1.pdf——Sybase ASE故障解除及錯(cuò)誤信息手冊(cè)(卷1)
(17)svrtsg2.pdf——Sybase ASE故障解除及錯(cuò)誤信息手冊(cè)(卷2)
(18)svrtsg3.pdf——Sybase ASE故障解除及錯(cuò)誤信息手冊(cè)(卷3)
(19)navigate.pdf——Sybase ASE任務(wù)導(dǎo)航與命令速查
(20)mg_gde.pdf——遷移到Sybase ASE11.5
(21)sqlug.pdf——Sybase ASE Transact-SQL用戶(hù)指南
(22)monbook.pdf——Sybase ASE Monitor Server用戶(hù)指南
(23)histserv.pdf——ASE Monitor Historical Server用戶(hù)指南
(24)clilib.pdf——Sybase Adaptive Server Monitor的Client Library程序員指南
(25)glossary.pdf——Sybase Adaptive Server Enterprise詞匯表
(26)omnintro.pdf——OmniConnect簡(jiǎn)介
(27)omni_ug.pdf——OmniConnect Component Intergration Services用戶(hù)指南
(28)connim.pdf、imug.pdf——InfoMaker用戶(hù)指南
(29)sqlremote.pdf——使用SQL Remote進(jìn)行數(shù)據(jù)復(fù)制
2、中文文檔:在Sybase中國(guó)公司網(wǎng)站下載,共6個(gè)文檔,雖然是關(guān)于ASE12的,仍有很大參考價(jià)值:
(1)Sybase ASE12中文參考手冊(cè)(卷1:構(gòu)件塊)
(2)Sybase ASE12中文參考手冊(cè)(卷2:命令)
(3)Sybase ASE12中文參考手冊(cè)(卷3:過(guò)程)
(4)Sybase ASE12中文參考手冊(cè)(卷4:表格及手冊(cè)索引)
(5)使用Adaptive Server分布式事務(wù)管理功能
(6)Adaptive Server Enterprise中的Java
(三)網(wǎng)站、論壇、新聞組。當(dāng)你遇到問(wèn)題時(shí),它們就是你的救星。
1、網(wǎng)站:首選Sybase公司的網(wǎng)站,資料非常豐富,可就是英文的,真頭疼,慢慢看吧。Sybase中國(guó)公司的網(wǎng)站上也有一些技術(shù)支持。其次是http://www.網(wǎng)站,Linux上的數(shù)據(jù)庫(kù)軟件真不少,技術(shù)資料也多,每天要去。還有http://www.(Sybase應(yīng)用軟件)、http://perso./dbadevil/(Sybase軟件、技術(shù)資料)、http://www./~mpeppler(一位Sybase專(zhuān)家的主頁(yè),有很多關(guān)于Sybase的鏈接,ASE on Linux FAQ)等等。
2、論壇:當(dāng)然是中國(guó)Linux論壇了(http://www.)?!癓inux平臺(tái)數(shù)據(jù)庫(kù)”版一天去好幾趟。
3、新聞組:有關(guān)Linux上的ASE的新聞組服務(wù)器:forums.,外國(guó)高手很多。
(四)書(shū)籍
1、《Sybase數(shù)據(jù)庫(kù)速成培訓(xùn)》,鮑永剛、龍冬云編,電子工業(yè)出版社出版。該書(shū)簡(jiǎn)明介紹了Sybase數(shù)據(jù)庫(kù)的組成、數(shù)據(jù)庫(kù)系統(tǒng)管理和T-SQL語(yǔ)言,并用大量例子說(shuō)明建立和管理數(shù)據(jù)庫(kù)的操作過(guò)程。此書(shū)堪稱(chēng)價(jià)廉物美,把它吃透,Sybase就算基本入門(mén)了。
2、《SYBASE SQL Server 11參考大全》,R.蘭金斯等著,希望圖書(shū)創(chuàng)作室譯,宇航出版社出版。此書(shū)翻譯得一般,我一般將它當(dāng)作“百科全書(shū)”來(lái)翻查。
3、《14天自學(xué)教程——SQL》,Bryan Morgan、Jeff Perkins著,鄧洪濤、陳越譯,清華大學(xué)出版社出版,是關(guān)系數(shù)據(jù)庫(kù)理論和SQL語(yǔ)言的入門(mén)書(shū)。
二、我安裝ASE11.9.2的過(guò)程
(一)軟硬件要求
Linux上的ASE11.9.2需要Linux核心版本為2.2.5、glibc-2.07-29或以上,使用TCP/IP協(xié)議,內(nèi)存推薦128M以上,磁盤(pán)空間需要200M以上。
我最“牛”的機(jī)子配置是賽揚(yáng)300A、192M、10G,就用它來(lái)裝了ASE11.9.2。先把Redhat7.2裝好,主機(jī)名是DBSERVER,IP地址是192.168.0.1,在硬盤(pán)上劃出1G的分區(qū)作為ASE11.9.2的數(shù)據(jù)庫(kù)存儲(chǔ)空間,格式化成ext3文件系統(tǒng),掛在根目錄下的/db。
本來(lái),ASE11.9.2手冊(cè)中說(shuō)在正式應(yīng)用中數(shù)據(jù)庫(kù)設(shè)備必須使用裸設(shè)備(Raw Device),并推薦使用硬盤(pán)分區(qū)建立數(shù)據(jù)庫(kù)設(shè)備,強(qiáng)調(diào)不能使用操作系統(tǒng)文件,否則系統(tǒng)出現(xiàn)故障后難以恢復(fù)(因?yàn)椴僮飨到y(tǒng)高速緩存不會(huì)馬上把數(shù)據(jù)寫(xiě)入磁盤(pán),一旦系統(tǒng)崩潰,內(nèi)存中的數(shù)據(jù)丟失,就破壞了數(shù)據(jù)庫(kù)的參照完整性)。但據(jù)ASE11.9.2的版本公告講,Linux上的ASE11.9.2不支持裸設(shè)備,為保證系統(tǒng)能正常恢復(fù),Linux上的ASE11.9.2使用O_SYNC標(biāo)志打開(kāi)數(shù)據(jù)庫(kù)設(shè)備,以保證數(shù)據(jù)盡快寫(xiě)入磁盤(pán),但是這樣會(huì)影響系統(tǒng)的性能。
(二)使用RPM工具把ASE產(chǎn)品解包復(fù)制到硬盤(pán)中
1、在Linux控制臺(tái)模式下以root用戶(hù)登錄。
2、裝載光盤(pán)(我把所有軟件刻成一張光盤(pán)):
#mount -t iso9660 /dev/cdrom /mnt/cdrom
3、首先解包sybase-common-11.9.2-3.i386.rpm。
#rpm -hiv /mnt/cdrom/sybase-common-11.9.2-3.i386.rpm
4、解包復(fù)制其他產(chǎn)品。
#rpm -hiv /mnt/cdrom/sybase-ase-11.9.2-3.i386.rpm
#rpm -hiv /mnt/cdrom/sybase-chinese-11.9.2-3.i386.rpm
#rpm -hiv /mnt/cdrom/sybase-openclient-11.1.1-3.i386.rpm
#rpm -hiv /mnt/cdrom/sybase-doc-11_9_2-1_i386.rpm
#rpm -hiv /mnt/cdrom/sybase-monserver-11.9.2-3.i386.rpm
#rpm -hiv /mnt/cdrom/sybase-sqlremote-6.0.2-1.i386.rpm
5、卸載光盤(pán)。
#umount /dev/cdrom
6、RPM工具在解包時(shí)創(chuàng)建了sybase用戶(hù)和sybase組。此時(shí)sybase用戶(hù)的賬號(hào)是鎖住的,必須將其解鎖并更改密碼。然后將/db的讀寫(xiě)權(quán)限只授予sybase用戶(hù)。
7、修改系統(tǒng)內(nèi)存配置。在root用戶(hù)登錄文件中加入以下語(yǔ)句(以bash用戶(hù),.bash_profile為例。更改系統(tǒng)內(nèi)存值為60M):echo "62914560" > /proc/sys/kernel/shmmax
8、重新啟動(dòng)系統(tǒng)。
9、在Linux控制臺(tái)模式下以sybase用戶(hù)登錄,會(huì)自動(dòng)執(zhí)行一文件設(shè)置環(huán)境變量等。在/db下建一目錄/sybsystem。
10、如果你使用網(wǎng)絡(luò),請(qǐng)配置好網(wǎng)卡。即使你不使用網(wǎng)絡(luò),也要在loopback狀態(tài)下檢查網(wǎng)絡(luò)配置是否正確,方法如下:在主機(jī)上用telnet localhost命令登錄,不必退出,用同樣的命令再登錄一次,然后用兩次exit命令退出系統(tǒng)。如果執(zhí)行正常,網(wǎng)絡(luò)配置就OK了。
(三)在X-Windows中使用srvbuild工具配置ASE產(chǎn)品
1、用sybase用戶(hù)登錄X-Windows,執(zhí)行sybase安裝目錄(/opt/sybase-11.9.2)下/bin/srvbuild命令。
2、在srvbuild窗口中,選擇要安裝Server類(lèi)型。我把四種Server都選上。
3、給Server命名。我將Adaptive Server命名為T(mén)EST,相應(yīng)地,Backup Server自動(dòng)命名為T(mén)EST_back,Monitor Server命名為T(mén)EST_mon,XP Server命名為T(mén)EST_XP。點(diǎn)擊OK按鈕,進(jìn)入各Server的配置過(guò)程。
4、配置Adaptive Server。填寫(xiě)或選擇以下內(nèi)容:
Master device path(主設(shè)備路徑):/db/sybsystem/master.dat
Master device size(MB)(主設(shè)備大小):60
Master database size(MB)(主數(shù)據(jù)庫(kù)大小):40
Sybsystemprocs device path(系統(tǒng)存儲(chǔ)過(guò)程設(shè)備路徑):/db/sybsystem/systemprocs.dat
Sybsystemprocs device size(MB)(系統(tǒng)存儲(chǔ)過(guò)程設(shè)備大?。?0
Sybsystemprocs database size(MB)(系統(tǒng)存儲(chǔ)過(guò)程數(shù)據(jù)庫(kù)大小):60
Error log path(錯(cuò)誤日志路徑):/opt/sybase-11.9.2/install/TEST.log
Transport type(傳輸協(xié)議類(lèi)型):tcp
Host name(主機(jī)名):192.168.0.1
Port number(監(jiān)聽(tīng)端口號(hào)):4100
點(diǎn)擊OK按鈕,進(jìn)入下一配置過(guò)程。
5、配置Backup Server。填寫(xiě)或選擇以下內(nèi)容:
Error log path:/opt/sybase-11.9.2/install/TEST_back.log
Tape configuration file:/opt/sybase-11.9.2/backup_tape.cfg
Language:(不填)
Character set:(不填)
Maximum number of network connections:25
Maximum number of server connections:20
Transport type:tcp
Host name:192.168.0.1
Port number:4200
點(diǎn)擊OK按鈕,進(jìn)入下一配置過(guò)程。
6、配置Monitor Server。填寫(xiě)或選擇以下內(nèi)容:
Maximum number of connections:5
Error log path:/opt/sybase-11.9.2/install/TEST_mon.log
Configuration file path:/opt/sybase-11.9.2/install/TEST_mon.cfg
Share memory directory:/opt/sybase-11.9.2
Transport type:tcp
Host name:192.168.0.1
Port number:4300
點(diǎn)擊OK按鈕,進(jìn)入下一配置過(guò)程。
7、配置XP Server。填寫(xiě)或選擇以下內(nèi)容:
Transport type:tcp
Host name:192.168.0.1
Port number:4400
點(diǎn)擊Build Server按鈕,開(kāi)始創(chuàng)建Server,這時(shí)出現(xiàn)一個(gè)窗口,你可以看到整個(gè)創(chuàng)建過(guò)程。如果有顯示以下類(lèi)似信息,表示創(chuàng)建Server成功:
……
Server TEST was successfully created.
Done.
……
8、創(chuàng)建Server成功后,系統(tǒng)就會(huì)問(wèn)你是否將Server本地化(Localize),即是用另外一種語(yǔ)言代替默認(rèn)的us_english language,以及改變默認(rèn)的iso_1字符集和Binary索引順序。我的選擇是NO。為什么呢?我曾經(jīng)把中文(eucgb)設(shè)為默認(rèn)字符集,反而不支持中文大字集,因?yàn)閑ucgb是基于GB2312標(biāo)準(zhǔn)的。我查了Sybase的手冊(cè)中一些關(guān)于本地化的說(shuō)明,得出的印象是,在ASE中有Unicode轉(zhuǎn)換機(jī)制,可以轉(zhuǎn)換來(lái)自不同字符集的服務(wù)器或客戶(hù)端的數(shù)據(jù)。我的應(yīng)用也證明,使用ASE的默認(rèn)的語(yǔ)言、字符集、索引順序來(lái)處理中文是可行的。
9、安裝成功后要做的幾件事。首先在Linux控制臺(tái)模式下以sybase用戶(hù)登錄。
①確認(rèn)Server是否在運(yùn)行。使用$SYBASE/install/下的showserver命令($SYBASE表示sybase的安裝目錄),應(yīng)該可看見(jiàn)系統(tǒng)有幾個(gè)sybase相關(guān)進(jìn)程?;蛘哂?SYBASE/bin/下的isql -Usa -P -STEST命令來(lái)登錄Server,應(yīng)該可以看見(jiàn)isql的提示符“1>”,再鍵入exit就可以退出了。
②設(shè)置sa帳戶(hù)的口令。裝好Server后,系統(tǒng)自動(dòng)建立sa用戶(hù),即系統(tǒng)管理員,對(duì)整個(gè)系統(tǒng)擁有最大的權(quán)力,但這時(shí)sa的口令是空的,必須馬上更改。
$SYBASE/bin/isql -Usa -P -STEST
1>sp_password null,新口令
2>go
③關(guān)閉主設(shè)備缺省狀態(tài)。否則用戶(hù)的數(shù)據(jù)庫(kù)會(huì)安裝在主設(shè)備上。
$SYBASE/bin/isql -Usa -STEST
Password:(輸入新口令)
1>sp_diskdefault master,defaultoff
2>go
(四)安裝語(yǔ)法數(shù)據(jù)庫(kù)和示例數(shù)據(jù)庫(kù)
先建立一個(gè)放置語(yǔ)法數(shù)據(jù)庫(kù)和示例數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)設(shè)備,大小為10M,并設(shè)置為缺省狀態(tài)。
$SYBASE/bin/isql -Usa -STEST
Password:(輸入口令)
1>disk init name = "sybsyntaxdev",
2>physname = "/db/sybsystem/sybsyntaxdev.dat",
3>vdevno = 2,size = 5120
4>go
1>sp_diskdefault sybsyntaxdev,defaulton
2>go
1、安裝sybsyntax語(yǔ)法數(shù)據(jù)庫(kù)。這是通過(guò)$SYBASE/scripts/ins_syn_sql這個(gè)腳本文件來(lái)安裝的。但ins_syn_sql需要修改一下,去掉開(kāi)頭用來(lái)指定缺省數(shù)據(jù)庫(kù)設(shè)備的一段語(yǔ)句,加入“create database sybsyntax”一句(具體請(qǐng)參考《Linux、Intel平臺(tái)的Sybase ASE安裝指南》7-14頁(yè)、7-15頁(yè))。然后執(zhí)行以下命令:
$SYBASE/bin/isql -Usa -P口令 -STEST < $SYBASE/scripts/ins_syn_sql
語(yǔ)法數(shù)據(jù)庫(kù)安裝好后,可用系統(tǒng)存儲(chǔ)過(guò)程sp_syntax查詢(xún)Transact-SQL語(yǔ)言、系統(tǒng)存儲(chǔ)過(guò)程、Sybase工具的使用幫助。例如要查詢(xún)select命令的用法:
$SYBASE/bin/isql -Usa -STEST
Password:(輸入口令)
1>sp_syntax "select"
2>go
2、安裝pubs2、pubs3示例數(shù)據(jù)庫(kù)。技術(shù)文檔中的例子就是來(lái)自示例數(shù)據(jù)庫(kù)。執(zhí)行以下命令:
$SYBASE/bin/isql -Usa -P口令 -STEST < $SYBASE/scripts/installpubs2
$SYBASE/bin/isql -Usa -P口令 -STEST < $SYBASE/scripts/installpubs3
(五)安裝ASE補(bǔ)丁
據(jù)Sybase公司講,EBF9820.tgz修正了ASE11.9.2已知的一些問(wèn)題,建議盡快安裝。
1、先關(guān)閉Server。
$SYBASE/bin/isql -Usa -STEST
Password:(輸入口令)
1>shutdown SYB_BACKUP &&關(guān)閉Backup Server
2>go
1>shutdown &&關(guān)閉Adaptive Server
2>go
$SYBASE/bin/isql -Usa -P口令 -STEST_mon
1>sms_shutdown &&關(guān)閉Monitor Server
2>go
2、在Linux控制臺(tái)模式下以root用戶(hù)登錄。
#mkdir /tmp/SWR &&建立放置補(bǔ)丁的臨時(shí)目錄
#mount -t iso9660 /dev/cdrom /mnt/cdrom &&裝載光盤(pán)
#cp /mnt/cdrom/EBF9820.tgz /tmp/SWR &&將補(bǔ)丁復(fù)制到臨時(shí)目錄
#cd /tmp/SWR
#gunzip -S .tgz EBF9820.tgz
#tar xvf EBF9820.tar
#rpm -hiv /tmp/SWR/ebf9820/RPMS/sybase-SWR-9820-1.i386.rpm
重新設(shè)置sybase用戶(hù)對(duì)$SYBASE的讀寫(xiě)權(quán)限。
退出root用戶(hù)登錄。
3、以sybase用戶(hù)登錄,啟動(dòng)Adaptive Server。
$SYBASE/install/startserver -f RUN_TEST
呵呵,費(fèi)了好大的勁啊,總算裝好了。怎么用呢?
三、我使用ASE11.9.2
Sybase數(shù)據(jù)庫(kù)管理系統(tǒng)體系龐大,功能完整,我剛?cè)腴T(mén),很多新概念沒(méi)有消化、很多東西不知道是做什么用,只能講講自己已經(jīng)用上的。我日常的使用是這樣,Linux主機(jī)在打開(kāi)電源后就不管了,事情都是在Windows平臺(tái)上做的,或是用NetTerm登錄Linux,做一些管理任務(wù)和使用isql工具連接ASE進(jìn)行數(shù)據(jù)庫(kù)操作,或是用WinSQL工具進(jìn)行數(shù)據(jù)庫(kù)操作,或是用Sybase Central管理數(shù)據(jù)庫(kù)。
(一)Server的啟動(dòng)與關(guān)閉
先說(shuō)說(shuō)四種Server的作用。Adaptive Server Enterprise是基于客戶(hù)機(jī)/服務(wù)器體系結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),其余三種Server是輔助它的。Backup Server負(fù)責(zé)數(shù)據(jù)庫(kù)的備份(轉(zhuǎn)儲(chǔ))和恢復(fù)(加載)。Monitor Server負(fù)責(zé)提供ASE的運(yùn)行情況和性能統(tǒng)計(jì)數(shù)據(jù)。XP Server負(fù)責(zé)管理和執(zhí)行擴(kuò)展存儲(chǔ)過(guò)程(ESPs)。
1、Server的啟動(dòng)
有兩種方式:一是在Linux控制臺(tái)模式發(fā)出命令啟動(dòng)Adaptive Server、Backup Server、Monitor Server,二是Linux啟動(dòng)時(shí)自動(dòng)啟動(dòng)以上三種Server。XP Server是由Adaptive Server在調(diào)用擴(kuò)展存儲(chǔ)過(guò)程時(shí)啟動(dòng)的。
我一般是這樣啟動(dòng)的,以sybase用戶(hù)登錄(對(duì)主設(shè)備所在的/db有讀寫(xiě)權(quán)限),發(fā)出如下命令:
$SYBASE/install/startserver -f RUN_TEST &&啟動(dòng)Adaptive Server
$SYBASE/install/startserver -f RUN_TEST_back &&啟動(dòng)Backup Server
以上兩個(gè)命令也可合起來(lái):$SYBASE/install/startserver -f RUN_TEST -f RUN_TEST_back,這樣就同時(shí)啟動(dòng)了Adaptive Server和Backup Server。
啟動(dòng)Monitor Server,使用命令:monserver -STEST -MTEST_mon -Usa -P口令
Server啟動(dòng)后,要定時(shí)查看日志(在$SYBASE/install目錄下的TEST*.log文件),以便發(fā)現(xiàn)問(wèn)題及時(shí)解決。
2、Server的關(guān)閉
以sybase用戶(hù)登錄,執(zhí)行以下命令:
$SYBASE/bin/isql -Usa -STEST
Password:(輸入口令)
1>shutdown SYB_BACKUP &&關(guān)閉Backup Server
2>go
1>shutdown &&關(guān)閉Adaptive Server
2>go
關(guān)閉Backup Server后,至少等30秒后才可以重新啟動(dòng)它。
在缺省狀態(tài)下,Monitor Server會(huì)監(jiān)測(cè)到Adaptive Server停止運(yùn)行,然后自動(dòng)關(guān)閉。你也可以手動(dòng)關(guān)閉Monitor Server,執(zhí)行以下命令:
$SYBASE/bin/isql -Usa -STEST_mon
Password:(輸入口令)
1>sms_shutdown
2>go
(二)isql的使用
$SYBASE的bin子目錄中有一些實(shí)用工具,其中最有用的是isql,利用它可連接Server進(jìn)行數(shù)據(jù)庫(kù)操作。其語(yǔ)法如下:
isql -U登錄名 -P口令 -S服務(wù)器名字
進(jìn)入系統(tǒng)后,系統(tǒng)顯示序號(hào)和大于號(hào)提示:
1>
這時(shí)用戶(hù)可以輸入命令,每個(gè)命令既可在一行內(nèi)輸入,也可在多行內(nèi)輸入,每行結(jié)束時(shí)按回車(chē)鍵。一個(gè)命令輸入完畢時(shí),在新的一行輸入go并按回車(chē)鍵,這時(shí)命令開(kāi)始執(zhí)行并在屏幕顯示執(zhí)行結(jié)果。上面已經(jīng)有很多使用isql的例子了。isql是在Linux控制臺(tái)模式下的命令行工具,使用起來(lái)畢竟不太方便(如果用NetTerm登錄Linux,再使用isql,就比較好一點(diǎn))。我常用的是Windows平臺(tái)上的WinSQL軟件。
(三)Sybase的有關(guān)概念
1、數(shù)據(jù)庫(kù)設(shè)備(Device):Sybase的數(shù)據(jù)庫(kù)和事務(wù)日志都是建立在數(shù)據(jù)庫(kù)設(shè)備上的,它可以是物理磁盤(pán)、磁盤(pán)分區(qū)或操作系統(tǒng)文件。使用disk init命令建立數(shù)據(jù)庫(kù)設(shè)備,使用diskdefault命令指定缺省數(shù)據(jù)庫(kù)設(shè)備,并且可以指定多個(gè)缺省數(shù)據(jù)庫(kù)設(shè)備。建立數(shù)據(jù)庫(kù)時(shí)不指定數(shù)據(jù)庫(kù)設(shè)備,則在缺省數(shù)據(jù)庫(kù)設(shè)備上建立。例如執(zhí)行命令:
$SYBASE/bin/isql -Usa -STEST
Password:(輸入口令)
1>disk init name = "userdev", &&設(shè)備名字為userdev
2>physname = "/db/sybsystem/userdev.dat", &&設(shè)備文件名為userdev.dat
3>vdevno = 3, &&設(shè)備號(hào)為3
4>size = 51200 &&大小為100M(51200塊,1塊=2k)
5>go
1>sp_diskdefault userdev,defaulton &&指定為缺省數(shù)據(jù)庫(kù)設(shè)備
2>go
2、數(shù)據(jù)庫(kù)(Database):是表及其相關(guān)數(shù)據(jù)和操作規(guī)則及完整性約束條件的集合,包括以下數(shù)據(jù)庫(kù)對(duì)象:表(Tables)、參照完整性約束、核對(duì)完整性約束、規(guī)則、缺省值、存儲(chǔ)過(guò)程、觸發(fā)器、視圖。因此,數(shù)據(jù)庫(kù)是一個(gè)容器,只有先建數(shù)據(jù)庫(kù),才能建表。一個(gè)數(shù)據(jù)庫(kù)可以放在多個(gè)數(shù)據(jù)庫(kù)設(shè)備上,一個(gè)數(shù)據(jù)庫(kù)設(shè)備可以放置多個(gè)數(shù)據(jù)庫(kù)。具體內(nèi)容請(qǐng)看看講關(guān)系數(shù)據(jù)庫(kù)的書(shū)。
3、事務(wù)日志:對(duì)數(shù)據(jù)庫(kù)的每次修改,都可被自動(dòng)記錄在一個(gè)系統(tǒng)表中,這個(gè)系統(tǒng)表就叫事務(wù)日志。任何修改總是先記錄日志,然后才做實(shí)際的修改。事務(wù)日志保證了在出現(xiàn)故障時(shí)可以將數(shù)據(jù)庫(kù)恢復(fù)到出錯(cuò)前的狀態(tài)。數(shù)據(jù)庫(kù)的事務(wù)日志最好不要跟數(shù)據(jù)庫(kù)放在同一設(shè)備上。
4、用戶(hù):Sybase的用戶(hù)分為兩種,一種是SQL服務(wù)器用戶(hù)(登錄賬號(hào)),另一種是數(shù)據(jù)庫(kù)用戶(hù)。SQL服務(wù)器用戶(hù)sa是系統(tǒng)管理員,對(duì)整個(gè)系統(tǒng)有操作權(quán)。其他SQL服務(wù)器用戶(hù)都是由系統(tǒng)管理員創(chuàng)建,只有SQL服務(wù)器用戶(hù)才可登錄進(jìn)入系統(tǒng)。數(shù)據(jù)庫(kù)用戶(hù)首先必須是SQL服務(wù)器用戶(hù),當(dāng)一個(gè)SQL服務(wù)器用戶(hù)創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù)或被增加為某一數(shù)據(jù)庫(kù)的用戶(hù)時(shí),他才成為相應(yīng)數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)用戶(hù)。
(四)Sybase的Windows平臺(tái)客戶(hù)端軟件的使用
以asentlnx.exe為例。
1、安裝
在Windows平臺(tái)上,執(zhí)行asentlnx.exe,解壓縮出一大堆文件到臨時(shí)目錄。執(zhí)行臨時(shí)目錄中的setup.exe,一直“Next”下去就行了。裝好后在“開(kāi)始”菜單建有“Sybase”程序組,里面有Sybase Central、Dsedit等工具。我的客戶(hù)端軟件是裝在C:\Sybase目錄下的。
2、配置客戶(hù)端的接口文件
客戶(hù)端軟件要與數(shù)據(jù)庫(kù)服務(wù)器(Server)通訊,首先得知道局域網(wǎng)中服務(wù)器的地址。這就需要我們?yōu)榭蛻?hù)端軟件提供一本“通訊錄”——接口文件,即是C:\Sybase\ini\sql.ini文件。這個(gè)接口文件記錄了與服務(wù)器通訊所使用的協(xié)議、地址、端口、服務(wù)類(lèi)型等信息。而編寫(xiě)這本“通訊錄”的工具就是Dsedit。
通過(guò)Dsedit,可以在sql.ini中為多個(gè)Server建立entry(接口)。例如,我們要為名叫TEST的Server建立entry,可以這樣操作:
(1)啟動(dòng)Dsedit,出現(xiàn)一個(gè)窗口,點(diǎn)擊“OK”按鈕就可以了。
(2)在“Server Object”菜單欄中選擇“Add”,出現(xiàn)“Input Server Name”對(duì)話(huà)框,輸入“TEST”,點(diǎn)擊“OK”按鈕。
(3)在“DSEDIT1-InterfaceDriver”窗口中,在左邊的“Server”框中選擇“TEST”行,在右邊的框中選“Server Address”行,右擊,選擇快捷菜單中的“Modify Attribute...”項(xiàng),出現(xiàn)“Network Address Attribute”窗口,點(diǎn)擊“Add”按鈕,出現(xiàn)“Input Network Address For Protocol”對(duì)話(huà)框,點(diǎn)擊“Add”按鈕,“Protocol”項(xiàng)選“TCP”,“Network Address”項(xiàng)填入“192.168.0.1,4100”,點(diǎn)擊“OK”按鈕,退回“DSEDIT1-InterfaceDriver”窗口中,
(4)在右邊的框中選“Server Address”行,右擊,選擇快捷菜單中的“Ping Server”項(xiàng),出現(xiàn)“Ping”窗口,點(diǎn)擊“Ping”命令按鈕,如果出現(xiàn)“Open Connection to server at (192.168.0.1,4100) succeeds…”的提示,表示配置成功了。
3、使用Sybase Central
Sybase Central是用于管理數(shù)據(jù)庫(kù)及相關(guān)產(chǎn)品的Windows平臺(tái)工具,可用它管理服務(wù)器、數(shù)據(jù)庫(kù)中的對(duì)象(表、視圖、存儲(chǔ)過(guò)程等等),還能完成通常的創(chuàng)建數(shù)據(jù)庫(kù)、表、用戶(hù)等管理任務(wù)。Sybase Central通過(guò)提供類(lèi)似Windows 95資源管理器的易于使用的圖形用戶(hù)界面,簡(jiǎn)化了這些任務(wù),例如,刪除數(shù)據(jù)庫(kù)表,只要在主窗口中選中它并單擊“刪除”。通過(guò)提供向?qū)В琒ybase Central 幫助您完成更復(fù)雜的任務(wù),向?qū)б徊揭徊降刂笇?dǎo)你完成任務(wù)。有了它,你可以基本擺脫使用isql工具發(fā)出SQL命令來(lái)管理數(shù)據(jù)庫(kù),要知道用Create table之類(lèi)的命令是很累人的,不過(guò)建議你還是要研究這些命令哦,這可是基礎(chǔ)啊,因?yàn)榕靼琢诉@些命令的參數(shù),才能用好Sybase Central!
第一次啟動(dòng)Sybase Central,可能會(huì)遇到點(diǎn)麻煩,系統(tǒng)會(huì)提示“Unable to load language DLL "scsslgzh"”。這主要是缺少提供中文支持的DLL文件,你可以將“C:\Sybase\asep\”目錄中的scsslgen.dll文件改名為scsslgzh.dll,Sybase Central就可以正常啟動(dòng)了。
四、我的ASE+VFP客戶(hù)機(jī)/服務(wù)器應(yīng)用
經(jīng)過(guò)摸索,ASE+VFP客戶(hù)機(jī)/服務(wù)器這種模式已在我的單位初步應(yīng)用起來(lái)了?,F(xiàn)在ASE上有一個(gè)應(yīng)用數(shù)據(jù)庫(kù),VFP開(kāi)發(fā)的前端程序可同時(shí)在多臺(tái)機(jī)器上運(yùn)行。我正準(zhǔn)備把單位這些年VFP下的數(shù)據(jù)往ASE上遷移,再修改一下原來(lái)的應(yīng)用程序,使之能適應(yīng)網(wǎng)絡(luò)上的多用戶(hù)環(huán)境。
(一)Sybase System11 ODBC驅(qū)動(dòng)程序與數(shù)據(jù)源
在Windows平臺(tái)上,Sybase公司的軟件有自己的專(zhuān)用文件與ASE進(jìn)行連接和交互操作,而其他公司的軟件怎樣與ASE連接和交互操作呢?一條途徑是通過(guò)Sybase公司提供的ODBC(公開(kāi)數(shù)據(jù)庫(kù)接口)驅(qū)動(dòng)程序。通過(guò)這個(gè)ODBC驅(qū)動(dòng)程序,我們可建立數(shù)據(jù)源(Data Source),供應(yīng)用程序使用,使之能夠處理ASE上的數(shù)據(jù)。
下面講怎么建立一個(gè)數(shù)據(jù)源。在Sybase程序組中啟動(dòng)ODBC Data Source Administrator(或在控制面板啟動(dòng)ODBC Data Source項(xiàng)),點(diǎn)擊“Drivers”選項(xiàng)卡,應(yīng)該有Sybase System 11一行,這是我們安裝asentlnx.exe時(shí)裝上的。選擇“User DSN”選項(xiàng)卡,點(diǎn)擊“Add”按鈕,出現(xiàn)“Create New Data Source”窗口,選擇“Sybase System 11”一行,點(diǎn)擊“完成”按鈕,跟著出現(xiàn)“ODBC Sybase Driver Setup”窗口。在“General”選項(xiàng)卡中,在“Data Source Name”欄填入數(shù)據(jù)源的名字,例如DBSERVER,在“Server Name”欄填入你要連接到Adaptive Server的名字,例如TEST,在“Database Name”欄填入默認(rèn)要連接的數(shù)據(jù)庫(kù)名字,然后點(diǎn)擊“確定”按鈕就好了。
(二)遠(yuǎn)程視圖與SPT
數(shù)據(jù)源建好后,VFP應(yīng)用程序就可以用它來(lái)訪(fǎng)問(wèn)和更新服務(wù)器上的數(shù)據(jù)了。在VFP中,可以使用遠(yuǎn)程視圖和SPT兩種方法訪(fǎng)問(wèn)遠(yuǎn)程數(shù)據(jù)。使用遠(yuǎn)程視圖是最簡(jiǎn)單、方便的方法,你可以象使用VFP本地表一樣使用遠(yuǎn)程視圖。SPT(SQL pass-through)是直接把SQL語(yǔ)句發(fā)送給服務(wù)器執(zhí)行,能夠在很大程度上提高客戶(hù)機(jī)/服務(wù)器應(yīng)用程序的性能。我目前對(duì)ASE還不熟,開(kāi)發(fā)程序時(shí)只是使用遠(yuǎn)程視圖。我單位原來(lái)VFP下的數(shù)據(jù)就是使用遠(yuǎn)程視圖,通過(guò)自編的一個(gè)小程序升遷到服務(wù)器上的(本來(lái)Sybase提供了一個(gè)批拷貝工具bcp,用于表與操作系統(tǒng)文件之間的數(shù)據(jù)導(dǎo)出導(dǎo)入的,但我用起來(lái)總有問(wèn)題)。