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

Sybase入门

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3506 更新时间:2009/4/22 23:09:48
on students to zhang1 with grant option 
6> go 
7> grant update on students(name,native) to zhang1 
8> go 
9> sp_helprotect 
10> go 

八、数据库备份与恢复 
SQL Server提供了两种不同类型的恢复:一类是系统自动完成的恢复;另一类是人工完成的恢复。 

1.系统软件故障恢复 
系统自动恢复是在系统软件出现故障的情况下通过重新启动SQL Server进行恢复。 
自动恢复从master数据库开始,然后是model数据库,再是temporary数据库,最后是用户数据库。在每个数据库上,恢复机制观察事务日志。如果日志写入比数据库更近的数据,则向前恢复数据库。如果事务尚未完成,则要回退它们。 
所谓事务日志就是一张系统表,syslogs。在这张表中记录着对数据库的更新请求,例如插入、修改和删除。查询操作不记入事务日志中。 
2.介质故障的恢复 
一旦介质发生故障,只有通过以前备份的数据库和事务日志才能恢复数据库,为此我们需要经常备份数据库和事务日志。备份数据库和事务日志我们使用dump命令,而恢复数据库和事务日志我们使用load命令。 
与创建数据库需要一个数据库设备类似,我们备份数据库和事务日志也需要一个卸出设备。增加卸出设备可以通过系统过程sp_addumpdevice来实现。卸出设备可以是磁盘、磁带或操作系统文件。 
sp_addumpdevice "type",device_name,physicalname 
例: 
sp_addumpdevice "disk", "db114", "/usr/sybase/zyl114.bak",1 

(1) 备份数据库和事务日志 
备份数据库的语法为: 

dump database database_name to dump_device 

例如: 
dump database tele114 to db114 

备份事务日志的语法为: 

dump transaction database_name to dump_device 
[with truncate_only | with no_log | with no_truncate] 
前两项在日志中删除提交的事务,后一项不删除。 
在备份数据库前的所有事务日志备份都是没有意义的。我们一般不经常备份数据库,但我们要经常备份事务日志。这是因为备份事务日志比备份数据库需要更少的时间和存储空间。 

(2)恢复用户数据库 
要恢复已被破坏的数据库,可以按如下步骤进行: 
· 用带no_truncate选项的dump命令卸出用户数据库事务日志。 
· 用和被破坏的数据库的同样的结构建立一个新的数据库。 
· 用load命令重新装入数据库和事务日志。 

装入数据库的语法为: 
load database database_name 
from file_name 

装入事务日志的语法为: 
load transaction database_name 
from file_name 

例:数据库备份 
1> dump db_name to file_name 
2> go 
数据库恢复 
1> load db_name from file_name 
2> go 
日志备份 
1> dump transaction db_name to file_name 
2> go 
日志恢复 
1> load transaction db_name from file_name 
2> go 
日志删除 
1> dump transaction db_name with truncate_only 
2> Go 

(3)master数据库的恢复 
A、保存系统表的拷贝:sysdatabases、sysdevices、sysusages、sysloginroles和Syslogins。 
B、转储主设备上的用户数据库。 
C、关闭SQL Server并使用buildmaster建立新的master数据库或主设备。 
Buildmaster -m ...仅重建master数据库 
Buildmaster ...重建主设备 
D、已单用户模式启动SQL Server( Master-Recover ) 
Startserver -f RUN_服务器名 -m 
E、若master数据库用alter database 命令扩展过,严格重建它在sysusages中的分配。 
F、若Backup Server 的网络名(接口文件中的名字)不是SYB_BACKUP,在sysservers中改动网络名。 
Update sysservers set srvnetname="PRODUCTION_BSRV" where srvname="SYB_BACKUP" 
G、使用showserver查看,检查确保Backup Server正运行,若有必要,重启Bakup Server 
H、装载master的备份。 
Load database master from 'master.bak' 
Load database执行成功后,SQL Server 自动关闭。 
I、若自master的上次转储以来增加过数据库设备,执行disk reinit命令以重建sysdevices。 
J、若执行了disk reinit,或自上次转储以来使用过create database或alter database,执行disk refit 重建sysusages和sysdatabases表,执行完毕后SQL Server自动关闭。 
K、检查一致性:比较sysusages和sysdatabases的备份和新的联机版本,对每个数据库执行dbcc checkalloc, 并检查每个数据库中重要的表;若发现错误重新执行disk reinit和disk refit。 
L、若恢复了整个主设备,则恢复model数据库。 
Cd $SYBASE/scripts 
Setenv DSQUERY 服务器名 
Isql -Usa -P口令 -S服务器名 M、重新装载所有受影响的用户数据库。 
N、恢复服务器用户ID。 
O、以多用户模式重新启动SQL Server。 
(4)恢复model 数据库 
Buildmaster -d/设备名 -x 
(5)恢复sybsystemproces数据库 
A、删除sybsystemproces数据库(若物理磁盘损坏,删除设备,使用Disk init 重建设备) 
B、重建数据库 
Create database sybsystemporces on 设备名=数据库大小 
C、恢复数据库 
Cd $SYBASE/scripts 
Setenv DSQUERY 服务器名 
Isql -Usa -P口令 -S服务器名 九、几个实用程序 
1、bcp 
以用户指定的形式将数据库表拷贝到操作系统文件中,或从操作系统文件中拷贝一个数据库表。提供了在数据库表和操作系统文件之间传递数据的一个方便、快速的方法。 

bcp [[database-name.]owner.]table_name {in|out} datafile [各种开关] 

其中,table_name是想要拷贝的数据库表名;{in/out}为拷贝方向,in表示从文件到数据库的拷贝,out表示从数据库到文件的拷贝;datafile是操作系统文件的全路径名。 
常用的开关有: 
-f formatfile----存有上次使用bcp处理同一表时得到的应答文件的全路径名,格式文件名的扩展名为.fmt。使用格式文件,省去了再重复回答前面的问题。 
-U username----允许用户指定一个注册名。 
-P password----允许用户指定当前的SQL Server口令。如果未使用-P选项,bcp将提示输入一个口令。 
-S Server----允许用户指定与其相连的SQL Server的名字。 
例:在客户端备份tele114数据库中code_1th表,按照code_1th.fmt的格式 
c> bcp tele114..code_1th out code_1th.txt -杅code_1th.fmt 朥sa 朠 
2、 isql 
与SQL Server交互的SQL句法分析器。 

isql [各种开关] 

常用的开关有: 
-U username----允许用户指定一个注册名。 
-P password----允许用户指定当前的SQL Server的口令。 
-S Server----允许用户指定与其连接的SQL Server的名称。 
-i输入文件 
-o输出文件 
终止一条命令:go 
清除查询缓冲:reset 
调用编辑器:vi 
执行一条操作系统命令:!!命令 
退出isql:quit或exit 

3、showserver 
显示当前在本机上正在运行的SQL Server。 
showserver 
4、startserver 
启动SQL Server。 

startserver [各种开关] 

常用的开关有: 
-f runserverfile----指定一个运行服务器文件名,每次重启SQL Server时,以这个文件为参考。在我们的实际机器上,这个文件名为RUN_SYBASE或RUN_SYB_BACKUP。 
-m ----以单用户的方式启动SQL Server。这个方式用于恢复master数据库。 

5、syman 
显示联机的库例程,系统过程及实用程序手册。 
syman [keyword] 

syman实用程序的联机文本文件存放在$SYBASE下的doc子目录中。 
6、dbcc 数据库一致性检查 

Dbcc 用来检查一个数据库的逻辑一致性和物理一致性。通常在下面的情况下使用dbcc: 
x 常规数据库维护 
x 确定当一个系统错误后可能损坏的范围 
x 在备份数据库之前 
x 怀疑数据库受到损坏。 
dbcc有两个主要功能:可检查分配表结构(命令checkalloc、tablealloc和Indexalloc);可检查页链接和页级、行级上的数据指针。 
只有表属主可以用checktable、fix-text和reindex选项执行dbcc命令。只有数据库属主可以使用checkdb、checkalloc、checkcatalog、indexalloc和tablealloc选项。只有系统管理员可以使用dbrepair选项 
dbcc命令的完整语法格式如下: 
Dbcc 
{checktable({表明|表标识}[,Skip_ncindex])| 
Checkdb [(数据库名[,skip_ncindex])]| 
Checkalloc [(数据库名[,fix|nofix])]| 
Talbealloc ({表明|表标识}[,{full|optimized|fast|null}[,fix|nofix]]))| 
Indexalloc ({表明|表标识},索引标识[,{full|optimized|fast|null}[,fix|nofix]]))| 
Checkcatalog [(数据库名)] 
Dbrepair (数据库名,dropdb)| 
Reindex ({表明|表标识})| 
fix_text({表明|表标识})} 
十 、SQL客户端软件 
1. DOS状态下SQL客户端软件 
软件位于c:\sqlbin 
运行步骤: 
运行TCPIP协议程序tcp.bat 
c:\nwclient\lsl /c:\nwclient\net.cfg 
c:\nwclient\ne2000 
c:\nwclient\tcpip 
(2) ping 129.6.114.201 (服务器地址) 
返回129.6.114.201 is alive 正常 
返回No response from 129.6.114.201 为异常 
(3)运行sybclenv.bat------------------ Sybase的DOS接口启动程序,内容如下: 
set path=c:\sqlbin\binr;%path% -------------Sybase的DOS接口程序所在目录 
set dsquery=129.6.114.201,4114--------------连接服务器IP地址和端口号 
c:\sqlbin\binr\dbnovtcp 
C:\sqlbin\binr\rmineti 

dbping 129.6.114.201------------检查是否连通SYBASE服务器 
连接成功出现“Successfully opened network connection" 
(5) isql 朥sa 朠 
1> sp_help 
2> go 

十一、附录 
附录1:只有在master数据库中才能有的系统表 
系统表名 表中的内容 
Sysconfigures 一行记录了用户可设置的配置参数 
Syscurconfigs 有关SQL Server当前正使用的配置参数情况 
Sysdatabases 一行记录了SQL Server中的一个数据库 
Sysdevices 一行记录了数据库的每一磁带转储设备,磁盘转储设备,数据库设备和磁盘分区 
设备和磁盘分区 
Syslocks 有关动态锁的情况 
Syslogins 一行记录了每一有效的SQL Server的用户帐号 
Sysmessages 一行记录了每一系统错误或警告 
Sysprocesses 有关Server进程的情况 
Sysremotelogins 一行记录了一个远程用户 
Sysservers 一行记录了一个远程SQL Server 


附录2:Sysusages 一行记录了分配给一个数据库的每一个磁盘分析 


系统表名 表中的内容 
Sysalternates 一行记录了SQL Server用户在当前数据库中的标识 
syscoumns 一行记录了一个表或视图的每一列,一个存储过程的每一参数 
syscomments 一行或多行记录了每一视图、规则、缺省值、触发器和存储过程 
sysdepends 一行记录了由一个过程、视图或触发器所参照的每一过程,视图或表 
Syskeys 一行记录了每一主码,外码或公用码 
Syslogs 
sysobjects 一行记录了每一表、视图、存储过程、日志、规则、缺省值、触发器和临时表(仅在tempdb中) 
sysprocedures 一行记录了每一视图、规则、缺省、触发器和过程 
syprotects 记录用户的权限信息 
sysegments 一行记录了每一片段(命名的的磁盘分片汇集) 
systypes 一行记录了每一由系统提供的和用户定义的数据类型 
sysusers 一行记录了一个数据库的合法用户,或用户组 


附录3: 由SQL Server提供的系统过程功能和执行权 
过程名 功能 执行权限 
sp_addalias 把数据库中的一个用户映象到另一个用户 数据库所有者 
sp_addgroup 向数据库增加分组,在授权和撤权命令中分组被用作聚合名字 数据库所有者 
sp_addlanguage 为服务器定义可替换语言,并把它增加到master,dbo,syslanguages中。 系统管理员 
sp_addlogin 通过向master.dbo,syslogins中增加表项授权新的SQL Server用户 系统管理员 
sp_addremotelogin 通过向master,bo,sysremotelogins增添表项授权新的远程服务器用户 系统管理员 
sp_addsegment 在指定的数据库设备上创建一个段 数据库所有者系统管理员 
sp_addserver 定义远程服务器,或定义本地服务器名字 数据库所有者系统管理员 
sp_addtype 创建用户定义的数据类型&nbs

上一页  [1] [2] [3] [4] [5] [6]  下一页


没有相关教程
教程录入: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……
    咸宁网络警察报警平台