高分请教interbase如何修复数据库文件,急!!!!!!!!!!!

starvb 2005-11-10 12:01:16
interbase数据库文件损坏,如何修复?

我用一下方法:
1、断开所有与IB服务器的连接
2、复制一份,对复制文件进行以下操作,并且要独占访问
3、进入Command命令窗口
4、为了避免在以下命令行中每次都输入用户名与密码,特设置以下两个变量:
SET ISC_USER=SYSDBA
SET ISC_PASSWORD=masterkey
5、对损坏的数据库进行检查:
gfix -v -full abc.gdb
6、如果上一条命令已指出这个数据库有问题,我们现在需要修复它:
gfix -mend -full -ignore abc.gdb
7、再检查一遍,看数据库是否修好:
gfix -v -full abc.gdb
8、如果仍有错误,你必须做一个数据备份与恢复操作:
gbak -backup -v -ignore abc.gdb abc.gbk
9、若上面方法备份失败,关闭垃圾收集功能试试:
gbak -backup -v -ignore -garbage abc.gdb abc.gbk
10、如果仍未备份成功,可能是在一个过渡状态的事务中记录损坏,加上-limbo参数试试:
gbak -backup -v -ignore -garbage -limbo abc.gdb abc.gbk
11、从备份文件中恢复数据(仍不成功,我也没办法了)
gbak -create -v abc.gbk ddd.gdb


提示:unavilable database
高手请帮忙解决!
...全文
205 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
starvb 2005-11-11
  • 打赏
  • 举报
回复
我用interbase5.0,没有IBValidationService控件。
我这里的interbase数据文件损坏的频率还很高的。急盼高手帮忙!
lovendII 2005-11-10
  • 打赏
  • 举报
回复
InterBase的資料庫若損壞時我們可以在IBConsole用Validation來修復,
但要如何寫在我們的程式裡, 按一顆按鈕即可修復?

////////////////


IBX元件盤中有一個IBValidationService1可以做到, 不過我到目前為止(三年), 還沒有遇到IBfile有毀損的現象, 所以沒有實作可提供, 我蠻好奇, 檔案
是如何毀損, 我想取得一個已毀損的檔案來做測試!



以下是截取 IBX.HLP中的內容
The following procedure illustrates how to set database validation options using check box components.

procedure TForm1.Button3Click(Sender: TObject);

begin
with IBValidationService1 do
begin
ServerName := 'Poulet';
DatabaseName := 'c:\interbase\tutorial\tutorial.gdb';
LoginPrompt := False;
Params.Add('user_name=sysdba');
Params.Add('password=masterkey');
Active := True;
Options := [];
try
if CheckBox1.Checked then Options := Options + [LimboTransactions];
if CheckBox2.Checked then Options := Options + [CheckDB];

if CheckBox3.Checked then Options := Options + [IgnoreChecksum];
if CheckBox4.Checked then Options := Options + [KillShadows];
if CheckBox5.Checked then Options := Options + [MendDB];
if CheckBox6.Checked then Options := Options + [SweepDB];
if CheckBox7.Checked then Options := Options + [ValidateDB];
if CheckBox8.Checked then Options := Options + [ValidateFull];

finally
Active := False;
end;
end;
end;




2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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