免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1771 | 回复: 0
打印 上一主题 下一主题

Sybase SQL Anywhere数据库的数据备份和数据恢复(转) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-09 13:42 |只看该作者 |倒序浏览
 Sybase SQL Anywhere 是Sybase 公司开发的一种小型数据库产品,它可以安装在WIN95、WIN98

等操作平台上。Power
      Builder5.0以上版本自身均带有一个SQL Anywhere数据库系统,SQL
      Anywhere数据库支持标准SQL语句,且操作比较简单,功能也比较强大,因此,它成了当今单机版软

件开发的首选数据库之一。
        Sybase SQL Anywhere 数据库是由两个数据库文件组成,它们分别是后缀为.db数据信息文件和

后缀为.log
      日志文件。其中.db文件用来存放数据库的库结构信息及数据(如表结构、触发器、视图以及数据记录

等),而.log文件是用来存放用户每一次对数据库结构和数据有影响的操作,如创建或删除表、视图、触发器

等数据库对象以及增加、删除或修改数据库中的数据记录操作。
        Sybase SQL Anywhere
      数据库有时会因为不正常关机或其它不正常操作造成数据库破坏,从而给用户带来不必要的麻烦和损

失。因此建立一套行之有效的数据备份和恢复机制是十分有必要的。
        Sybase SQL Anywhere 数据库的数据备份和恢复是依赖于.db和.log两个文件。实现的具体步骤

和方法如下:
      一、 数据备份
        Sybase SQL Anywhere
      数据库不象Sybase等大型数据库那样复杂,它的数据库是以后缀为.db和.log的两个系统文件的形式

存放。前面已经讲过,.db存放数据库所有结构信息的数据记录,因此数据备份通常是将.db文件备份下来。

这项工作一定要定期进行,最好在数据库建立后就备份一次。在做好.db文件备份的同时删除.log文件。因为

.log文件存放以前用户对数据库有影响的操作,在.db文件备份之后,也就是所有的库结构信息及数据记录备

份之后,当前的.log文件就没有存放的必要,并且.log文件如果长期不删除会越来越大,无为地占用系统资

源。当前的.log文件删除后,并不影响以后记录日志。在SQL
      Anywhere中,.db文件是用户建立的,而.log文件则是在用户在操作数据库时系统自动产生的,用来

记录有关的用户操作过程。
      二、 数据恢复
        如果数据库受到破坏,要进行数据恢复,要分以下几种不同情况分别进行处理(为了便于叙述,在

说明处理过程之前,先假设数据库系统文件名分别为testdb.db
      和testdb.log,并假设数据库用户名为dba,口令为sql)。
        1.在数据库遭破坏之前已有数据库testdb.db文件的备份,并在上次testdb.db文件备份之后没有

对数据库作任何操作或有影响的操作,或者对上次testdb.db文件备份之后的数据修改无需恢复。这时只要将

上次备份的
      testdb.db 文件覆盖当前系统中的testdb.db文件,并同时删除testdb.log文件即可。在DOS命令行

中执行步骤为:
        (1)Attrib -r testdb.db 将文件testdb.db文件的只读属性去掉,变为可写。
        (2)Attrib -r testdb.log将文件testdb.log文件的只读属性去掉,变为可写。
        (3)copy D:\testdb.db C:\testdb.db(注:前面为备份文件,后面为当前遭受破坏的文件)。
        (4)Del testdb.log将日志文件testdb.log删除。
        2.在数据库遭破坏之前已有数据库testdb.db文件的备份,并且在上次备份之后作过对数据库有

影响的操作,且有必要恢复这些操作时,除了使用testdb.db和testdb.log文件外,还要使用dbtran.exe、

dbeng50.exe、isql.exe等实用程序才能完成恢复工作。在DOS命令行中执行步骤为:
        (1)dbtran-y testdb.log testdb.sql将testdb.log日志文件转换成SQL语句放在testdb.sql

文件中。
        (2)Attrib -r testdb.db 将文件testdb.db文件的只读属性去掉,变为可写。
        (3)Attrib -r testdb,log将文件testdb.log文件的只读属性去掉,变为可写。
        (4)copy D:\testdb,db C:\testdb.db将前面的testdb.db备份文件覆盖后面遭破坏的

testdb.db文件。
        (5)Del testdb.log将日志文件testdb.log删除。
        (6)dbeng50 -d testdb.db 启动SQL Anywhere。
        (7)isql -q -c ″userid=dba;password=sql″ read
      tesrdb.sql执行testdb.sql文件中的SQL语句,恢复自上次备份以来所破坏的数据。
        3.如果数据库被破坏之前从没有作过testdb.db
      文件备份,则需要将被破坏的数据库删除,重建一个结构相同、名字相同的新数据库,然后再用

testdb.log文件恢复。在DOS命令行中执行步骤为:
        (1)Attrib -r testdb.db 将文件testdb.db文件的只读属性去掉,变为可写。
        (2)用结构相同、名字相同的新数据库testdb.db将被破坏的testdb.db文件覆盖。
        (3)dbtran-y testdb.log
      testdb.sql将testdb.log日志文件的内容转换成SQL语句,放在testdb.sql文件中。
        (4)Attrib -r testdb.log将文件testdb.log文件的只读属性去掉,变为可写。
        (5)Del testdb.log将日志文件testdb.log删除。
        (6)dbeng50 -d testdb.db启动SQL Anywhere。
        (7) isql -q -c ″userid=dba;password=sql″ read
      tesrdb.sql执行testdb.sql文件中的SQL 语句,恢复自上次备份以来所破坏的数据。
        以上数据备份和数据恢复方法,我们都已在WIN95和Powerbuilder 5.0环境下试验成功。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP