浅谈Sybase数据库的维护
2013-04-29罗继云
罗继云
摘 要:Sybase数据库维护主要包括备份和恢复两项重要内容,结合实际工作经验,具体从Sybase数据库的备份和恢复两方面对Sybase数据库的软件维护进行探讨。
关键词:Sybase数据库 维护 备份 恢复
中图分类号:TP311.138 文献标识码:A 文章编号:1007-3973(2013)009-110-02
1 引言
Sybase数据库是美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或Windows平台上客户机/服务器环境下的大型数据库系统。由于Sybase数据库采用集中式数据管理方式,其数据库服务器一端数据相对集中,数据风险比较集中,因此如何做好数据库的维护,成为至关重要的问题。
Sybase系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server 提供了两种不同类型的恢复机制:一类是系统自动完成的恢复;另一类是人工完成的恢复,这是通过 DUMP 和 LOAD 命令来执行人工备份和恢复工作。
2 Sybase数据库的备份
数据库的备份可以通过dbbackup命令进行完全备份和增量备份,此外可以执行备份从服务器端到客户端。
(1)完整备份与增量备份。
一个完整的备份主数据库文件和事务日志文件的副本。这是最基本和最重要的备份类型,它通常是不实际的执行完整备份大型数据库而是常用的增量备份。增量备份使得单独的交易记录副本。它作为一个循环,一个完整的备份是由给定数量的增量备份形成。由于只有交易记录会被复制,增量备份使用更少的时间和资源,使得它特别适合于大型数据库。
(2)在线与离线备份。
在不停止数据库服务器的情况下进行联机备份提供了一致的数据库快照。具有高可用性要求的数据库在线备份是非常必要的,这种备份将带来更大的服务器消耗。相比之下,可以采取定期进行脱机备份数据库也非常必要。
(3)服务器端与客户端的备份。
从客户端使用dbbackup命令可以进行联机备份。这就是客户端的备份,并备份到客户机上的数据库中,也可以进行联机备份在服务器上发出BACKUP语句在SQL。服务器端备份通常要更快一些,客户端的备份的速度取决于网络传输速度。
(4)如何进行备份。
在命令行其语法如下:
DBBACKUP [参数] 目录
-c 指定要备份的数据库连接字符串;-D 创建一个主数据库文件的备份;-T 只创建一个事务日志备份;-R 重命名事务日志备份;-X 删除任何以前的事务日志备份,并创建一个新的。
例如,如果你创建你的第一个备份,使用下面的命令:
DBBACKUP-C“UID = DBA; PWD = SQL; DBN = MyDatabase的”
接下来的几个备份,增量备份,所以使用以下命令:
DBBACKUP-T-R-C“UID = DBA; PWD = SQL; DBN = MyDatabase的”
1)SQL语句备份数据库。您必须具有DBA权限使用BACKUP DATABASE,其语法如下
BACKUP DATABASE
[TRANSACTION LOG ONLY]
[TRANSACTION LOG RENAME [MATCH]
2)从Sybase Central
从Sybase Central进行备份,打开Utilities文件夹下的“Adaptive Server Anywhere”,然后双击“备份数据库”,打开一个对话框,它会引导你备份过程。
备份事务日志:
当数据与日志是放在不同的设备时,可用DUMP TRANsaction命令单独备份日志。卸出日志要比备份数据库花更少的时间和存储空间。与备份数据库相同,日志的备份同样可在数据库活动时发生。
命令的使用:
DUMP TRANsaction database_name [to dump_device] [WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]
注意:DUMP DATABASE只备份数据库,并不清除日志,若不使用DUMP TRAN命令删除日志,日志会越来越大。
3 Sybase数据库的恢复
数据库的恢复:必须使用nsrsybrc 来做;如果想恢复数据到新的数据库,必须先使用 for load 选项创建新库;nsrsybrc不创建数据库,如果必要,应该先创建数据库再使用nsrsybrc程序。Sybase建议保留数据库定义和设备分配的硬拷贝,以便于再建。
恢复到新的数据库;建立新的数据库和旧数据库拥有相同的设备分配;设置NSR_SERVER,NSR_CLIENT 环境变量以节省恢复时间。
灾难恢复:如果主磁盘包括SQL_server 和NetWorker客户程序遭到损坏。
(1)重新安装NetWorker 客户端程序,数据库Server 软件,BSMS模块。
(2)使用打印出的数据库设备分配重新创建数据库。
(3)恢复master库:
重建丢失的master设备,使用“buildmaster”;
单用户模式运行数据库服务器;重建一些master的额外设备;确信数据库服务器在sysservers表中有正确的Sybase Backup Server 名字;
装入master数据库:
# nsrsybrc -Uusername -Ppassword
SYBASE:/SQL_Server_name/master
该命令恢复master库并关闭数据库服务器;如果必要,在数据库关闭时重新建立设备配置参数数目;重启数据库服务器;如果在最后一次DUMP后对系统目录信息作过改动,此时恢复改变。
(4)恢复model库:
删除或重建master设备上的其他数据库。
(5)恢复非master 设备上的数据库:
得到每个数据库设备的当前日志备份;
检查每个设备上数据库的空间用法,例如:select * from sysdatabases;select * from sysusages;select * from sysdevices。
一旦得到每个设备上所有数据库的信息,卸掉每个数据库,指整个数据库都在主库设备上;
dbcc dbrepai (database_name, dropdb)
根据缺少的设备,在sysdevices文件中手工删除相应的行,即删掉失败的设备;
单用户模式重启数据库;初始化新设备;依次重建数据库;重启数据库,保证数据库不在单用户模式;恢复数据库。
4 结语
当前网络环境中,Sybase数据库安全受到多种原因的影响,为了保证Sybase数据库的安全性,企业应加强设备、技术等方面管理。普通Sybase数据库的备份可采用dump命令来实现数据库的备份。对于商用或比较重要的数据库可采用在线数据流的备份模式,以加快数据备份和恢复速度,增强数据库备份和恢复的可管理性。
参考文献:
[1] 谢声时.Sybase数据库的备份和恢复[J].华南金融电脑,2008(10):37-38.
[2] 邱斌.Sybase数据库的备份和恢复[J].铜业工程,2009(3):66-68.
[3] 邵佩英,杨孝如.Sybase数据库系统基础知识[M].北京:中国水利水电出版社,1998.
[4] 庄骅,莫爱华.Sybase数据库自动备份的实现[J].电信技术,2007(6):309-311.