数据库维护与故障恢复
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库维护与故障恢复
为确保数据库安全,新思维医院信息管理系统采用了多种安全和应急预防机制,并提供相关的备份、紧缩和应急修复操作,以保障数据库系统的安全、高效和连续,即便在不可预测意外导致数据库损坏时,也可使用专用修复工具,从故障中安全快速且有效地恢复数据。
本文包括:
·Microsoft Access数据库被损坏的原因
·有效防止数据库损坏的方法
·定期或经常性地进行数据库备份和紧缩
·从故障中恢复(修复被损坏的Access数据库)
Microsoft Access数据库被损坏的原因
Microsoft Access数据库文件(.mdb)在某些突发或不可预料事件中可能导致损坏。已知mdb文件损坏的常见原因主要有四个:
●由于写入操作被中断使数据库处于置疑/损坏状态
●网络硬件故障
●在另一个程序中打开和保存mdb 文件
●计算机病毒
原因之一:由于写入操作被中断使数据库处于置疑/损坏状态
强烈建议通过程序提供的“退出”或“关闭”来正常关闭数据库和结束程序运行。但是,如果非正常终止程序,即Access数据库不正常关闭时,数据库正处于打开状态并正在写数据,则数据库引擎就会将该文件标记为置疑/损坏。如果手动关闭计算机之前没有先关闭Windows 或者断电,也可能会出现这种情况。其它情形还包括:在打开数据库的同时,没有关闭相关程序,但仍干扰数据库引擎向磁盘写入数据。例如,当网络遇到数据冲突或者磁盘驱动器故障时,就会出现这种情况。如果发生任何此类中断,数据库引擎就会将数据库标记为可能已被破坏。
当数据库引擎(Jet)开始写操作时,将设置一个标记,并在操作完成时重新设置该标记。如果写操作被中断,标记保持不变。当您要再次打开数据库时,Jet确定标记是否已设置并报告数据库是否被破坏。在大多数情况下,数据库中的数据实际上没有被破坏,但设置的标记提醒Jet数据库可能已被破坏。如果是这种情况,压缩和/或修复数据库通常可以还原数据库。
原因之二:网络硬件故障
在这种情况下,数据库文件损坏与数据库引擎无关;文件损坏完全是由于外界原因造成的。原因可能是由于存放数据库的计算机和打开数据库的计算机之间的硬件链中的一个或多个链接出故障。此列表包括但不局限于网卡、网络电缆、路由器和集线器。
通常,mdb文件指示由硬件造成的损坏不能通过使用压缩、修复或Jetcomp来还原。直到出故障的硬件被修复或替换,硬件损坏才会被修复。
原因之三:在另一个程序中打开和保存mdb文件
当打开一个mdb文件并在另一个程序中保存时,不能恢复该文件。例如,Microsoft Word 允许打开并保存Access数据库(顺便提一下,如果在另一个应用程序中打开MDB文件,这样做不起任何作用,因为您看到的都是扩展字符)。当这样保存mdb文件时,如果在Access中打开它,就会提示您输入数据库密码,即使文件在Access中从未使用密码保护也是如此。此处出现密码提示的原因是:当Access打开文件时,检查的第一个字节范围就是数据库密码所在的位置。如果该字节包含损坏的数据,Access就会认为该文件受密码保护。即使能够绕过此处的密码提示,数据库仍无法恢复,因为二进制结构是混乱的,Access根本无法读取。在这种情况下,恢复文件的备份副本是唯一的解决方法。
有效防止数据库损坏的方法
●在数据库写入过程中避免断电
断电将使数据库处于置疑状态,建议为计算机备置不间断电源(UPS)
●避免网络连接异常断开
应当使用安全可靠的网络,有故障或时断时续的网络传输环境非常容易导致数据库损坏
●使用正确的网络协议
在网络中,推荐安装使用唯一的TCP/IP协议,避免多种协议同时使用
●避免不正常断开数据库连接
应该避免突然如断电、手动关闭、使用任务管理器关闭终止应用程序等
●经常压缩数据库
经常压缩数据库可以保持数据库的最佳访问效率,减少受损机会
●不要在Windows网络上运行使用IPX/SPX网络协议
在Windows网络上,应该使用TCP/IP协议,不要使用IPX/SPX协议。
●经常备份数据库
当数据库遭受不可恢复的灾难性损坏时,可以使用备份来减少损失。
●避免感染病毒。电脑病毒可能会干扰网络、干扰数据库引擎的数据存取,导致错误。
定期或经常性地进行数据库备份和紧缩
定期和经常性地备份数据库,是保障数据库安全的最佳有效方法。对于重要的数据库文件,强烈建议创建两个备份,并分别存储在不同的存储介质(比如两个不同硬盘)或者不同计算机上。
●将“备份数据库”存储到数据库文件所在存储介质(通常是硬盘)上是一种不恰当的方式,即便两者分别存放在不同的卷(分区)中也是这样。
●将两个“备份数据库”存放到同一介质(硬盘)的不同卷(分区、文件夹)中,不会起到具有两个“备份数据库”的作用。
定期和经常性地紧缩数据库,可以有效防止数据库的损毁并能提高访问效率。但在实施紧缩数据库以前,应当首先备份数据库。
我们建议:
●管理员应坚持每15天左右时间,执行“紧缩数据库”一次;
●除去服务器自动进行的备份以外,应安排有关科室进行间隔性备份(比如药库每周一、三、五备份,收款室每周二、四、六备份,药房每逢周日进行备份)。
从故障中恢复修复被损坏的Access数据库
当访问Access数据库的程序报告错误“3343”或者“不可识别的数据库格式”或“不是一个有效的数据库文件”时,通常意味着正在使用的Access数据库文件(mdb)已经遭受意外损坏。
当数据库遭受意外损坏时:
●如果有最新的备份数据库文件,请使用备份直接替换损坏的数据库文件,即可恢复运行。
●如果没有最新的备份,建议使用JetComp.exe对损坏的数据库文件进行修复。
JetComp.exe介绍
Jet 压缩实用程序即JETCOMP.exe,是一种独立的实用程序,它压缩使用Microsoft Jet 数据库引擎3.x和4.x创建的数据库。此实用程序可以与Microsoft Jet 数据库引擎3.x和4.x结合使用以恢复损坏的数据库。虽然您可以将Microsoft Access 压缩实用程序或CompactDatabase方法用于Microsoft Jet数据库引擎3.x和4.x,但是用Jetcomp.exe能够恢复这些实用程序无法恢复的一些数据库。这是因为Microsoft Access压缩实用程序和CompactDatabase方法在尝试压缩数据库之前,先尝试打开和关闭数据库。在某些情况下,如果这些实用程序无法重新打开数据库,则压缩无法继续进行,并导致数据库无法恢复。而JETCOMP.exe在压缩之前不尝试打开和关闭数据库,因此可以恢复一些Microsoft Access压缩实用程序和CompactDatabase方法无法恢复的数据库。