如何恢复丢失的数据?

welong 2003-11-21 06:10:56
只要能解决,多少分不要紧。
过程:我新建了个表A,把原来的表B误删,并将表A的名字改为B。但我现在需要表B中的数据,怎么办?
没有备份。要有备份的话我自己也能解决。
我的Sybase版本是11.92。
...全文
61 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
banalman 2003-12-30
  • 打赏
  • 举报
回复
同意楼上
luoyunbo 2003-12-02
  • 打赏
  • 举报
回复
SQL Anywhere数据库由后缀分别为.db和.log的两个文件组成,其中,.db文件是用来存放数据库信息(包括表结构、视图、数据等),.log文件是个日志文件,用来记录用户每一次对数据库有影响的操作,例如创建或删除表、视图、触发器等对象,插入、删除、修改表中的数据等。所以只要把.log文件的内容转换成一条条的SQL语句,然后再建一个空的数据库,再执行这些SQL语句,则恢复数据的问题就可以解决了。
  Sybase提供了几个实用程序来完成以上功能。
  假设数据库系统文件分别为mydb.db和mydb.log,如果mydb.db已被破坏,则恢复数据库mydb.db的步骤如下:
  1.创建一个新的数据库,假设文件名分别为new.db和new.log;
  2.把旧的日志文件转换成 SQL 语句,并放在一个名为db.sql的文件中,其命令为:
  dbtranw-r-k-y mydb.log db.sql
  3.修改只读文件mydb.db的属性为可写,命令为:
  attrib -r mydb.db
  4.修改只读文件mydb.log的属性为可写,命令为:
attrib -r mydb.log
  5.用新的空数据库文件覆盖被破坏的旧数据库文件,其命令为:
copy new.db mydb.db
  6.用新的日志文件覆盖被破坏的旧日志文件,其命令为:
copy new.log mydb.log
  7.启动数据库SQL Anywhere,其命令为:
  DB32W.EXE -d mydb.db
  8.从文件db.sql中读取 SQL 语句并执行,假设数据库的用户名为dba,口令为sql,命令为:
  Rtsqlw -q -c “userid=dba;passwd=sql”read dbb.sql
  这样,我们就可以完成数据库的恢复。不过应该指出的是,第6步之前必须做好第2步工作,否则数据库难于恢复
welong 2003-12-02
  • 打赏
  • 举报
回复
请再说得具体一点,我真的很着急,数据挺重要的。
yhbttfile 2003-11-26
  • 打赏
  • 举报
回复
数据库没有有设置“trunc log on chkpt”?
如果有,你死定了,如果没有,可以把日志到出来,然后使用日志恢复。具体怎样做,参考SYBASE系统管理员指南,这里不赘述。
welong 2003-11-24
  • 打赏
  • 举报
回复
请说得具体一点,我真的很着急,数据挺重要的。
dushilangzi 2003-11-23
  • 打赏
  • 举报
回复
到数据库中重新执行一下日志文件。

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧