sybase基本命令.doc_第1页
sybase基本命令.doc_第2页
sybase基本命令.doc_第3页
sybase基本命令.doc_第4页
sybase基本命令.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一讲 Sybase基础知识一、客户/服务器体系结构Sybase是一种建立在客户/服务器体系结构上的数据库管理系统。什么是客户/服务器体系结构?从硬件角度看,客户/服务器体系结构是指将某项任务在两台或多台机器之间进行分配,其中客户机(Client)用来运行提供用户接口和前端处理的应用程序,服务器机(Server)提供客户机使用的各种资源和服务。从软件角度看,客户/服务器体系结构是把某项应用或软件系统按逻辑功能划分为客户软件部分和服务器软件部分。客户软件部分一般负责数据的表示和应用,处理用户界面,用以接收用户的数据处理请求并将之转换为对服务器的请求,要求服务器为其提供数据的存储和检索服务;服务器端软件负责接收客户端软件发来的请求并提供相应服务。客户/服务器融合了大型机的强大功能和中央控制以及PC机的低成本和较好的处理平衡。客户/服务器为任务的集中/局部分布提供了一种新的方法,这种体系能够使用户对数据完整性、管理和安全性进行集中控制。在缓解网络交通和主机负荷以及满足用户需要方面,客户/服务器体系提供了良好的解决方案。总之,客户/服务器的工作模式是:客户与服务器之间采用网络协议(如TCP/IP、IPX/SPX)进行连接和通讯,由客户端向服务器发出请求,服务器端响应请求,并进行相应服务。数据库应用的客户/服务器模式如下图所示:二、访问Sybase服务器的基本过程1建立客户与服务器之间的连接,包括网络连接、客户进程与服务器进程之间的连接;2客户端通过网络发送SQL语句给服务器,用来查询或操作服务器中的数据或数据库对象;3服务器接收到SQL语句后,对其进行语法分析、优化和编译后执行;4如果执行的语句产生一个结果集,服务器通过网络把结果集返回给客户;5客户端对收到的结果作相应的处理。在客户/服务器体系,有两种数据库引擎结构,即多进程数据库引擎和单进程、多线程引擎结构。多进程结构即多个可执行程序同时运行。每当用户登录到数据库系统时实际上都启动了数据库引擎的一个独立实例。存在起协调作用的进程协调进行之间的通讯以保证当多用户访问相同数据时数据的完整性。多进程数据库引擎一般用在大型机数据库上。单进程多线程数据库引擎在原理上和多进程数据库引擎类似,不同的是多线程数据库引擎自己负责调度各应用程序占用CPU的时间,而不依赖于操作系统。这样,多线程数据库引擎自我保护的能力更强。Oracle Server是一个真正的多进程数据库引擎,Sybase数据库管理系统采用的是单进程多线程的引擎结构。三、Sybase产品概述1Sybase软件的组成Sybase软件可划分为三个部分:一是进行数据管理与维护的联机关系数据库管理系统Sybase SQL Server;二是支持数据库应用系统的建立和开发的一组前端工具软件Sybase SQL Tools;三是可把异构环境下其他厂商的应用软件和任何类型的数据连接在一起的接口软件Open Client/Open Server。SQL Server是个可编程的数据库管理系统(DBMS),它是整个Sybase产品的核心软件,起着数据管理、高速缓冲区管理、事务管理的作用。2SQL Server的基本特征SQL Server是个关系数据库管理系统,它具有如下一些基本特征:a.SQL Server可以放在若干个磁盘设备上,初始安装时所需的磁盘空间至少要17MB。b.SQL Server支持多库结构,也就是说Sybase系统中可以有多个数据库。Sybase可以管理多个数据库。c.SQL Server可以编译和运行T-SQL语句,并可返回客户程序所要求的结果。T-SQL语句是标准SQL的扩充,它除了有数据定义语句、数据操纵语句和数据控制语句之外,主要增加了流程控制语句。d.SQL Server可以管理多个用户并具有较高的事务吞吐量和较低的事务响应时间。客户的应用程序可以存取Server中某一个或几个数据库的数据。四、SQL Server的主要内容Sybase SQL Server是一个多库结构的RDBMS,体系结构大致如下:1数据库服务器自身所使用的数据库,也可以说是管理服务器和用户数据库的数据库。Sybase在安装时,自动创建了四个系统数据库:master、model、tempdb、sybsystemprocs(1) master数据库它是管理和控制用户数据库以及维护服务器正常运行的核心数据库,它保存了大量的系统信息,如服务器配置、用户、设备等。在master数据库中不允许普通用户在其中创建数据库对象,否则会使得master数据库的事务日志很快变满。如果事务日志用尽,就无法使用dump transaction命令释放master数据库中的空间。(2)model数据库它是为创建用户数据库而提供的模板。每当创建新的数据库时,SQL Server自动建立model数据库的一份拷贝,并把它扩充到用户所要求的大小,以此作为新用户数据库。Model数据库中包含每个用户数据库所要求的系统表。Model数据库可以被修改以便定制新创建的。(3)tempdb数据库它是个临时数据库,为服务器运行与处理提供一个共享的存储区域,如group by和order by的中间结果就存放在这里。Tempdb的空间为服务器中所有数据库的所有用户所共享。每次重启SQL Server,服务器的一个自动进程都拷贝model数据库到tempdb数据库,并清除tempdb中原来的内容。因此tempdb中的用户表都是临时的。临时表分为两类:可共享的和不可共享的。不可共享的临时表在由create table中将符号#置于表名之前创立;可共享的临时表通过create table中指定表名前缀tempdb.而创立。不可共享的临时表SQL Server自动为其添加数字后缀名,且它只存在于当前会话中。(4)sybsystemprocs数据库master数据库它是专门用来保存系统命令(存储过程)的数据库,如sp_help、sp_configure、sp_helpdevice等。当任一数据库用户运行以sp_开头的存储过程时,SQL Server按照以下顺序查找:当前数据库、sybsystemprocs数据库、master数据库。2用户数据库用户数据库是我们使用Sybase服务器的真正目的。要管理用户数据,必须在Sybase中创建自己的数据库,它是指用create database命令创建的数据库。不能存取master数据库的用户是无权创建新的数据库的。数据库中的主要内容数据库对象:表、视图、临时表索引、主键、外键缺省值、规则存储过程、触发器等五、Sybase的安装与配置1服务器端的安装安装建立SQL Server以后,要建立放置数据库、日志和索引的逻辑磁盘设备。数据库、日志和索引的配置应注意以下原则;a.不要把任何用户对象安装在master数据库中。b.日志应该保存在与数据库分离的磁盘上。c.可以通过跨越多个设备分配工作优化I/O性能。2客户端的安装3需要立即更改的内容(1)更改sa的登录口令;(2)命名服务器;(3)修改文件名(保证Sybase Central正常启动);(4)更改缺省设备;(5)增加tempdb的空间。4创建用户数据库以下通过一个建立数据库的脚本说明建立数据库的过程:/创建数据库设备,设备大小以页(2K)为单位disk initname=”test_dbdev”,physname=”c:testtest_dbdev.dat”,vdevno=10,size=10240godisk initname=”test_logdev”,phyname=”c:testtest_logdev.dat”,vdevno=11,size=5120go/创建数据库TEST_DB,其大小为20M,日志大小为10Mcreate database TEST_DBon test_dbdev=20log on test_logdev=10go/打开数据库use TEST_DBgo5系统管理的主要内容a.物理资源的管理b.用户及其权限管理c.数据库的备份与恢复6SQL Server的配置参数服务器配置是系统管理员的职责,正确的配置对系统性能有重大的影响。有两个系统表存储配置信息:sysconfigures和syscurconfigs;sysconfigures是永久性的,一旦系统运行,sysconfigures的信息就拷贝到syscurconfigs中。显示配置和改变配置使用系统过程sp_configure。有两种配置值:动态的和静态的,动态值一旦改变立即生效,静态值要在系统重启动后才起作用。第二讲 数据库设备与存储空间管理一、概述1安装初始化初始安装SQL Server时,安装程序和脚本初始化主设备,并建立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仅支持设备映射到文件。设备与数据库之间的关系:多对多关系。一个数据库可以被创建或扩充到多个设备上,一个设备也可以被用来存放多个数据库。不同的设备操作系统可以对其并行地读写,因此我们可以人为地将一个数据库放置到多个数据库设备上。设备的分类:Database Device和Dump Device。数据库设备存放数据库和事务日志,转储设备用来存放数据库或日志的备份。2设备的创建命令语法:DISK INITName=device_name,Physname=physical_name,Vdevno=virtual_device_numberSize=number_of_pages.举例说明:DISK INITName=My_Device,Physname=D:databaseMy_device.dat,Vdevno=3Size=5000注释:逻辑名、物理名、设备虚拟号、设备大小创建转储设备:sp_addumpdevicedisk|tapeLogical_Name,Physical_Name,TapeSize3默认设备在没有指定设备的情况下,用户创建的任何数据对象自动存放在默认设备上。初始安装后,系统的主设备master被预指定为默认设备,因此要尽快创建自己的默认设备。确保以下设备不是默认设备:系统主设备、指定仅被日志使用的设备。Sp_diskdefault 设备名,DefaultOn|DefaultOff4磁盘镜像磁盘镜像是出于数据库安全性的考虑,当介质失败时,磁盘镜像能提供不间断恢复。磁盘镜像是磁盘上的数据的绝对拷贝。如果某一硬盘事故发生,则该被损坏的拷贝就自动变成离线状态,因而所有的读写都被引向未被损坏的拷贝。Sybase的磁盘镜像是在设备级上进行的,因此磁盘镜像实质上是设备镜像。当对某一设备进行镜像操作时,Sybase自动创建一个附加设备,由镜像处理程序将原设备上的所有数据拷贝到镜像设备上。如果要使某一数据库成为镜像,被分配给该数据库的每一设备都必须成镜像。Master设备在服务器中地位特殊,如果它损坏了,SQL Server将崩溃。因此,如果有可能总是要镜像Master设备(在另一磁盘上)。镜像命令语法:Disk MirrorName=device_name,/被镜像的设备Mirror=physical_name,writes=serial|noserial5删除设备sp_dropdevice logical_name,delfile含有数据库的设备不允许删除。三、创建与使用段 段(Segment)是数据库设备上磁盘空间的逻辑组合,它可以看作是指向一个或多个数据库设备的标签。利用段可以控制数据库对象的存放位置,可以将数据库对象分类存放到不同的段上。设备与段之间的关系:多对多关系。一个设备上可以创建多个段,一个段也可以覆盖多个设备。1使用段的优点a. 控制空间的使用:放在一个段上的数据库对象不会在段外增长;b. 提高性能:处于不同磁盘设备上的段可以并行地读写;d.处理大表:利用段,可以将一个大表分段放在独立的物理设备上,如将一个表的文本或图象数据存储另外的一个段上。2创建段sp_addsegment 段名,数据库名,设备名说明:在指定设备上为某个数据库创建一个段。扩展段的范围sp_exetendsegment 段名,数据库名,设备名说明:设备在数据库中必须可用,否则需要扩展数据库到新的设备上;指定的段、数据库、设备必须存在。缩小段的范围:sp_dropsegment 段名,数据库名,设备名说明:带第三个参数时,该命令并不删除段,只是段的范围缩小了。若某个段包含了别的段要独占的设备,就需要缩小该段的范围。3使用段两个数据库放在同一设备的不同段上,它们不会相互影响;当数据库增加空间时,增加的空间会自动分配到它的每一个段上;例如:alter database my_db on data_dev=50在data_dev设备上为my_db增加50M空间,这50M空间被自动分配到数据库的每一个段中。注意:如果data_dev对于数据库是新的,system和default段会自动扩展到该设备上。可以使用alter database命令的log on选项分配附加的日志空间。(1)在段中创建新对象create table 表名(列名 数据类型)on 段名create clusterd|non clusterdindex 索引名 on 表名(列名)on 段名注意:按照定义,聚集索引总是与表放在同一段上。(2)在段上放置现有对象sp_placeobject 段名,对象名注意:该命令并不把对象从一个数据库设备移动到另一设备上,它只影响未来的空间分配。可以将某个大表的text字段或image字段放置到一个单独的设备段上。Sp_placeobject 段名,“表名字段名”(3)在段上创建聚集索引按照定义,聚集索引总是与表放在同一段上。如果在一个段上创建表,而在另一个段上创建聚集索引,则其表与其索引一起移动,整个表将离开创建表的段而迁移到创建聚集索引的段中。通过这种方法,可以快速而方便地把指定表移动到指定的设备上。(4)系统预定义段当用户创建一个数据库时,Sybase自动创建三个预定义的段:system段:存放系统表(包括所有用户对象的定义)default段:存放用户创建的各种对象,除非它们明显地指定到不同的段上。Logsegment段:存放数据库的事务日志。(5)删除段删除段是缩小段范围的一个特例:sp_dropsegment 段名,数据库名4使用阈值管理阈值(Threshold)管理是一种自动监控数据库自由空间的机制,Sybase的阈值管理允许用户为数据库的某个段上的自由空间设置阈值并定义相应的存储过程。当该段上的自由空间低于所置头阈值时,Sybase自动运行相应的存储过程。在一个实际运行的数据库中,日志的增长速度一般要高于数据的增长,一旦日志段的自由空间用尽,SQL Server在默认情况下会挂起所有数据操纵事务,客户端应用程序停止执行。在每个分离的段上存储其事务日志的数据库均自动设置有最后机会阈值(Last Chance Threshold),其阈值是备份事务日志所需的自由空间的估计值。当该段上的自由空间低于所置阈值时,Sybase自动运行名为sp_thresholdaction的存储过程。该过程的名称及参数由系统预定义,内容由用户编写。下面是一个简单示例。CREATE PROCEDURE dbo.sp_thresholdaction/*本过程参数通过位置传递,名称可以改变,但其定义及顺序不能变*/db_name varchar(30),/*数据库名*/seg_name varchar(30),/*段名*/space_lefe int,/*剩余自由空间*/status int/*最后机会阈值,其值为1,其它阈值,其值为0*/ASBEGIN/*用户编写过程内容*/dump transaction db_namewith truncate_onlyEND第三讲 数据库与事务日志一、创建用户数据库Create Database 数据库名On 设备_1=Size_1,/单位:M 设备_2=Size_2,log on 日志设备=Log_SizeWith Override/在同一设备上创建数据库和事务日志时使用该选项For Load /禁止用户访问直到数据库的装入或恢复操作完成为止举例: Create Database test_db On data_dev=100,/单位:M Index_dev=50 Log on log_dev=30说明:(1)将日志放在单独的设备上,有利于数据库性能的提高;(2)图示:Data_dev Index_dev log_dev(3)如果将数据库和日志放在同一设备上,就不能实现增量备份;(4)通常将System和Default段缩减范围到一个设备上,如删除设备Index_dev上的System段和Default段,创建新的段,用来存放专门的数据库对象。二、更改数据库1改变数据库属主通常用户数据库有系统管理员创建,它的默认属主是dbo。系统过程sp_changeddbowner可改变数据库的属主关系,它必须由数据库管理员在要改变属主关系的数据库中执行。语法如下:sp_changeddbowner login_name,True其中参数True用于将权限一半传递给新属主。2扩展数据库(1)扩展数据库空间alter database 数据库名 on 设备名=扩展空间 /单位:M 如果扩展的设备对于数据库是新的,System和Default段会自动扩展到该设备上。(2)扩展事务日志到新的设备上sp_logdevice 数据库名,设备名举例:将数据库另外扩充5M,用于存储日志 alter database my_db on my_dev=5 go sp_logdevice my_db,my_dev go3.删除数据库drop database 数据库名删除设备前必须删除其上的所有数据库,删除设备的命令是:sp_dropdevice三、事务日志 日志文件是用来记录数据库每一次修改活动的文件。SQL Server中的每一个数据库都有自己的日志文件,即系统表syslogs,也称为事务日志。事务日志是撤消事务和出现故障时恢复事务的依据。在某些情况下,事务日志比数据本身更为重要。什么是事务?数据库的修改是以事务为单位进行的。一个事务就是一个操作序列,这些操作要么全做,要么全不做,它是一个不可分割的工作单位。任何一个事务具备如下特征。(1)执行的原子性(Atomic);(2)保持数据的一致性(Consistency);(3)彼此的隔离性(Isolation);(4)作用的持久性(Durability)。上述事务的四个特征被称为事务的ACID准则。事务在运行过程中,SQL Server把事务开始、事务结束以及对数据库的插入、删除和更新等每一个操作作为一个日志记录存放到事务日志中。事务中的更新操作首先在数据库缓冲区(内存)中进行,缓冲区分别有用来记录操作活动的数据页(data page)和日志页(log page)。当运行到commit tran时,日志页首先从缓冲区写到磁盘上,而后数据页从缓冲区写到磁盘上,即遵循“先与日志(write_ahead log)”的原则,这样保证出现故障的情况下,通过日志能够得到最大限度的恢复。恢复必须撤消发生故障时还未提交的事务,已完成的事务若仍有未从缓冲区写到数据库设备中,还要重新运行该事务。附:创建与装载数据库实例use masterdecl are vedvno intselect vdevno=max(convert(tinyint,substring(convert(binary(4),d.low),v.low,1)+1from master.dbo.sysdevices d,master.dbo.spt_values vwhere v.type=Eand v.number=3declare v_str char(2)select v_str=convert(char(2),vdevno)print v_strdisk init name=”YDDATA”, physname=”D:Syb_DataYDDATA.dat”, vdevno=vdevno+1, size=153600disk init name=”YDINDEX”, physname=”D:Syb_DataYDINDEX.dat”, vdevno=vdevno+2, size=102400disk init name=”YDLOG”, physname=”D:Syb_DataYDLOG.dat”, vdevno=vdevno+3, size=76800create database YDMISDBon YDDATA=300,YDINDEX=200log on YDLOG=150use YDMISDBexecute sp_addsegment indexdev,YTMISDB,YTINDEXexecute sp_dropsegment “default”,YTMISDB,YTINDEXexecute sp_dropsegment system,YTMISDB,YTINDEXuse masterload database YDMISDB from d:yd_dumpydmis_backup.dmponline database YDMISDB第四讲 数据库安全性与用户管理一、安全管理概述数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。SQL Server的安全管理是一种基于角色(role)的管理方法,位于不同权限层次(或角色)的用户具有不同的用户权限。规定用户权限有三个因素:用户、数据对象和操作,即什么用户在哪些数据对象上可以执行什么操作。访问SQL Server中数据的四道屏障:(1)操作系统操作系统登录(2)Sybase服务器服务器登录(3)Sybase数据库数据库用户登录(4)数据库对象对象授权二、理解数据库角色角色是权限的集合。1系统预定义角色一个真正的数据库管理员应该是整个服务器及其数据库的拥有者,具有管理服务器及其数据库的所有权限。在一个大的系统中,数据库管理员往往不只由一人承担,而是将管理任务进行功能划分,每人提当不同的责任。系统预定义角色就是为适应这种要求而设计的。系统管理员(sa_role)sa_role角色拥有执行与数据库具体应用无关的管理权限:安装与更新SQL Server管理服务器的物理存储配置系统设置参数;创建用户数据库;授予SQL Server用户权限系统安全管理员(sso_role)sso_role用来实施安全上敏感的操作,执行有关安全性的任务:建立服务器登录帐户;管理口令;授予除sa_role之外的任何角色;管理审计系统;操作员(oper_role)oper_role执行全服务器范围的数据库操作,如备份与恢复任意数据库等:转储数据库与日志转载数据库与日志2创建与使用自定义角色(1)创建新的角色:create role(2)赋予角色权限:grant(3)设置登录帐户的角色权限:sp_role格式:sp_role “grant”|”revoke”,角色名,登录帐号名这里的“grant”|”revoke”是指对角色权限是授予还是撤消。三、服务器的帐户管理要想成为Sybase系统的一个用户,首先必须拥有自己的登录帐户。通过这一帐户连同自己的口令向服务器注册后,才能使用Sybase系统中的一些资源,每一个这样的登录帐户在系统中被赋予Server级的标识SUID。1添加登录sp_addlogin 登录名,口令,缺省的数据库如果不指定缺省的数据库,则该帐户的缺省数据库为master库。2更改登录属性更改口令;锁定帐户;期限设置;赋予角色。Sybase四、数据库用户管理通过某一个帐户注册到服务器后,要想使用某一个数据库,必须成为该数据库的一个用户。通过建立登录与用户之间的联系来管理对数据库的访问。1组的概念组(group)是数据库用户的集合。属于某个组的用户,他自动获得该组所拥有的权限。Sp_addgroup 组名将一个用户加入某个组:(1)改变用户属性;(2)创建新用户时指定。所有用户自动属于public组,即使这个用户已经属于其他组了。2创建新的用户sp_adduser 登录名,用户名,组名3别名用户Sybase的别名机制可以使得多个帐户对应于同一个数据库用户,这样使不同的登录在数据库中拥有同样的权限。这在审计系统中是一种控制责任的一种手段。Sp_addalias 登录名,数据库中的用户名别名相当于给某个用户配一把别人的钥匙(登录)。五、用户的权限管理控制用户对数据库对象的访问,有两类权限:命令权限和对象权限。1命令权限Create DatabaseCreate TableCreate ViewCreate ProcedureCreate RuleCreate default命令权限授权与收权:Grant 命令权限组合 to 组名|用户名|角色Revoke 命令权限组合 from 组名|用户名|角色2对象权限SelectUpdateInsertDeleteReferenceExecute对象权限授权与收权:Grant 对象权限组合 on 数据库对象 to public|组名|用户名|角色With Grant OptionRevoke 对象权限组合 on 数据库对象 to public|组名|用户名|角色From public public|组名|用户名|角色Cascade授权与收权举例:Grant Insert,Delete on Employeeto user_1,Group_1Grant Execute on Pro_culculateto publicGrant Select on Employee(emp_id,emp_name)to user_3Grant All on Employeeto user_4Revoke update on Employee(emp_id,emp_name)from user_5Revoke Create Table,Create Rule from user_6第五讲 数据库的备份与恢复数据库的备份与恢复是SQL Server保障数据安全的一种重要手段,为防止意外,数据库管理员必须定期和经常制作数据库的备份。一旦系统出现故障,数据能够得到及时的恢复。一、基本概念 1事务处理及其日志SQL Server使用事务来跟踪所有数据库变化。事务是SQL Server的工作单元。一个事务包含一条或多条作为整体成功或失败的T_SQL语句。每个数据库都有自己的事务日志,即系统表syslogs,事务日志自动记录每个用户发出的每个事务,它饮食了每个事务足够多的信息,以确保数据能够被恢复。2检查点(CheckPoint)服务器在何时更新数据?在检查点。在服务器发出一个检查点时:(1)更新数据;(2)在日志中记录下执行检查点的标记。检查点可把所有“脏页”写到数据库设备上,“脏页”是指从上一次检查点以来,在内存中修改、但没有在磁盘上修改的页。SQL Server的自动检查点机制保证了被完成的事务修改的数据页有规律地从内存中的缓冲区写到数据库设备上。二、数据库备份若硬件介质出现故障(如磁盘损坏),当且仅当事先已对数据库及其事务日志作了备份,才能恢复数据库。注意:绝对不要使用操作系统的拷贝数据库设备,把这样一个拷贝装入SQL Server将导致大量数据库受损。备份的类型:完全备份()增量备份备份事务处理日志说明:(1)只有把事务日志放在单独的设备上,才能进行增量备份;(2)备份事务日志会截断日志,因此备份的内容是自上次备份以来的事务处理。(3)备份之前要启动备份服务器,并最好创建转储设备。命令语法:dump database 数据库名 to 转储设备名/物理文件名dump transaction 数据库名 with truncate_only|no_log to 转储设备名/物理文件名 with No_truncateTruncate_only与no_log选项用于删除事务处理而不作拷贝。Truncate_only截断日志;在事务处理日志完全满时用no_log,它不为数据库建立检查点。两个选项都会丢掉日志。当使用了这两个参数后,应及时备份整个数据库。No_truncate拷贝日志但不截断日志,在出现介质错误时使用该选项。图形界面的选项与命令参数的对应关系:(1)dump transaction (2)dump transaction with no_truncate(3)dump transaction with truncate_only(4)dump transaction with no_log三、数据库的恢复使用load database加载备份到现有数据库,数据库可以是用于创建转储的数据库,也可以不是。语法为:load database 数据库名 from 转储设备名/物理文件名load transaction数据库名 from 转储设备名/物理文件名利用备份恢复数据库举例:某数据库数据和日志分别存储在两个独立的磁盘上,正常运转时的执行的备份计划如下,每天的17:00执行整个数据库的备份,每天的10:00、12:00、14:00、16:00点执行增量备份:周一17:00磁带1(100M)周二10:00磁带2(30M)周二12:00磁带3(30M)周二14:00磁带4(30M)周二16:00磁带5(30M)周二17:00磁带6(30M)DumpdatabaseDumptransactionDumptransactionDumptransactionDumptransactionDumpdatabase若数据磁盘在周二的下午六点损坏,可以采用如下步骤恢复数据库:(1)使用dump transaction with no_truncate获得当前的事务日志转储,磁带7;(2)使用load database转载最新的数据库转储,磁带6;(offline)(3)使用load transaction提交最新的事务日志转储,磁带7;(4)使用online database把数据库状态设置为online。若数据磁盘在周二的下午4:50损坏,恢复过程如下:(1)使用dump transaction with no_truncate获得当前的事务日志转储,磁带7;(2)使用load database转载最新的数据库转储,磁带6;(offline)(3)使用load transaction依次装载磁带2、3、4、5上的事务日志;(4)使用load transaction提交最新的事务日志转储,磁带7;(5)使用online database把数据库状态设置为online。四、制定备份与恢复的策略 由于事务日志在恢复数据库中的特殊作用,应定期备份数据库及其事务日志,而且事务日志的备份要更频繁一些。如:数据库每周备份一次,事务日志每天备份一次。第六讲 数据库与T-SQL语言一、关系模型的基本概念关系数据库以关系模型为基础,它有以下三部分组成:数据结构模型所操作的对象、类型的集合完整性规则保证数据有效、正确的约束条件数据操作对模型对象所允许执行的操作方式关系(Relation)是一个由行和列组成的二维表格,表中的每一行是一条记录(Record),每一列是记录的一个字段(Field)。表中的每一条记录必须是互斥的,字段的值必须具有原子性。二、SQL语言概述SQL(结构化查询语言)是关系数据库语言的一种国际标准,它是一种非过程化的语言。通过编写SQL,我们可以实现对关系数据库的全部操作。数据定义语言(DDL)建立和管理数据库对象数据操纵语言(DML)用来查询与更新数据数据控制语言(DCL)控制数据的安全性T-SQL语言是Sybase对SQL92标准的一种扩展,主要在它的基础上增加了三个方面的功能:自己的数据类型/特有的SQL函数/流程控制功能T-SQL中的标识符使用说明:(1)标识符由1-30个字符或数字构成,但首字符必须为字母。临时表的表名以#开头,长度不能超过13个字符。(2)数据库对象的标识方法举例database.owner.tablename.columnname执行远程存储过程:EXEC c_name当执行语句在批处理的句首时,EXEC可以省略。三、Sybase的数据类型 在创建表或声明局部变量时,必须使用Sybase系统预定义类型。1字符类型Char(n) VarChar(n)2数值类型整数类型Integer SmallInt TinyInt浮点类型Real Float NumberP,S DecimalP,S货币类型Money SmallMoney3日期/时间类型Datetime SmallDatetime两者时间部分的精度不同,前者精确到分,后者精确到1/30秒。4文本和图像类型Text Image5二进制数据类型Binary(n) VarBinary(n)四、数据定义语言用来定义数据库对象。数据库对象是Sybase用来存储数据的逻辑实体,主要有:表(Table)、视图(View)、临时表(Temp Table);主键(Primary Key)、外键(Foreign Key)、索引(Index)、规则(Rule)、默认值(Default);存储过程(Stored Procedure)、触发器(Trigger)基本语法下面给出创建主要数据库对象的语法:1表创建表的基本语法是:Create tabledatabase.owner.table_name(column_name datatype default constant_expression|user|nullidentity|null|not null|constraint constraint_nameunique|primary keyclustered|nonclusteredwithfillfactor|max_rows_per_page=xon segment_name|referencesdatabase.owner.ref_table(ref_column)|check(search_condition)在建立大型的数据库时,可以考虑将创建表乃至其它数据库对象的过程写到一个文本里,当数据库系统出现问题时,在最坏的情况下,重建过程可以得到简化,也能比较好的对数据库的建设过程进行监视。创建表的过程完成下列活动:定义表的每一列;定义列名和列的数据类型并指定列是否处理空值;指定列是否具有IDENTITY属性;定义列级的完整性约束和表级的完整性约束上述过程可见,创建表的过程可以设定填充因子,将列置于段上,设计索引,外键等等。2索引索引对查询性能的影响很大,要引起重视。索引加速了数据检索,Adaptive Server有三类索引:复合索引索引包含多列;当两列或多列由于它们的逻辑关系而作为整体被查询时可建立这种索引;唯一索引索引列的值不允许重复;簇聚索引和非簇聚索引簇聚索引强迫Server不断地对表中数据排序或重排序以保证表中数据的物理顺序和逻辑顺序的一致性,簇聚索引对范围查询性能影响极大;非簇索引没有这样的要求,非簇聚索引对修改操作有利。何时建索引?如果手动插入identity列,则创建唯一索引以保证不插入已经存在的值;经常被排序访问的列,即被列在order by子句中的列,最好对其建立索引以便Adaptive Server能充分利用索引顺序的优点;如果列经常用手连接,则可对列建立索引,这样系统能更快地执行连接;包含主键的列一般都有簇聚索引,尤其是当它频繁地和其它表的列相关联;经常被范围查询的列最好为其建立簇聚索引,一旦查询范围内的第一个值被发现,则随后的值在物理上一定相近。簇聚索引对单值查询并没有什么优点。创建索引的基本语法:Create uniqueclustered|nonclusteredindex index_nameOn database.owner.table_name(column_name,column_name)on segment_namewith consumers=x上述语法包含了这样的暗示:将簇聚索引和它的基表分离在不同的段上;段是逻辑概念,但段可以位于不同的物理设备上,也即将簇聚索引和基表物理上分开。 这是不允许的,我们将在后面讨论设备、数据库、段、表分区时作详细讨论。3键(key)理解键是理解关联的关键。键和索引往往是一回事。键的意义在概念上,键用于参照完整性约束。主键是表的单值列的集合,主键通过在放置它们的表上创建一个单值索引来实现其单值性的。实际上主键是作为标志表的标志符而存在的,一旦主键确定,则由该主键就确定了的表也就确定了。外键是和其它表中的主键相关的列,主键和外键的关系确定了外键的值域,该值域即为相应主键的取值范围。这样就从理论上强制实现了表与表之间的参照完整性。前面创建表的语法里包含了创建键的成分。也可以通过其它途径创建主键和外键。Unique约束和Primary key约束的区别Unique约束和Primary key约束用来保证同一表中指定的列上没有重复值,这两个约束都产生唯一索引确保数据一致性,默认情况下,Unique约束产生唯一的非聚集索引,Primary key约束产生唯一的聚集索引。Primary key约束比Unique约束严格:Primary key列不允许有空值,Unique列允许有空值。4视图视图是查看多表中数据的方法,视图从基表派生,它并非物理存在,而是逻辑表;视图也系统提供管理表的一种安全机制。视图使得用户集中精力在感兴趣的数据集上。创建视图的语法:create view database.owner.view_name(column_name,column_name)as select distinct select_statementwith check option有distinct关键字的视图不能更新。当视图涉及关联时,定义视图要小心,这时是对多表操作,完整性显得很重要。五、数据操纵语言1Select语句基本语法:SELEC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论