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

Sybase入门(三)

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

八、数据库备份与恢复
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 其中,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 
 


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