转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
sybase基础知识3         ★★★★

sybase基础知识3

作者:闵涛 文章来源:闵涛的学习笔记 点击数:687 更新时间:2009/4/22 22:54:48

第三讲  数据库与事务日志

一、创建用户数据库
Create Database 数据库名
 On 设备_1=Size_1,//单位:M
    设备_2=Size_2,
……
log on 日志设备=Log_Size
[With 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
    go

3.删除数据库
 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 master

decl are @vedvno int
select @vdevno=max(convert(tinyint,substring(convert(binary(4),d.low),v.low,1)))+1
from master.dbo.sysdevices d,master.dbo.spt_values v
where v.type=’E’and v.number=3
declare @v_str char(2)
select @v_str=convert(char(2),@vdevno)
print @v_str

disk init
   name=”YDDATA”,
   physname=”D:\Syb_Data\YDDATA.dat”,
   vdevno=@vdevno+1,
   size=153600
disk init
   name=”YDINDEX”,
   physname=”D:\Syb_Data\YDINDEX.dat”,
   vdevno=@vdevno+2,
   size=102400
disk init
   name=”YDLOG”,
   physname=”D:\Syb_Data\YDLOG.dat”,
   vdevno=@vdevno+3,
   size=76800

create database YDMISDB
on YDDATA=300,YDINDEX=200
log on YDLOG=150

use YDMISDB

execute sp_addsegment indexdev,YTMISDB,YTINDEX
execute sp_dropsegment “default”,YTMISDB,YTINDEX
execute sp_dropsegment system,YTMISDB,YTINDEX

use master

load database YDMISDB from ‘d:\yd_dump\ydmis_backup.dmp’

online 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 Database
Create Table
Create View
Create Procedure
Create Rule
Create default
命令权限授权与收权:
Grant 命令权限组合 to 组名|用户名|角色
Revoke 命令权限组合 from 组名|用户名|角色
2.对象权限
Select
Update
Insert
Delete
Reference
Execute
对象权限授权与收权:
Grant 对象权限组合 on 数据库对象 to public|组名|用户名|角色
[With Grant Option]

Revoke 对象权限组合 on 数据库对象 to public|组名|用户名|角色
From public public|组名|用户名|角色
[Cascade]
授权与收权举例:
◇Grant Insert,Delete on Employee
 to user_1,Group_1
◇Grant Execute on Pro_culculate
 to public
◇Grant Select on Employee(emp_id,emp_name)
 to user_3
◇Grant All on Employee
 to user_4
◇Revoke update on Employee(emp_id,emp_name)
 from user_5
◇Revoke 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_truncate]
Truncate_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。
四、制定备份与恢复的策略
  由于事务日志在恢复数据库中的特殊作用,应定期备份数据库及其事务日志,而且事务日志的备份要更频繁一些。如:数据库每周备份一次,事务日志每天备份一次。

 


[SyBase]sybase基础知识(3)  
教程录入: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……
    咸宁网络警察报警平台