2008年7月19日星期六

linux上sybasease11.9.2的安装、配置与使用之新手上路篇

一、安装ase11.9.2的过程

(一)软硬件要求
  linux上的ase11.9.2需要linux核心版本为2.2.5、glibc-2.07-29或以上,使用tcp/ip协议,内存推荐128m以上,磁盘空间需要200m以上。

  配置是赛扬300a、192m、10g,就用它来装了ase11.9.2。先把redhat7.2装好,主机名是dbserver,ip地址是192.168.0.1,在硬盘上划出1g的分区作为ase11.9.2的数据库存储空间,格式化成ex3文件系统,挂在根目录下的/db。
本来,ase11.9.2手册中说在正式应用中数据库设备必须使用裸设备(raw device),并推荐使用硬盘分区建立数据库设备,强调不能使用操作系统文件,否则系统出现故障后难以恢复(因为操作系统高速缓存不会马上把数据写入磁盘,一旦系统崩溃,内存中的数据丢失,就破坏了数据库的参照完整性)。但据ase11.9.2的版本公告讲,linux上的ase11.9.2不支持裸设备,为保证系统能正常恢复,linux上的ase11.9.2使用o_sync标志打开数据库设备,以保证数据尽快写入磁盘,但是这样会影响系统的性能。

(二)使用rpm工具把ase产品解包复制到硬盘中

1、在linux控制台模式下以root用户登录。

2、装载光盘(把所有软件刻成一张光盘):
  #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、解包复制其他产品。

  #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、卸载光盘。
  #umount /dev/cdrom

6、rpm工具在解包时创建了sybase用户和sybase组。此时sybase用户的帐号是锁住的,必须将其解锁并更改密码。然后将/db的读写权限只授予sybase用户。

7、修改系统内存配置。在root用户登录文件中加入以下语句(以bash用户,.bash_profile为例。更改系统内存值为60m):echo "62914560" > /proc/sys/kernel/shmmax

8、重新启动系统。

9、在linux控制台模式下以sybase用户登录,会自动执行一文件设置环境变量等。在/db下建一目录/sybsystem。

10、如果你使用网络,请配置好网卡。即使你不使用网络,也要在loopback状态下检查网络配置是否正确,方法如下:在主机上用telnet localhost命令登录,不必退出,用同样的命令再登录一次,然后用两次exit命令退出系统。如果执行正常,网络配置就ok了。

(三)在x-windows中使用srvbuild工具配置ase产品

1、用sybase用户登录x-windows,执行sybase安装目录(/opt/sybase-11.9.2)下/bin/srvbuild命令。

2、在srvbuild窗口中,选择要安装server类型。把四种server都选上。

3、给server命名。将adaptive server命名为test,相应地,backup server自动命名为test_back,monitor server命名为test_mon,xp server命名为test_xp。点击ok按钮,进入各server的配置过程。

4、配置adaptive server。填写或选择以下内容:

master device path(主设备路径):/db/sybsystem/master.dat
master device size(mb)(主设备大小):60
master database size(mb)(主数据库大小):20
sybsystemprocs device path(系统存储过程设备路径):/db/sybsystem/systemprocs.dat
sybsystemprocs device size(mb)(系统存储过程设备大小):60
sybsystemprocs database size(mb)(系统存储过程数据库大小):60
error log path(错误日志路径):/opt/sybase-11.9.2/install/test.log
transport type(传输协议类型):tcp
host name(主机名):192.168.0.1
port number(监听端口号):4100
点击ok按钮,进入下一配置过程。

5、配置backup server。填写或选择以下内容:

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
点击ok按钮,进入下一配置过程。

6、配置monitor server。填写或选择以下内容:

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
点击ok按钮,进入下一配置过程。

7、配置xp server。填写或选择以下内容:

transport type:tcp
host name:192.168.0.1
port number:4400
点击build server按钮,开始创建server,这时出现一个窗口,你可以看到整个创建过程。如果有显示以下类似信息,表示创建server成功:
……
server test was successfully created.
done.
……

8、创建server成功后,系统就会问你是否将server本地化(localize),即是用另外一种语言代替默认的us_english language,以及改变默认的iso_1字符集和binary索引顺序。选择是no。为什么呢?曾经把中文(eucgb)设为默认字符集,反而不支持中文大字集,因为eucgb是基于gb2312标准的。查了sybase的手册中一些关于本地化的说明,得出的印象是,在ase中有unicode转换机制,可以转换来自不同字符集的服务器或客户端的数据。应用也证明,使用ase的默认的语言、字符集、索引顺序来处理中文是可行的。


9、安装成功后要做的几件事。首先在linux控制台模式下以sybase用户登录。

①确认server是否在运行。使用$sybase/install/下的showserver命令($sybase表示sybase的安装目录),应该可看见系统有几个sybase相关进程。或者用$sybase/bin/下的isql -usa -p -stest命令来登录server,应该可以看见isql的提示符“1>”,再键入exit就可以退出了。
②设置sa帐户的口令。装好server后,系统自动建立sa用户,即系统管理员,对整个系统拥有最大的权力,但这时sa的口令是空的,必须马上更改。
$sybase/bin/isql -usa -p -stest
1>sp_password null,新口令
2>go
③关闭主设备缺省状态。否则用户的数据库会安装在主设备上。
$sybase/bin/isql -usa -stest
password:(输入新口令)
1>sp_diskdefault master,defaultoff
2>go

(四)安装语法数据库和示例数据库

先建立一个放置语法数据库和示例数据库的数据库设备,大小为10m,并设置为缺省状态。
$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语法数据库。这是通过$sybase/scripts/ins_syn_sql这个脚本文件来安装的。但ins_syn_sql需要修改一下,去掉开头用来指定缺省数据库设备的一段语句,加入“create database sybsyntax”一句(具体请参考《linux、intel平台的sybase ase安装指南》7-14页、7-15页)。然后执行以下命令:

$sybase/bin/isql -usa -p口令 -stest < $sybase/scripts/ins_syn_sql
语法数据库安装好后,可用系统存储过程sp_syntax查询transact-sql语言、系统存储过程、sybase工具的使用帮助。例如要查询select命令的用法:
$sybase/bin/isql -usa -stest
password:(输入口令)
1>sp_syntax "select"
2>go

2、安装pubs2、pubs3示例数据库。技术文档中的例子就是来自示例数据库。执行以下命令:
$sybase/bin/isql -usa -p口令 -stest < $sybase/scripts/installpubs2
$sybase/bin/isql -usa -p口令 -stest < $sybase/scripts/installpubs3

(五)安装ase补丁

据sybase公司讲,ebf9820.tgz修正了ase11.9.2已知的一些问题,建议尽快安装。
1、先关闭server。

$sybase/bin/isql -usa -stest
password:(输入口令)
1>shutdown syb_backup &&关闭backup server
2>go
1>shutdown &&关闭adaptive server
2>go
$sybase/bin/isql -usa -p口令 -stest_mon
1>sms_shutdown &&关闭monitor server
2>go

2、在linux控制台模式下以root用户登录。

#mkdir /tmp/swr &&建立放置补丁的临时目录
#mount -t iso9660 /dev/cdrom /mnt/cdrom &&装载光盘
#cp /mnt/cdrom/ebf9820.tgz /tmp/swr &&将补丁复制到临时目录
#cd /tmp/swr
#gunzip -s .tgz ebf9820.tgz
#tar xvf ebf9820.tar
#rpm -hiv /tmp/swr/ebf9820/rpms/sybase-swr-9820-1.i386.rpm
重新设置sybase用户对$sybase的读写权限。
退出root用户登录。

3、以sybase用户登录,启动adaptive server。
  $sybase/install/startserver -f run_test

呵呵,费了好大的劲啊,总算装好了。怎么用呢?

二、使用ase11.9.2

(一)server的启动与关闭

  先说说四种server的作用。adaptive server enterprise是基于客户机/服务器体系结构的关系数据库管理系统,其余三种server是辅助它的。backup server负责数据库的备份(转储)和恢复(加载)。monitor server负责提供ase的运行情况和性能统计数据。xp server负责管理和执行扩展存储过程(esps)。

1、server的启动

  有两种方式:一是在linux控制台模式发出命令启动adaptive server、backup server、monitor server,二是linux启动时自动启动以上三种server。xp server是由adaptive server在调用扩展存储过程时启动的。
一般是这样启动的,以sybase用户登录(对主设备所在的/db有读写权限),发出如下命令:

$sybase/install/startserver -f run_test &&启动adaptive server
$sybase/install/startserver -f run_test_back &&启动backup server
以上两个命令也可合起来:$sybase/install/startserver -f run_test -f run_test_back,这样就同时启动了adaptive server和backup server。
启动monitor server,使用命令:monserver -stest -mtest_mon -usa -p口令
servedr启动后,要定时查看日志(在$sybase/install目录下的test*.log文件),以便发现问题及时解决。

2、server的关闭

以sybase用户登录,执行以下命令:

$sybase/bin/isql -usa -stest
password:(输入口令)
1>shutdown syb_backup &&关闭backup server
2>go
1>shutdown &&关闭adaptive server
2>go
关闭backup server后,至少等30秒后才可以重新启动它。
在缺省状态下,monitor server会监测到adaptive server停止运行,然后自动关闭。你也可以手动关闭monitor server,执行以下命令:
$sybase/bin/isql -usa -stest_mon
password:(输入口令)
1>sms_shutdown
2>go

(二)isql的使用

$sybase的bin子目录中有一些实用工具,其中最有用的是isql,利用它可连接server进行数据库操作。其语法如下:
isql -u登录名 -p口令
进入系统后,系统显示序号和大于号提示:
1> 这时用户可以输入命令,每个命令既可在一行内输入,也可在多行内输入,每行结束时按回车键。一个命令输入完毕时,在新的一行输入go并按回车键,这时命令开始执行并在屏幕显示执行结果。上面已经有很多使用isql的例子了。isql是在linux控制台模式下的命令行工具,使用起来毕竟不太方便(如果用netterm登录linux,再使用isql,就比较好一点)。常用的是windows平台上的winsql软件。

(三)sybase的有关概念

1、数据库设备(device):sybase的数据库和事务日志都是建立在数据库设备上的,它可以是物理磁盘、磁盘分区或操作系统文件。使用disk init命令建立数据库设备,使用diskdefault命令指定缺省数据库设备,并且可以指定多个缺省数据库设备。建立数据库时不指定数据库设备,则在缺省数据库设备上建立。例如执行命令:
$sybase/bin/isql -usa -stest
password:(输入口令)
1>disk init name = "userdev", &&设备名字为userdev
2>physname = "/db/sybsystem/userdev.dat", &&设备文件名为userdev.dat
3>vdevno = 3, &&设备号为3
4>size = 51200 &&大小为100m(51200块,1块=2k)
5>go
1>sp_diskdefault userdev,defaulton &&指定为缺省数据库设备
2>go
2、数据库(database):是表及其相关数据和操作规则及完整性约束条件的集合,包括以下数据库对象:表(tables)、参照完整性约束、核对完整性约束、规则、缺省值、存储过程、触发器、视图。因此,数据库是一个容器,只有先建数据库,才能建表。一个数据库可以放在多个数据库设备上,一个数据库设备可以放置多个数据库。具体内容请看看讲关系数据库的书。
3、事务日志:对数据库的每次修改,都可被自动记录在一个系统表中,这个系统表就叫事务日志。任何修改总是先记录日志,然后才做实际的修改。事务日志保证了在出现故障时可以将数据库恢复到出错前的状态。数据库的事务日志最好不要跟数据库放在同一设备上。
4、用户:sybase的用户分为两种,一种是sql服务器用户(登录账号),另一种是数据库用户。sql服务器用户sa是系统管理员,对整个系统有操作权。其他sql服务器用户都是由系统管理员创建,只有sql服务器用户才可登录进入系统。数据库用户首先必须是sql服务器用户,当一个sql服务器用户创建了一个数据库或被增加为某一数据库的用户时,他才成为相应数据库的数据库用户.


(四)sybase的windows平台客户端软件的使用,以asentlnx.exe为例。

1、安装
在windows平台上,执行asentlnx.exe,解压缩出一大堆文件到临时目录。执行临时目录中的setup.exe,一直“next”下去就行了。装好后在“开始”菜单建有“sybase”程序组,里面有sybase central、dsedit等工具。客户端软件是装在c:sybase目录下的。
2、配置客户端的接口文件
客户端软件要与数据库服务器(server)通讯,首先得知道局域网中服务器的地址。这就需要为客户端软件提供一本“通讯录”——接口文件,即是c:sybaseinisql.ini文件。这个接口文件记录了与服务器通讯所使用的协议、地址、端口、服务类型等信息。而编写这本“通讯录”的工具就是dsedit。
通过dsedit,可以在sql.ini中为多个server建立entry(接口)。例如,要为名叫test的server建立entry,可以这样操作:
(1)启动dsedit,出现一个窗口,点击“ok”按钮就可以了。
(2)在“server object”菜单栏中选择“add”,出现“input server name”对话框,输入“test”,点击“ok”按钮。
(3)在“dsedit1-interfacedriver”窗口中,在左边的“server”框中选择“test”行,在右边的框中选“server address”行,右击,选择快捷菜单中的“modify attribute...”项,出现“network address attribute”窗口,点击“add”按钮,出现“input network address for protocol”对话框,点击“add”按钮,“protocol”项选“tcp”,“network address”项填入“192.168.0.1,4100”,点击“ok”按钮,退回“dsedit1-interfacedriver”窗口中,
(4)在右边的框中选“server address”行,右击,选择快捷菜单中的“ping server”项,出现“ping”窗口,点击“ping”命令按钮,如果出现“open connection to server at (192.168.0.1,4100) succeeds…”的提示,表示配置成功了。
3、使用sybase central
sybase central是用于管理数据库及相关产品的windows平台工具,可用它管理服务器、数据库中的对象(表、视图、存储过程等等),还能完成通常的创建数据库、表、用户等管理任务。sybase central通过提供类似windows 95资源管理器的易于使用的图形用户界面,简化了这些任务,例如,删除数据库表,只要在主窗口中选中它并单击“删除”。通过提供向导,sybase central 帮助您完成更复杂的任务,向导一步一步地指导你完成任务。有了它,你可以基本摆脱使用isql工具发出sql命令来管理数据库,要知道用create table之类的命令是很累人的,不过建议你还是要研究这些命令哦,这可是基础啊,因为弄明白了这些命令的参数,才能用好sybase central!
第一次启动sybase central,可能会遇到点麻烦,系统会提示“unable to load language dll "scsslgzh"”。这主要是缺少提供中文支持的dll文件,你可以将“c:sybaseasep”目录中的scsslgen.dll文件改名为scsslgzh.dll,sybase central就可以正常启动了。

三、ase+vfp客户机/服务器应用


(一)sybase system11 odbc驱动程序与数据源

在windows平台上,sybase公司的软件有自己的专用文件与ase进行连接和交互操作,而其他公司的软件怎样与ase连接和交互操作呢?一条途径是通过sybase公司提供的odbc(公开数据库接口)驱动程序。通过这个odbc驱动程序,我们可建立数据源(data source),供应用程序使用,使之能够处理ase上的数据。
下面讲怎么建立一个数据源。在sybase程序组中启动odbc data source administrator(或在控制面板启动odbc data source项),点击“drivers”选项卡,应该有sybase system 11一行,这是我们安装asentlnx.exe时装上的。选择“user dsn”选项卡,点击“add”按钮,出现“create new data source”窗口,选择“sybase system 11”一行,点击“完成”按钮,跟着出现“odbc sybase driver setup”窗口。在“general”选项卡中,在“data source name”栏填入数据源的名字,例如dbserver,在“server name”栏填入你要连接到adaptive server的名字,例如test,在“database name”栏填入默认要连接的数据库名字,然后点击“确定”按钮就好了。

(二)远程视图与spt

数据源建好后,vfp应用程序就可以用它来访问和更新服务器上的数据了。在vfp中,可以使用远程视图和spt两种方法访问远程数据。使用远程视图是最简单、方便的方法,你可以象使用vfp本地表一样使用远程视图。spt(sql pass-through)是直接把sql语句发送给服务器执行,能够在很大程度上提高客户机/服务器应用程序的性能。

没有评论: