当前位置:首页 > 技术与方案 > 数据库技术相关

Sybase数据库的备份与恢复

(2012-09-04 19:32:19)

Sybase是基于Client/Server体系结构的数据库软件产品。它由三个主要部分构成,一是进行数据库管理和维护的一个联机关系数据库管理系统Sybase SQL Server;二是支持数据库应用机的建立与开发的一组前端工具Sybase SQL Toolset;三是可把异构环境下其它厂商的应用软件和任何类型的数据连接在一起的接口Sybase Open Client/Open Server。对Sybase数据库的备份与恢复主要是针对Sybase SQL Server进行。
Sybase提供了两种不同类型的恢复:一类是系统自动完成的软件系统故障恢复。另一类是需要手工完成的介质故障恢复。

自动恢复是系统本身提供的防止系统失败的一种保护措施。每次Sybase重启时都要运行自动恢复机制。自动控制恢复机制确保在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退。
人工恢复是事先通过数据库备份工具命令或在线数据流式管理软件将数据库备份到磁带设备,然后通过对应的恢复命令和模式恢复数据库。

Sybase的传统备份与恢复

下面我们首先通过讨论如何定期备份数据库来了解Sybase数据库的传统备份与恢复方法。
对于Sybase数据库,一旦硬件或系统出现故障,当且仅当数据库备份及其事务日志的备份存在的情况下才能恢复数据库。

备份的任务通常由系统管理员或数据库所有者承担。然而,备份数据库或事务日志的权限可由数据库所有者传递给其它用户。

制定一个备份时间表是非常重要的。很难确定备份数据及其日志的“最佳”时间表。事实上,备份的频率决定恢复的质量。如果出现介质故障,可能丢失最大的数据量。对于大型的更新频繁的数据库,通常每天要做多次日志备份和至少一次数据库的备份。

在数据库活动时可以备份数据库或事务日志。这种类型的备份(Sybase独有的特性),称为动态卸出。动态卸出使备份变得方便,并使连续不断的操作成为可能。
动态卸出会部分降低Sybase的速度。

备份设备的选择

Sybase的备份设备列在系统表master..sysdevices中,可执行命令:
Select * From master..sysdevices
Where name like ”%dump%“.
来查看设备状况。
如果status列出的值是16或者24(表示设备是卸出设备),那么cntrltype列的值表示卸出设备的类型。卸出设备的值可以是:2~8。
2:表示数据是通过磁盘字节流接口卸出的。卸出设备可以是磁盘、部分磁盘,或操作系统文件。在不指明卸出设备时,默认为操作系统文件。
3~8:表示磁带卸出设备。
要增加卸出设备,可用系统过程sp_addumpdevice。语法为:
对磁带设备:
sp_addumpdevice ”type“,device_
name,
physicalname,cntrltype{,skip|noskip},size
对磁盘设备:
sp_addumpdevice ”disk“,device_
name,physicalname,cntrltype
将数据直接备份至磁带,可以保证数据的离线异地保存,但备份时间会延长。还可以采取先将数据库备份至本地磁盘,再在机器不繁忙时将备份备至磁带。
使用DUMP备份数据库
备份数据库时会备份此数据库的全部——它的系统表、用户定义的目标,以及事务日志。数据库卸出的格式是特殊的,它只能用Sybase装载程序装入(即用LOAD DATABASE 命令)。
对于master数据库或其数据与日志放在同一逻辑设备上的小型数据库(小于4M)使用DUMP DATABASE 命令备份数据库和事务日志。
对于大型数据库而言,应当把数据与事务日志放在不同的数据库设备上。(在建数据库时用CREATE DATABASE ON ……LOG ON……来实现)这样可以作到单独备份数据与日志。
除了按计划备份数据库外,在对数据库作大量修改之前或在对数据库作了不记日志的操作(如执行了DUMP TRAN WITH NO_LOG)之后,都要对数据库作备份

命令的使用
DUMP DATABASE 的语法:
DUMP DATABASE database_name to dump_device
DUMP DATABASE database_name to dump_device1 stripe on dump_device2 stripe on device3 ...{stripe on...}
数据库备份时会产生多个文件,做恢复时的文件个数要与之对应。

备份事务日志
当数据与日志是放在不同的设备时,可用DUMP TRANsaction 命令单独备份日志。卸出日志要比备份数据库花更少的时间和存储空间。与备份数据库相同,日志的备份同样可在数据库活动时发生。 日志在备份后将会被删除,所以在下一次数据库备份之前的日志备份需要连续保存才会有意义。
命令的使用:
DUMP TRANsaction database_name [to dump_device]
[WITH TRUNCATE_ONLY|WITH NO_LOG|WITH  NO_TRUNCATE]
注意:DUMP DATABASE只备份数据库,并不清除日志,若不使用DUMP TRAN命令删除日志,日志会越来越大。

总结

普通Sybase数据库的备份可采用dump命令来实现数据库的备份。对于商用或比较重要的数据库可采用在线数据流的备份模式,以加快数据备份和恢复速度,增强数据库备份和恢复的可管理性。
 

更多
关闭窗口 打印 
网站首页    -    联系我们    -   收藏本站    -    网站地图                                                               客户服务热线:0571-85023000
本网站所有网页信息已申请知识产权和著作权保护,版权归四海光纤公司所有,未经授权禁止任何人复制或镜像,违者必究。
公司主营:杭州光纤光缆视频会议系统,是专业的通信网络工程、视频会议系统建设专家

中华人民共和国备案号:浙ICP备10018243号