sybase基础知识作者:陈苏文发表于:2002-10-1416:31:50第一讲sybase基础知识一、客户/服务器体系结构sybase是一种建立在客户/服务器体系结构上的数据库管理系统。●什么是客户/服务器体系结构?从硬件角度看,客户/服务器体系结构是指将某项任务在两台或多台机器之间进行分配,其中客户机(client)用来运行提供用户接口和前端处理的应用程式,服务器机(server)提供客户机使用的各种资源和服务。从软件角度看,客户/服务器体系结构是把某项应用或软件系统按逻辑功能划分为客户软件部分和服务器软件部分。客户软件部分一般负责数据的表示和应用,处理用户界面,用以接收用户的数据处理请求并将之转换为对服务器的请求,需求服务器为其提供数据的存储和检索服务;服务器端软件负责接收客户端软件发来的请求并提供相应服务。客户/服务器融合了大型机的强大功能和中心控制及pc机的低成本和较好的处理平衡。客户/服务器为任务的集中/局部分布提供了一种新的方法,这种体系能够使用户对数据完整性、管理和安全性进行集中控制。在缓解网络交通和主机负荷及满足用户需要方面,客户/服务器体系提供了良好的解决方案。总之,客户/服务器的工作模式是:客户和服务器之间采用网络协议(如tcp/ip、ipx/spx)进行连接和通讯,由客户端向服务器发出请求,服务器端响应请求,并进行相应服务。数据库应用的客户/服务器模式如下图所示:二、访问sybase服务器的基本过程1.建立客户和服务器之间的连接,包括网络连接、客户进程和服务器进程之间的连接;2.客户端通过网络发送sql语句给服务器,用来查询或操作服务器中的数据或数据库对象;3.服务器接收到sql语句后,对其进行语法分析、优化和编译后执行;4.如果执行的语句产生一个结果集,服务器通过网络把结果集返回给客户;5.客户端对收到的结果作相应的处理。在客户/服务器体系,有两种数据库引擎结构,即多进程数据库引擎和单进程、多线程引擎结构。多进程结构即多个可执行程式同时运行。每当用户登录到数据库系统时实际上都启动了数据库引擎的一个独立实例。存在起协调作用的进程协调进行之间的通讯以确保当多用户访问相同数据时数据的完整性。多进程数据库引擎一般用在大型机数据库上。单进程多线程数据库引擎在原理上和多进程数据库引擎类似,不同的是多线程数据库引擎自己负责调度各应用程式占用cpu的时间,而不依赖于操作系统。这样,多线程数据库引擎自我保护的能力更强。oracleserver是个真正的多进程数据库引擎,sybase数据库管理系统采用的是单进程多线程的引擎结构。三、sybase产品概述1.sybase软件的组成sybase软件可划分为三个部分:一是进行数据管理和维护的联机关系数据库管理系统sybasesqlserver;二是支持数据库应用系统的建立和研发的一组前端工具软件sybasesqltools;三是可把异构环境下其他厂商的应用软件和所有类型的数据连接在一起的接口软件openclient/openserver。sqlserver是个可编程的数据库管理系统(dbms),他是整个sybase产品的核心软件,起着数据管理、高速缓冲区管理、事务管理的作用。2.sqlserver的基本特征sqlserver是个关系数据库管理系统,他具有如下一些基本特征:a.sqlserver能放在若干个磁盘设备上,初始安装时所需的磁盘空间至少要17mb。b.sqlserver支持多库结构,也就是说sybase系统中能有多个数据库。sybase能管理多个数据库。c.sqlserver能编译和运行t-sql语句,并可返回客户程式所需求的结果。t-sql语句是标准sql的扩充,他除了有数据定义语句、数据操纵语句和数据控制语句之外,主要增加了流程控制语句。d.sqlserver能管理多个用户并具有较高的事务吞吐量和较低的事务响应时间。客户的应用程式能存取server中某一个或几个数据库的数据。四、sqlserver的主要内容sybasesqlserver是个多库结构的rdbms,体系结构大致如下:1.数据库服务器自身所使用的数据库,也能说是管理服务器和用户数据库的数据库。sybase在安装时,自动创建了四个系统数据库:master、model、tempdb、sybsystemprocs(1)master数据库他是管理和控制用户数据库及维护服务器正常运行的核心数据库,他保存了大量的系统信息,如服务器设置、用户、设备等。在master数据库中不允许普通用户在其中创建数据库对象,否则会使得master数据库的事务日志非常快变满。如果事务日志用尽,就无法使用dumptransaction命令释放master数据库中的空间。(2)model数据库他是为创建用户数据库而提供的模板。每当创建新的数据库时,sqlserver自动建立model数据库的一份拷贝,并把他扩充到用户所需求的大小,以此作为新用户数据库。model数据库中包含每个用户数据库所需求的系统表。model数据库能被修改以便制定新创建的。(3)tempdb数据库他是个临时数据库,为服务器运行和处理提供一个共享的存储区域,如groupby和orderby的中间结果就存放在这里。tempdb的空间为服务器中所有数据库的所有用户所共享。每次重启sqlserver,服务器的一个自动进程都拷贝model数据库到tempdb数据库,并清除tempdb中原来的内容。因此tempdb中的用户表都是临时的。临时表分为两类:可共享的和不可共享的。不可共享的临时表在由createtable中将符号#置于表名之前创立;可共享的临时表通过createtable中指定表名前缀tempdb..而创立。不可共享的临时表sqlserver自动为其添加数字后缀名,且他只存在于当前会话中。(4)sybsystemprocs数据库master数据库他是专门用来保存系统命令(存储过程)的数据库,如sp_help、sp_configure、sp_helpdevice等。当任一数据库用户运行以sp_开头的存储过程时,sqlserver按照以下顺序查找:当前数据库、sybsystemprocs数据库、master数据库。2.用户数据库用户数据库是我们使用sybase服务器的真正目的。要管理用户数据,必须在sybase中创建自己的数据库,他是指用createdatabase命令创建的数据库。不能存取master数据库的用户是无权创建新的数据库的。数据库中的主要内容——数据库对象:表、视图、临时表索引、主键、外键缺省值、规则存储过程、触发器等五、sybase的安装和设置1.服务器端的安装安装建立sqlserver以后,要建立放置数据库、日志和索引的逻辑磁盘设备。数据库、日志和索引的设置应注意以下原则;a.不要把所有用户对象安装在master数据库中。b.日志应该保存在和数据库分离的磁盘上。c.能通过跨越多个设备分配工作优化i/o性能。2.客户端的安装3.需要即时更改的内容(1)更改sa的登录口令;(2)命名服务器;(3)修改文件名(确保sybasecentral正常启动);(4)更改缺省设备;(5)增加tempdb的空间。4.创建用户数据库以下通过一个建立数据库的脚本说明建立数据库的过程://创建数据库设备,设备大小以页(2k)为单位diskinitname=”test_dbdev”,physname=”c:\test\test_dbdev.dat”,vdevno=10,size=10240godiskinitname=”test_logdev”,phyname=”c:\test\test_logdev.dat”,vdevno=11,size=5120go//创建数据库test_db,其大小为20m,日志大小为10mcreatedatabasetest_dbontest_dbdev=20logontest_logdev=10go//打开数据库usetest_dbgo5.系统管理的主要内容a.物理资源的管理b.用户及其权限管理c.数据库的备份和恢复6.sqlserver的设置参数服务器设置是系统管理员的职责,正确的设置对系统性能有重大的影响。有两个系统表存储设置信息:sysconfigures和syscurconfigs;sysconfigures是永久性的,一旦系统运行,sysconfigures的信息就拷贝到syscurconfigs中。显示设置和改动设置使用系统过程sp_configure。有两种设置值:动态的和静态的,动态值一旦改动即时生效,静态值要在系统重启动后才起作用。第二讲数据库设备和存储空间管理一、概述1.安装初始化初始安装sqlserver时,安装程式和脚本初始化主设备,并建立master、model、tempdb和sybsystemprocs数据库。系统数据库、预定义设备和段按下列默认方式组织:a.master、model、tempdb数据库安装在主设备master上;b.sybsystemprocs数据库安装在安装时选择的设备上(sysprocsdev);c.为每个数据库创建三个预定义段:system、default和logsegment;d.所有用户创建数据库的默认设备是master设备;e.如果选择安装了审计数据库sybsecurity,他位于自己的设备上。2.设备和存储管理考虑的主要问题(1)恢复物理磁盘崩溃时,磁盘映像或在独立的物理设备上保存日志为数据库恢复提供了两种机制。(2)性能磁盘读写速度是i/o操作的瓶颈,正确地把数据库对象放置到物理设备上有利于改进性能;把日志和数据库对象置于独立的设备上能提高系统性能;把表放在一个硬盘上而把索引放在另一个硬盘上,由于把工作分置于两个硬盘驱动器上,所以能确保物理读写速度加快;磁盘映像会降低磁盘写的速度。二、设备(device)sybase将数据库中的所有数据存放在设备上。1.设备的概念设备是sybase预先设置的专门存放数据库的一块连续的磁盘空间,并且他被映射到一操作系统文件或一原始磁盘分区上。他有两个对应的名称:逻辑名和物理名。nt仅支持设备映射到文件。设备和数据库之间的关系:多对多关系。一个数据库能被创建或扩充到多个设备上,一个设备也能被用来存放多个数据库。不同的设备操作系统能对其并行地读写,因此我们能人为地将一个数据库放置到多个数据库设备上。设备的分类:databasedevice和dumpdevice。数据库设备存放数据库和事务日志,转储设备用来存放数据库或日志的备份。2.设备的创建命令语法:diskinitname=’device_name’,physname=’physical_name’,vdevno=virtual_device_numbersize=number_of_pages[…….]举例说明:diskinitname=’my_device’,physname=’d:\database\my_device.dat’,vdevno=3size=5000注释:逻辑名、物理名、设备虚拟号、设备大小创建转储设备:sp_addumpdevice{‘disk’|’tape’}logical_name,physical_name,tapesize3.默认设备在没有指定设备的情况下,用户创建的所有数据对象自动存放在默认设备上。初始安装后,系统的主设备master被预指定为默认设备,因此要尽快创建自己的默认设备。确保以下设备不是默认设备:系统主设备、指定仅被日志使用的设备。sp_diskdefault设备名[,defaulton|defaultoff]4.磁盘映像磁盘映像是出于数据库安全性的考虑,当介质失败时,磁盘映像能提供不间断恢复。磁盘映像是磁盘上的数据的绝对拷贝。如果某一硬盘事故发生,则该被损坏的拷贝就自动变成离线状态,因而所有的读写都被引向未被损坏的拷贝。sybase的磁盘映像是在设备级上进行的,因此磁盘映像实质上是设备映像。当对某一设备