谁能救我?Interbase数据库备份文件的恢复难题(原数据库已丢失) (200分)

  • 主题发起人 主题发起人 Demander
  • 开始时间 开始时间
D

Demander

Unregistered / Unconfirmed
GUEST, unregistred user!
我的Interbase数据库文件在刚备完份。在我想
重新恢复时,出现重复索引错误,导致数据库被覆盖
现已无法使用,哪位大侠能救我。
 
interbase自带有一个修复工具的,你试试看.
 
如何修复,请大侠指点,我试了各种方法,还是不行。能给出示例吗?希望能具体些,
谢谢!
 
呵呵,以前在论坛上看人说过,你也可以再试试其它的INTERBASE的工具的.
我的INTERBASE还没坏过呢.呵呵.
 
其它的Interbase工具?请指教。
我把gfix试了n遍,就是搞不定。
如果...如果...那我就得损失一个月的数据了...
这可怎么办。
 

  据所查帮助文件,IBConsole中的restore是可以恢复这种“唯一索引出现重
复的错误”的,只要设置一个选项即可,好象是disactive indices设为true,
可是我试不出来,哪位高手有条件帮忙一试,分数不会少了你的。先谢了。
 
在窖洞的数据库工具里有二个工具的,你试试看行不行.
我没有条件试,SORRY.
 
我试去,先谢了。
 
窑洞现在上不去。

我restore时出现的错误如下:
  Attempt to store duplicate value (visible to active transactions)
  in unique index "RDB$INDEX_2"
下面是我从帮助中摘录下来的,各位看看是否有救。
Deactivate Indices
  Normally, InterBase rebuilds indices when a database is restored. If
the database contained duplicate values in a unique index when it was backed
up, restoration will fail. Duplicate values can be introduced into a database
if an index was temporarily made inactive (for example, to allow insertion of
many records or to rebalance an index). To enable restoration to succeed in
this case, set the Deactivate Indices option to True. This makes indices
inactive and prevents them from rebuilding. Then, eliminate the duplicate
index values and re-activate indices through ALTER INDEX in the ISQL tab.A
unique index cannot be activated using the ALTER INDEX statement; a unique
index must be dropped and then created again. For more information on
activating indexes, see the online SQL Reference.
Note:
    The Deactivate Indices option is also useful for bringing the database
online more quickly. Data access will be slower until the indexes are rebuilt,
but at least the database is available. After the database is restored, users
can access the database while you reactivate the indexes.
大家帮帮忙,提前
 
http://www.fibplus.net/
有一个工具ibsurgeon,专用于修复corrupted interbase database,可免费下载,
试一下吧。
 
gbak {-C|-R} [options] source dbfile

//你的情况要用-i 和 -n 参数
Option Description
-c[reate_database] Restores database to a new file
-bu[ffers] Sets cache size for restored database
-i[nactive] Makes indexes inactive upon restore
-k[ill] Does not create any shadows that were previously defined
-mo[de] [read_write | read_only} Specifies whether the restored database is writable
• Possible values are read_only and read_write
• Default is read_write
-n[o_validity] Deletes validity constraints from restored metadata; allows
restoration of data that would otherwise not meet validity
constraints
-o[ne_at_a_time] Restores one table at a time; useful for partial recovery if database
contains corrupt data
-p[age_size] n Resets page size to n bytes (1024, 2048, 4196, or 8192);
default is 1024
-pa[ssword] text Checks for password text before accessing a database
 
如果你对gbak不熟的话建议你用IBEXPERT吧。

http://www.ibexpert.com 可以下试用版。
要解密的,留下你的EMAIL吧。
 
给你个例子:[:)]
gbak -r -user sysdba -pa masterkey -i -n C:/archive/foo.gbk localhost:/foo.gdb
 
谢谢各位。
如果不是我领悟能力太差的话,那就应该是各位的方法对在下的这个文件
没有效果,我再想想。如果大家还有什么另外的方法,不妨再写写。这里
先发分。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部