向洪波
(鸡西大学,黑龙江 鸡西 158100)
计算机应用领域随着当前科学技术的不断发展而不断扩大,人们对计算机的依赖成都不断提高。计算机的出现是人类历史的一大变革,但是计算机的广泛应用不仅给人类社会带来了福音,同时也不可避免地带来了一些前所未有的问题。其中,计算机数据库资料存储的安全问题就是计算机的广泛应用带来的安全问题之一。由于计算机本身因素或者人为因素等引起计算机系统的故障,进而影响数据库中数据的正常使用,给人们的生活带来了不良的影响。
计算机数据库备份是一种数据的保存过程,计算机所有者(管理员)将计算机数据库中内容的部分或全部拷贝到另一个磁盘或者载体上的过程即为数据库的备份。我们可以以后备副本命名这些拷贝的数据。如果计算机的数据库在遇到故障(遭到破坏或者受攻击时)时不能对其进行正常的操作处理,此时想要在对数据库操作就是后备副本大显身手的时候了,我们进行数据库恢复时后备副本是必须的,但是这种恢复只能将计算机数据库恢复到当时备份时的状态。如果我们对数据库恢复的要求比较高,想要得到计算机在发生故障前的数据库状态,则需要将从数据库备份开始至数据库发生故障之前所有的更新数据重新运行一次才能得到目的[1]。
在正常运行计算机系统时,每个人都不希望自己所需要的数据丢失或者被损害,尤其是那些没有进行备份的数据 (不管丢失或者被破坏的数据是数据库中的数据还是其他的一些编程代码等)。一旦我们遇到计算机数据库被损坏的情况,如果要进行数据库的恢复工作需要花费大量的时间和精力。
数据库备份可被分为静态备份和动态备份两类,各自的特点如下表所示。
表1 数据库备份的形式及特点
一般情况下,对数据库进行静态备份比较简单,但是这种备份局限性较大,只有在用户事务完成后才能进行备份,而且也只有在数据库备份完成后才能运行行的用户事务,因此,这种备份方式导致数据库的可使用性能降低。
数据库的动态备份则没有上述的缺点,数据库备份可以和用户事务并发执行。但是,这种备份方式的局限性在于其完成备份动作后并不能确保后备副本上所有数据的正确有效性。
以一个实例加以说明:在某时刻我们对计算机数据库进行动态备份,数据库中的数据被拷贝到了其他磁盘上,但是在下一时刻我们又对被备份的数据进行了修改操作,因此在备份动作结束后,后备副本上所保存的数据已经不是我们修改过的数据了[2]。所以,我们在对数据库采用动态备份动作时,应把我们对数据库在备份期间的所有修改动作记录下来建立一个日志文件,此时,某一磁盘上的后备副本与建立的日志文件结合即能达到数据库恢复到某一时刻正确状态的目的。
在对计算机数据库进行备份时,计算机所有者通过手工操作或者SQL Server Agent动作、在预先设定的任何一天的任何时刻均可以完成SQL Server的备份。根据数据库备份的时间可将备份分为周期性数据库的备份以及不定期的数据库备份两类。其中不定期的数据库备份动作一般是造数用户对数据库做某些修改之后进行的。
2.3.1 周期性数据库备份
计算机数据库备份动作及耗费时间又耗费计算机资源,因此不适合进行频繁的备份动作。在对数据库进行数据备份时,应在详细全面了解了数据库的使用情况之后制定一个切合实际的备份周期[3]。由于对数据库进行备份动作将会降低数据库的使用性能,所以实际上的数据库备份周期应根据所需数据的特性而定,具体见表2.
表2 备份周期与数据的关系
目前大多数计算机所有者经常使用的数据库备份方案为在每日、每周、每月都对数据库进行一次备份动作。对数据库进行的每日备份文件可以适当保存一个月左右的时间;对于每周一次的数据库备份,其备份文件应保存较长的一段时间(比如一年左右);而每月一次的数据库备份文件具有较高的价值,应永久保存。数据库备份的文件其保存处应具备安全性(比如防火措施好或者距离机房较远的保存处)。
2.3.2 数据库不定期的备份
除了对数据库进行周期性备份以外,在对数据库中的某些数据进行修改动作以后也应进行不定期的数据库备份:(a)对计算机数据库进行创建、修改、删除等动作;(b)在数据库中创建了用户自定义对象的情况;(c)对数据库进行增加或删除服务器的系统存储动作等。在以上动作发生后应对数据库进行不定期备份动作。
我们在运行数据库时,一些对数据库产生不良影响的故障时常发生,如恶意破坏、软件错误、电源故障以及磁盘损坏等情况,均有可能破坏数据中的数据。数据库的可恢复性为在数据库遭到损坏时能够依据某种途径恢复到最近一个正确的状的能力。
数据库具有可恢复性的基本原则是数据库重复存储,能够实现计算机数据库恢复的具体方法分为以下两种:
(1)通过转储和建立日志的方式实现数据库的恢复。这种方法简单说来即为对计算机数据库进行周期性地进行复制,如一天一次,将数据库拷贝到其他的存储载体。
(2)在数据库发生故障情况时,这种情况下的数据库恢复应分两种情况:(a)如果计算机数据库仅仅是部分被破坏,某些数据可疑,此时只需要对日志库实行撤销动作,将所有对数据库的不可靠的修改撤销,即可把数据库恢复到正确的状态;(b)如果数据库遭到彻底的损坏,因为此时的计算机数据库已经不能正常运行,就需要将存储后备副本的磁盘等载体装入计算机,对日志库实行重做动作,然后重新处理新、旧数据库的所有更新,即可实现数据库的恢复,并且不会丢失对数据库的更新操作[4]。
计算机数据库产生的故障类型具体可以分为事故故障、系统故障以及介质故障等。其中数据库的又可分可以预期的事务故障以及非预期的事务故障;系统故障是指导致数据库停止正常运行的故障情况;介质故障是指由存储有数据的磁盘等载体引体的故障。
数据库的恢复模式可以分为简单恢复、完全恢复以及批日志恢复三类。其中的简单数据库恢复是指在对计算机数据库进行恢复时对数据库事务日志没有涉及,而只是使用了数据库备份;完全数据库恢复是指在对数据库进行恢复时使用了数据库备份和事务日志备份的结合形式;批日志数据库恢复的优势在于能够最大程度的减少数据库恢复时所需的存储空间[5]。
随着计算机技术的广泛使用,人们对计算机的依赖程度越来越高。其中数据库的备份和恢复技术对于人们使用数据库的安全性具有非常重要的意义,使得人们在放心享受计算机使用的同时,而不必担心数据的损坏和丢失。
[1]詹英.基于SQLServer的数据库备份恢复策略[J].计算机时代,2007(12):23-24.
[2]周杨.浅析MS SQLServer数据库恢复技术[J].中国教育信息化,2008:83-84.
[3]李辉康.应用项目数据库应急备份与恢复方法的研究[J].西铁科技,2008(2):13-15.
[4]于泗波,张雪英.SQLServer2000数据库备份与恢复系统的设计与实现[J].科技情报开发与经济,2008(1):159-161.
[5]王新宁.医院信息网络MSSQL Server数据库数据恢复的研究[J].中国数字医学,2008(3):46-47.