现代信息社会,数据的重要性不言而喻。在数据库的管理中,应急和灾难恢复已经是数据的一个重要课题。如何自动、可靠的备份数据,并在故障出现时方便、及时启用是数据库管理员非常重要的一项工作。

目前在我们使用Sybase ASE数据库管理系统的应用中,有多种实现高可靠性的方法,采用定时自动的通过备份事物日志,并及时恢复到备份库的方式是一种非常稳定、有效的实用方法。

在 Server A,Server B两台同样平台的主机上分别有数据库套ASE数据库系统a,b,而且在两台服务器上BACK_UP服务都已经启动。
第一步,用isql登录到主机A中,把数据库a 备份到文件c:\a.dat中:
dump database a to "c:\a.data"
第二步,用isql登录到主机B中,把a备份下来的数据文件c:\a.dat在b中恢复:
load database b from "c:\data"
第三步,在客户端用DSEDIT分别建立与数据库的接口(interfaces)A,B,并建立bcka2b.bat批处理文件 date /t >>bcka.log
time /t >>bcka.log
isql -Usa -P -SA -ibcka.sql >>bcka.log
date /t >>ldb.log
time /t >>ldb.log
isql -Usa -P -SB -ildb.sql >>ldb.log
第四步,建立bcka.sql文件,把数据库A中变化的事物日志备份出来
dump tran a to 'c:\a.tran'
go
第五步,建立ldb.sql文件,把变化的事物日志写入数据库B中
load tran b from 'c:\a.tran'
go
第六步,在windows"任务计划"中加入任务bcka2b.bat,并在"属性->高级计划选项->重复任务"中按备份的要求确定备份时间(如5分钟)。
第七步,在故障出现,需要应急时,只要改变Server B的IP地址为Server A的IP,或直接修改主机名,重起数据库服务器,登录数据库,键入"online database b",数据库即可使用。

注意:
1)如果业务量很大,备份对主点性能影响比较大,可以提高备份周期,如10分钟,半小时,一小时等;
2)在运行过程中,请不要把备点数据库做"online",否则需要重新做dump database;
3)由于BCP,select into等操作是不记日志的,因此做这部分数据不能被备份。