转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
系统集成备忘(Sybase介绍、产品概述和基础知识:之二)         ★★★★

系统集成备忘(Sybase介绍、产品概述和基础知识:之二)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1592 更新时间:2009/4/22 23:09:38
始分区或操作系统文件。它有两个对应的名称:逻辑名和物理名。NT仅支持设备映射到文件。所有的数据库都创建在数据库设备上。增加一个新的数据库设备时,必须对这些设备“初始化”。初始化的过程就是将物理磁盘、磁盘分区或操作系统文件变为SYBASE数据库可以识别的设备。初始化数据库设备使用DISK INIT命令。
设备与数据库之间的关系:多对多关系。一个数据库可以被创建或扩充到多个设备上,一个设备也可以被用来存放多个数据库。不同的设备操作系统可以对其并行地读写,因此我们可以人为地将一个数据库放置到多个数据库设备上。
设备的分类:Database Device和Dump Device。数据库设备存放数据库和事务日志,转储设备用来存放数据库或日志的备份。

2.4.2.1.1 默认设备
在没有指定设备的情况下,用户创建的任何数据对象自动存放在默认设备上。初始安装后,系统的主设备master被预指定为默认设备,因此要尽快创建自己的默认设备。确保系统主设备安全,指定仅被日志使用的设备不是默认设备。
Sp_diskdefault 设备名[,DefaultOn|DefaultOff] 

2.4.2.2 磁盘镜像
磁盘镜像是出于数据库安全性的考虑,当介质失败时,磁盘镜像能提供不间断恢复。磁盘镜像是磁盘上的数据的绝对拷贝。如果某一硬盘事故发生,则该被损坏的拷贝就自动变成离线状态,因而所有的读写都被引向未被损坏的拷贝。
Sybase的磁盘镜像是在设备级上进行的,因此磁盘镜像实质上是设备镜像。当对某一设备进行镜像操作时,Sybase自动创建一个附加设备,由镜像处理程序将原设备上的所有数据拷贝到镜像设备上。
    如果要使某一数据库成为镜像,被分配给该数据库的每一设备都必须成镜像。Master设备在服务器中地位特殊,如果它损坏了,SQL Server将崩溃。因此,如果有可能总是要镜像Master设备(在另一磁盘上)。
    
2.4.3 创建与使用段
    段(Segment)是数据库设备上磁盘空间的逻辑组合,它可以看作是指向一个或多个数据库设备的标签。利用段可以控制数据库对象的存放位置,可以将数据库对象分类存放到不同的段上。
    设备与段之间的关系:多对多关系。一个设备上可以创建多个段,一个段也可以覆盖多个设备。
数据库设备从逻辑上被划分为数据库段以允许将某一特定的对象放置在指定的段上(创建对象时指定),一数据库设备可拥有多达192个段,一段可使用255个逻辑设备上的存储空间。当用户创建一个数据库时,SQL SERVER 会自动在该数据库中创建三个段: SYSTEM、LOGSEGMENT 、DEFAULT,这三个段分别用来存储数据库的系统表、事务日志和其他数据库对象 

2.4.3.1 使用段的优点
1)控制空间的使用:放在一个段上的数据库对象不会在段外增长;
2)提高性能:处于不同磁盘设备上的段可以并行地读写;
3)处理大表:利用段,可以将一个大表分段放在独立的物理设备上,如将一个表的文本或图象数据存储另外的一个段上。
两个数据库放在同一设备的不同段上,它们不会相互影响;当数据库增加空间时,增加的空间会自动分配到它的每一个段上;

2.5 使用阈值管理
    阈值(Threshold)管理是一种自动监控数据库自由空间的机制,Sybase的阈值管理允许用户为数据库的某个段上的自由空间设置阈值并定义相应的存储过程。当该段上的自由空间低于所置头阈值时,Sybase自动运行相应的存储过程。
    在一个实际运行的数据库中,日志的增长速度一般要高于数据的增长,一旦日志段的自由空间用尽,SQL Server在默认情况下会挂起所有数据操纵事务,客户端应用程序停止执行。
    在每个分离的段上存储其事务日志的数据库均自动设置有最后机会阈值(Last Chance Threshold),其阈值是备份事务日志所需的自由空间的估计值。当该段上的自由空间低于所置阈值时,Sybase自动运行名为sp_thresholdaction的存储过程。该过程的名称及参数由系统预定义,内容由用户编写。

2.6 数据库与事务日志 
通常用户数据库由系统管理员创建,它的默认属主是dbo。系统过程sp_changeddbowner可改变数据库的属主关系,它必须由数据库管理员在要改变属主关系的数据库中执行。 
日志文件是用来记录数据库每一次修改活动的文件。SQL Server中的每一个数据库都有自己的日志文件,即系统表syslogs,也称为事务日志。事务日志是撤消事务和出现故障时恢复事务的依据。在某些情况下,事务日志比数据本身更为重要。
数据库的修改是以事务为单位进行的。一个事务就是一个操作序列,这些操作要么全做,要么全不做,它是一个不可分割的工作单位。任何一个事务具备如下特征:
1)执行的原子性(Atomic);
2)保持数据的一致性(Consistency);
3)彼此的隔离性(Isolation);
4)作用的持久性(Durability);
上述事务的四个特征被称为事务的ACID准则。
      事务在运行过程中,SQL Server把事务开始、事务结束以及对数据库的插入、删除和更新等每一个操作作为一个日志记录存放到事务日志中。事务中的更新操作首先在数据库缓冲区(内存)中进行,缓冲区分别有用来记录操作活动的数据页(data page)和日志页(log page)。当运行到commit tran时,日志页首先从缓冲区写到磁盘上,而后数据页从缓冲区写到磁盘上,即遵循“先写日志(write_ahead log)”的原则,这样保证出现故障的情况下,通过日志能够得到最大限度的恢复。恢复必须撤消发生故障时还未提交的事务,已完成的事务若仍有未从缓冲区写到数据库设备中,还要重新运行该事务。

2.7 数据库安全性与用户管理 
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。SQL Server的安全管理是一种基于角色(role)的管理方法,位于不同权限层次(或角色)的用户具有不同的用户权限。
      规定用户权限有三个因素:用户、数据对象和操作,即什么用户在哪些数据对象上可以执行什么操作。
      访问SQL Server中数据的四道屏障:
1)操作系统——操作系统登录
2)Sybase服务器——服务器登录
3)Sybase数据库——数据库用户登录
4)数据库对象——对象授权

2.7.1 用户管理概述
在SYBASE数据库中,用户管理是系统管理的一个重要组成部分,但其重要性却往往被人忽视。许多时候,操作数据库的命令不成功常与用户管理有关,而许多误操作命令的发生也可以通过用户管理来避免。因此,弄清用户管理的一些基本概念,对成功进行数据库系统管理有重要的作用。

2.7.1.1 SQL SERVER注册用户和数据库用户 
刚接触到这两个概念的时候,可能会有所混淆,但只要了解SYBASE SQL SERVER的结构后,就会清楚。SYBASE SQL SERVER为一进程,进程本身可管理多个数据库。而有些数据库是相互独立的,有些数据库是可以共用的,如tempdb和sysbsystemprocs数据库。SQL SERVER与本身数据库的关系犹如城市与其中楼房的关系,当进入某一城市时需某一合法的身份,但进入城市的人并非每个楼房都可进入,即使允许进入也不能干某些事。SQL SERVER注册用户与数据库用户关系即是如此。当SQL SERVER创建注册用户后,该用户就能合法进SQL SERVER,该注册用户信息会放在master数据库中的 syslogins表中。但只有注册用户成为某一数据库用户,并且对该用户赋予某些权限时,该注册用户才能在限制条件下使用数据库中的表。 

2.7.1.2 SQL SERVER数据库用户分类 
在SQL SERVER中用户一般分为以下四种:
1)sa用户。
2)数据库属主
3)数据库对象属主。
4)数据库普通用户。
sa用户在SQL SERVER中为最高等级用户,SQL SERVER中所有命令都可执行。
数据库属主(dbo)用户可对本数据库中所有对象(如表、视图、存储过程等)进行操作,一般有三种途径创建:
a.为系统管理员的用户;
b.系统管理员的用户将创建数据库的权限赋予某个SQL SERVER中注册用户,由该用户进行数据库的创建后,自然形成数据库属主;
c.系统管理员的用户创建数据库后,将某个SQL SERVER中注册用户变为数据库的属主。
数据库对象属主为创建该对象的用户,在实际的数据库的管理中,一般为数据库属主。
数据库普通用户必须在数据库属主对本数据库中某些对象(如表、视图、进程等)赋予某些权限时,才可对本数据库中某些对象进行允许的操作。
几者的关系是相互包含的:系统管理员的用户在进入某个数据库后,自然成为该数据库的属主,数据库属主可看作为特殊的数据库普通用户。 

2.7.2 别名(aliases)与组(group) 
别名(aliases)与组(group)在数据库管理中是经常用到的,它能简化数据库用户管理,方便对用户的监控。
所谓别名(aliases)即将SQL SERVER中的注册用户以同一个数据库用户的身份来访问数据库,并具有与该用户相同的权限。也就是说,在数据库中只要建立一个数据库用户,对该数据库用户各种操作定义好,并使SQL SERVER 中已经定义好注册用户成为该数据库用户的别名用户后,即拥有与该用户相同的权限。这样一来,注册用户不必成为数据库的用户即可访问数据库,对所有别名用户的权限的控制只需通过对一个数据库用户的控制达到。如:有一SQL SERVER名为TEST.SER,有一名为EXAMPLE的数据库,其中有一名为OK的表,当系统管理员为TEST.SER创建名为JOHN和KATE的注册用户,EXAMPLE的数据库中有一名为OK_SELECT的数据库用户,该数据库用户有对OK表的查询权限。将JOHN和KATE这两个注册用户变为OK_SELECT的别名后,JOHN和KATE即可进入数据库,并拥有与OK_SELECT的数据库用户相同的权限。
组(group)为数据库用户的集合,即通过对组(group)的权限的控制达到对该组中数据库用户的控制,但也可对该组中数据库某些用户进行格外的权限控制。在上例中的EXAMPLE的数据库中有一OK_INSERT的组,它对OK的表有插入的权限,数据库中有两个用户:MARRY和KITY,当这两个用户加入到OK_INSERT组后,MARRY和KITY就有对OK表的插入的权限。对MARRY和KITY相同的权限操作可通过对OK_SELECT组的控制可得。而使MARRY对OK表有查询权限,仅对MARRY用户赋权即可。而别名则不行。 

2.7.3 SYBASE SQL SERVER的角色 
一般在管理分工较细的数据库系统中,sa用户往往被分为三种角色:系统管理员角色(SA role)、系统安全员角色(SSO role)和操作员角色(OPER role)。
sa用户往往被锁住,其权力被以上三种角色所瓜分。这三种角色将分别用不同的数据库注册用户承担。
角色是权限的集合。系统预定义角色: 一个真正的数据库管理员应该是整个服务器及其数据库的拥有者,具有管理服务器及其数据库的所有权限。在一个大的系统中,数据库管理员往往不只由一人承担,而是将管理任务进行功能划分,每人提当不同的责任。系统预定义角色就是为适应这种要求而设计的。
 1)系统管理员(sa_role)
sa_role角色拥有执行与数据库具体应用无关的管理权限:
 a.安装与更新SQL Server
 b.管理服务器的物理存储
 c.配置系统设置参数;
 d.创建用户数据库;
 e.授予SQL Server用户权限
 ┅┅
 2)系统安全管理员(sso_role)
a.sso_role用来实施安全上敏感的操作,执行有关安全性的任务:
 b.建立服务器登录帐户;
 c.管理口令;
 d.授予除sa_role之外的任何角色;
 e.管理审计系统;
 ┅┅
 3)操作员(oper_role)
a.oper_role执行全服务器范围的数据库操作,如备份与恢复任意数据库等:
 b.转储数据库与日志
 c.转载数据库与日志
 ┅┅

2.8 数据库的备份与恢复 
数据库的备份与恢复是SQL Server保障数据安全的一种重要手段,为防止意外,数据库管理员必须定期和经常制作数据库的备份。一旦系统出现故障,数据能够得到及时的恢复。

2.8.1 基本概念
(1)事务处理及其日志
SQL Server使用事务来跟踪所有数据库变化。事务是SQL Server的工作单元。一个事务包含一条或多条作为整体成功或失败的T_SQL语句。每个数据库都有自己的事务日志,即系统表syslogs,事务日志自动记录每个用户发出的每个事务,它影射了每个事务足够多的信息,以确保数据能够被恢复。

(2)检查点(CheckPoint)
服务器在检查点发生时更新数据。在服务器发出一个检查点时:
1)更新数据。
2)在日志中记录下执行检查点的标记。
检查点可把所有“脏页”写到数据库设备上,“脏页”是指从上一次检查点以来,在内存中修改、但没有在磁盘上修改的页。SQL Server的自动检查点机制保证了被完成的事务修改的数据页有规律地从内存中的缓冲区写到数据库设备上。

2.8.2 数据库备份
若硬件介质出现故障(如磁盘损坏),当且仅当事先已对数据库及其事务日志作了备份,才能恢复数据库。
      注意:绝对不要使用操作系统的拷贝数据库设备,把这样一个拷贝装入SQL Server将导致大量数据库受损。
      备份的类型:
1)完全备份
2)增量备份——备份事务处理日志
说明:
 a.只有把事务日志放在单独的设备上,才能进行增量备份;
 b.备份事务日志会截断日志,因此备份的内容是自上次备份以来的事务处理。
 c.备份之前要启动备份服务器,并最好创建转储设备。
备注:truncate_only与no_log选项用于删除事务处理而不作拷贝。Truncate_only截断日志;在事务处理日志完全满时用no_log,它不为数据库建立检查点。两个选项都会丢掉日志。当使用了这两个参数后,应及时备份整个数据库。no_truncate拷贝日志但不截断日志,在出现介质错误时使用该选项。

2.8.3 数据库的恢复
使用load database加载备份到现有数据库,数据库可以是用于创建转储的数据库,也可以不是。
      由于事务日志在恢复数据库中的特殊作用,应定期备份数据库及其事务日志,而且事务日志的备份要更频繁一些。如:数据库每周备份一次,事务日志每天备份一次。
SQL Server提供了两种不同类型的恢复:一类是系统自动完成的恢复;另一类是人工完成的恢复。 

1)系统自动恢复 
系统自动恢复是在系统软件出现故障的情况下通过重新启动SQL Server进行恢复。 
自动恢复从master数据库开始,然后是model数据库,再是temporary数据库,最后是用户数据库。在每个数据库上,恢复机制观察事务日志。如果日志写入比数据库更近的数据,则向前恢复数据库。如果事务尚未完成,则要回退它们。 

2)介质故障的恢复 
一旦介质发生故障,只有通过以前备份的数据库和事务日志才能恢复数据库,为此我们需要经常备份数据库和事务日志。备份数据库和事务日志我们使用dump命令,而恢复数据库和事务日志我们使用load命令。 
与创建数据库需要一个数据库设备类似,我们备份数据库和事务日志也需要一个卸出设备。增加卸出设备可以通过系统过程sp_addumpdevice来实现。卸出设备可以是磁盘、磁带或操作系统文件。 
在备份数据库前的所有事务日志备份都是没有意义的。我们一般不经常备份数据库,但我们要经常备份事务日志。这是因为备份事务日志比备份数据库需要更少的时间和存储空间。 
3)恢复用户数据库 
要恢复已被破坏的数据库,可以按如下步骤进行: 
a.用带no_truncate选项的dump命令卸出用户数据库事务日志。 
b.用和被破坏的数据库的同样的结构建立一个新的数据库。 
c.用load命令重新装入数据库和事务日志。 

2.9 数据库与T-SQL语言 
关系数据库以关系模型为基础,它由以下三部分组成:
1)数据结构——模型所操作的对象、类型的集合
2)完整性规则——保证数据有效、正确的约束条件
3)数据操作——对模型对象所允许执行的操作方式
    关系(Relation)是一个由行和列组成的二维表格,表中的每一行是一条记录(Record),每一列是记录的一个字段(Field)。表中的每一条记录必须是互斥的,字段的值必须具有原子性。

2.9.1 SQL语言概述
      SQL(结构化查询语言)是关系数据库语言的一种国际标准,它是一种非过程化的语言。通过编写SQL,我们可以实现对关系数据库的全部操作。
1)数据定义语言(DDL)——建立和管理数据库对象
2)数据操纵语言(DML)——用来查询与更新数据
3)数据控制语言(DCL)——控制数据的安全性
      T-SQL语言是Sybase对SQL92标准的一种扩展,主要在它的基础上增加了三个方面的功能:自己的数据类型/特有的SQL函数/流程控制功能。
      T-SQL中的标识符使用说明:标识符由1-30个字符或数字构成,但首字符必须为字母。临时表的表名以#开头,长度不能超过13个字符。

 oswx 回复于:2004-03-25 14:03:15 真实好!建议精华!

 ywtmh 回复于:2004-03-26 09:01:40 论坛里面已经有好多这样的介绍了!

 大夫 回复于:2004-03-26 09:49:09 不错,我整理的资料都不是我独家创造。我都差不多是收集N多别人的资料后,根据我自己集成的需要整理出来的,整理这篇的目的,是怕我N久后忘记了Sybase,而项目又要用的时候,可以拿来快速复习一下而已(不然我还要去找书一点点的查,找资料一篇一篇看,我不得哭死?)。

 cshongji 回复于:2004-03-26 11:03:20 就当复习了一次,谢谢楼主!~~~~~~~~~~~~~~

关闭本页  

上一页  [1] [2] 


[其他](INTERBASE之二)INTERBASE的发展史  
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台