InterBase数据库文件损坏的修复方法

news/2024/11/19 8:41:20/文章来源:https://www.cnblogs.com/saiyikeji/p/18291510

InterBase数据库是一种中级数据库,它短小精悍免维护,可以满足百万记录级别的数据库应用,又有开放源码版本,个人认为是一种比较适合中小型数据库应用环境的数据库管理系统(DBMS)。Delphi内建了对InterBase数据库的支持,因此用Delphi编写以InterBase为后台数据库的软件很是方便。
在实际应用中,偶尔会碰到InterBase数据文件损坏的问题。损坏的原因多种多样,可能是由于读写文件的时候突然断电导致文件损坏,或者可能是不当的操作引发的;如果没有合适的工具,很多情况下损坏的数据库文件就只有废弃不用,造成数据的丢失,其实,InterBase本身提供了一组修复命令行程序,如果能合理的利用它们,的确可以修复大部分损坏的InterBase数据库文件。
假设现在有一个损坏的InterBase数据库文件IBBadDB.gdb,修复方法如下:
1、确定InterBase正常运行,而受损的数据库文件IBBadDB.gdb没有被任何程序打开;
2、将安装以后的InterBase文件夹下的bin子文件夹内的两个程序gfix.exe,gbak.exe拷贝到受损的数据库文件IBBadDB.gdb所在的文件夹内;
3、打开DOS命令行界面,用DOS命令先进入IBBadDB.gdb所在的目录(文件夹)下;
4、定义两个全局变量,分别赋值为IBBadDB.gdb的用户名和密码(默认情况下,是SYSDBA和masterkey),接下来的修复程序能使用它们顺利打开受损的数据库文件:
SETISC_USER=SYSDBA
SET ISC_PASSWORD=masterkey

5、检查数据库文件是否损坏:
gfix-v -full IBBadDB.gdb
6、如果检查结果中报告有问题,运行下面修复文件的命令:
gfix-mend -full -ignore IBBadDB.gdb
7、然后检查此时的数据库文件是否已经修复:
 gfix-v -full IBBadDB.gdb
8、如果检查结果中仍旧有问题,应该运行一次完整的数据库备份和恢复命令(此例中假设备份以后的数据库文件名称是IBBadDB_bak.gbk),首先是备份:
gbak-backup -v -ignore IBBadDB.gdb IBBadDB_bak.gbk
9、如果上述备份命令的运行遇到问题,是因为冗余数据收集(garbage collection)而产生的,那就继续执行下面的(数据库冗余清理)命令:
gbak-backup -v -ignore -garbage IBBadDB.gdb IBBadDB_bak.gbk
10、如果上述命令的运行遇到问题,是因为边际事务处理(limbotransaction,可能翻译的不准确)的缘故,那就在上述命令行参数中加上“-limbo”开关:
gbak-backup -v -ignore -garbage -limbo IBBadDB.gdb IBBadDB_bak.gbk

11、最后根据这个修复的备份文件,产生一个新的数据文件(此例中假设新数据库文件名称是IBBadDB_new.gdb),
gbak-create -v IBBadDB_bak.gbk IBBadDB_new.gdb
注:
1、此方法经过实际应用中多次实践的考验,证明相当有效,对InterBase数据库文件的修复成功率至少在75%以上;
2、以上步骤基本是是翻译至原始资料,但根据笔者实际应用中的经验,上述每一步的执行均对其他步骤无干扰,所以无论上一步执行结果如何,下一步都应该运行一次;
3、这个修复方法依赖于InterBase系统提供的gfix.exe,gbak.exe两个程序,如果有可能,将上述所有步骤做成批处理文件,和这两个程序拷贝到一起,这样就可以一次性运行之,也便于反复使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741068.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TypeError: Failed to fetch dynamically imported module

发现运行npm run build 的结果里面,有一些名字特别长的js的名字 原因是因为有一些component,在某些页面我是直接import,某些页面是用defineAysnc 导入的,两种情况都有。 后来全部都改为defineAsync 引入。 重新build,就没有那些名字特别长的js了 这样问题就解决了。

备份和恢复

mongodump备份 mongodump从 MongoDB 数据库读取数据并创建高保真 BSON 文件,该mongorestore 工具可以使用该文件填充 MongoDB 数据库。 mongodump并且mongorestore是用于备份和恢复小型 MongoDB 部署的简单有效的工具,但并不适合捕获大型系统的备份。 mongodump只捕获数据库中…

文件目录损坏数据恢复

文件目录损坏数据恢复是一个涉及多个步骤和可能解决方案的过程。 一、使用系统自带的磁盘检查工具 在Windows系统中,您可以使用CHKDSK工具来检查和修复磁盘错误,包括文件目录的损坏。 打开命令提示符:按【Win+R】打开运行窗口,输入【cmd】,然后点击【确定】。 运行CHKDSK命…

硬盘固件损坏

硬盘固件损坏是一个相对复杂的问题,它可能由多种原因引起,并可能导致硬盘无法正常工作或数据丢失。 一、硬盘固件损坏的原因 电源故障:电源不稳定或电力波动可能导致硬盘固件受损。突然的电源断电、电压过高或过低都可能对硬盘固件造成不可逆的损坏。 固件更新失败:在固件更…

服务器硬盘坏道的常见原因和预防方法

一、什么是服务器的硬盘坏道? 硬盘坏道是指硬盘上某个或某些扇区出现物理损坏的情况,这会导致存储在这些扇区上的数据无法读取或写入。硬盘坏道问题的存在可能会对数据的完整性和可靠性造成严重影响,因此及时识别和修复硬盘坏道问题至关重要。 服务器硬盘的坏道的原理是由于…

linux 上安装FTP : vsftpd (含常见问题:读取目录列表失败,的处理)

服务器上有时候需要安装ftp以便调试或给不懂使用服务器命令的同学更新文件1、安装vsftpdyum update yum install vsftpd2、编辑配置文件   确保以下配置的值和下面一致  anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES这些配置的作用如下:…

海康威视固态硬盘全盘恢复

海康威视固态硬盘的全盘恢复主要涉及到数据恢复的问题,尤其是在数据丢失、误删除或硬盘格式化等情况下。 一、备份恢复 检查备份: 如果在数据丢失之前已经对海康威视固态硬盘进行了备份,那么最直接且有效的恢复方式就是通过备份数据来还原。 备份可能存储在USB、移动硬盘、远…

linux 上安装 vsftpd (含常见问题:读取目录列表失败,的处理)

服务器上有时候需要安装ftp以便调试或给不懂使用服务器命令的同学更新文件1、安装vsftpdyum update yum install vsftpd2、编辑配置文件   确保以下配置的值和下面一致  anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES这些配置的作用如下:…

K8S学习教程(三):在PetaExpress KubeSphere 容器部署 Wiki 系统 wiki.js 并启用中文全文检索

背景wiki.js 是非常优秀的开源 Wiki 系统,尽管在与 xwiki 功能相比 ,还不算完善,但也在不断进步。 常用的功能还是比较实用的,如:Wiki 写 作、分享、权限管理功能还是非常实用的,UI 设计非常的漂亮,精美的界面和直观的操作体验,能够满足小团队的基本知识管理需求。认真…

java将对象中的值赋值为另一个对象--modelMapper

目标:将两个对象中的非空值赋值给第三个对象,要求第三个对象拥有前面两个对象中的非空值 方法:使用modelMapper 代码://定义第一个对象Person person = new Person(); person.setName("1"); //定义第二个对象 Person person1 = new Person(); person1.setHigh(Bi…

云原生实践总结

企业落地云原生的目的 一句话概括:在保证稳定性的前提下,降本增效 目标拆解:保障稳定性建设高可用性:基础组件(Master三大件/Etcd等)高可用、多机房、多集群、Pod 高可用 持续进行风险治理:耦合度、故障发现、容量、容灾、变更及可运维性、安全性 建设可观测性:Metrics…

VMware ESXi 8.0U3 macOS Unlocker OEM BIOS Dell (戴尔) 定制版

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS Dell (戴尔) 定制版VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS Dell (戴尔) 定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)、Hitachi (日立)、Fujitsu (富士通)、N…