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
高手请帮忙解决!
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
高手请帮忙解决!
解决方案 »
- 如何快速将数组中的内容保存在TXT文件中?
- 想学习一下3层结构的数据库系统,请高手不吝赐教,谢谢~!
- sql server,delphi和xml
- sql sever 导出的问题
- 一个DB文件最多能存放多少条记录?
- 讨论利用Delphi和Asp或是Jsp做B/S结构
- 【100分】我在两个程序间用Sendmessage,想得到另外一个程序上的RichEdit里面的内容
- 请问如何使程序在一时候只运行一个实例--最简单方法,最好一个过程能解决,不要太多功能
- 请问chechy,刚刚的那个MenuBar控件如何使用啊
- C/S型数据库及MIDAS的服务器端必须运行在NT上吗?Win98行不行?
- 弱弱的问:开发c/s结构和开发单机版有什么不同?
- 事务的问题????????
但要如何寫在我們的程式裡, 按一顆按鈕即可修復?////////////////
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;
我这里的interbase数据文件损坏的频率还很高的。急盼高手帮忙!