在当今的发达的信息领域,体现价值的珍贵性的不是计算机软件,也不是计算机硬件,而是计算机内的各种宝贵数据。但是各种因素像人为错误,硬盘损坏,电脑病毒或者各种停电,自然灾害都有可能使得数据的使用变得不牢靠。建立合理的数据备份系统,以保障数据的安全,对于每个企业至关重要。
有 专门研究数据的机构作出研究报告表明,每损失10MB的数据,就会造成部门损失达3万元人民币,而且如果丢失的关键数据在10天之内仍然得不到恢复的话, 企业就会出现危机,甚至有可能出现严重后果。所以随着计算机系统越来越成为企业不可或缺的数据载体,如何利用数据备份来保证数据安全成为目前一个重要的研 究和应用领域。
两大基础方案完成数据库备份
数据本身由于其运行环境和使用过程中出现的各种故障,使整个数据的完整性和许多因素相关。主要包括计算机本身软硬件的故障,使用过程中的误操作和各种计算机病毒的破坏。还有各种不可预测的自然因素也会造成数据的损坏和丢失。
其实目前企业数据库的备份方案主要有如下两种:
第一种为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归档模式下(业务数据库在非归档模式下运行),且需要大容量的外部存储设备,例如磁带库;
第二种备份方案为逻辑备份,业务数据库采用此种方案,此方法不需要数据库运行在归档模式下,不但备份简单,而且可以不需要外部存储设备。
绝大多数数据库软件都是采用这两种基本方案的备份,只是在备份的策略和技巧上各有侧重,并且在各种数据库辅助软件的帮助下可以实现定时备份,异地备份,增量压缩备份以及自动备份,帮助企业在数据管理上更好的适应应用的需要。
制定备份方案需要考虑的因素
一般的数据库备份过程中需要考虑如下因素:
(1)数据本身的重要程度;
(2)数据的更新和改变频繁程度;
(3)备份硬件的配置;
(4)备份过程中所需要的时间以及对服务器资源占用的实际需求情况。
(5) 而且数据库备份方案中,还需要考虑到要对业务处理的影响尽可能地小,要把需要长时间完成的备份过程放在业务处理的空闲时间进行。对于重要的数据,要保证在极端情况下的损失都可以正常恢复。对备份硬件的使用要合理,既不盲目地浪费备份硬件,也不让备份硬件空闲。
针对这些特点,我们一起来看看常见的数据库软件的特点,这些数据库包括ORACLE,SQL SERVER,SYBASE,INFORMIX和MYSQL。通过分析这些数据库的备份策略,帮助企业学习如何选择各自的数据库备份方案。 ORACLE数据库备份方案和特点 Oracle数据库的备份方式主要有三种:逻辑备份、物理备份和RMAN备份。物理备份比较简单,也容易理解,主要是逻辑备份和RMAN备份过程。 逻 辑备份是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。Oracle提供的逻辑备份工具是exp。逻辑备份最大的优越性在于备份时占用资源 少,在备份与恢复时对数据库系统资源影响最小。另外对于个别表,但并非整个表空间或数据库的恢复也非常方便,且可以在不同的数据库上进行恢复。备份方案灵 活,可以根据需要选择性的备份表、表空间、某用户的对象信息或全库备份。 逻辑备份的恢复过程可以采用lmp工具来对数据库进行恢复。如果 确认整个oracle数据库已经损坏,就需要重建服务器,所有数据库培植必须设置成和原有库的信息一致,如实例名、数据库名、数据库字符集、表空间名等。 然后将原有的exp文件copy到新系统,然后执行lmp的全库恢复操作。 如果只是某个用户对象出现问题,可以针对此用户进行用户对象的恢复,先将此用户删除。然后新建此用户。注意用户权限与原来一致,然后执行lmp进行恢复操作。对于某个表的恢复,也按这种方式操作。 RMAN是指Recovery Manager,是Oracle恢复管理器工具。通过它,可以对数据库进行备份与恢复操作。RMAN备份有很多方式,可以对数据库进行脱机、联机的物理备份,也可以对数据库进行增量备份。 在 实际过程中用得比较多的是RMAN增量备份。其过程是首先注册备份数据库,先建立一个RMAN库,并将要备份的数据库注册到RMAN库中,然后建立 RMAN增量备份脚本,最后就可以执行备份操作了。我们可以根据实际情况对数据库执行各级备份,也可以通过建立系统shell脚本调用执行,通过 crontab定时调度,执行数据库的备份。 SQL SERVER数据库备份方案 为了保证SQL Server 数据的安全,数据库管理员应定期备份数据库,在不同情况下应采用不同备份数据库备份策略,一方面维持数据的安全性,另一方面也可保持SQL Server 能顺畅运行。尽最大的努力减少由于数据的损坏对客户造成的损失。SQL Server中有几种常用的备份方法: (1)备份整个数据库中 的所有数据,若将整个数据库的内容都备份下来,需很多的存储空间来存放备份数据,但其好处是在还原数据库时,也只要将整个数据库从一份数据库备份还原到 SQL SERVER 中就可以了。用这个备份文件就可以恢复整个数据库到备份的时间截止的内容。这种备份生成的备份文件最大,需要的时间最长,如果数据库规模比较大,可能对实 际业务有很大的影响。完整备份是其他备份的基础,在做其他备份之前,必须得做此种方式的备份。 (2)备份自上次完全备份后,数据库所做的 改变。在差异备份前,必须有一次完全备份,而还原时,也必须先恢复完全备份,然后再在完全备份的基础上恢复差异备份,不能用它单独恢复数据库。差异备份生 成的文件比完全备份小,需要的时间比较短,所以此方式最适合作为经常性的备份方式。 (3)事务日志(Transaction Log)只备份事务记录文件的内容,由于事务日志文件只会记录我们在前一次数据库备份或事务日志记录备份之后,对数据库所做的变动过程,也就是只记录某一 段时间的数据库变动情况,因此在做事务记录备份之前,必须做一次“完全”的数据库备份。 (4)文件和文件组方式。如果数据库的内容分散存 储于多个文件或文件组,而且数据库已非常大,大到进行一次完整的数据库备份会有时间和存储空间上的问题。这时就可以使用此方式来备份数据库的部分文件或文 件组。由于每次只备份部分的文件或文件组,因此需做数次不同的备份才能完成整个数据库的备份。才用此方式备份也有个好处,就是当毁坏的数据只是数据库中的 某个文件或文件组时,也只要还原坏的文件或文件组备份就可以了。 还有一个比较重要的问题是系统数据库的备份与还原是很多用户在定义数据库 备份方案中容易忽略的,系统数据库中虽然不保存业务数据,但它保存了很多SQL Server的设置,如果不备份系统数据库,那么在服务器发生故障导致系统损坏时,重新配置所有的SQL Server设置将是一个非常艰巨的任务。 SYBASE数据库备份特点 Sybase数据库产品从1987年问世以来,以客户机/服务器(client/server)工作模式、分布处理的基础体系结构、完善的安全保密性能、高速快捷的运行方式、多平台跨操作系统的特点在许多领域都有广泛的应用。 针对Sybase系统的备份方案,在实际应用中一般使用如下两种方法: (1) 使用Sybase的Backup Server(备份服务器),做Dump备份 (2) 转储数据库(Dump database),就是为整个数据库(包括数据、表结构、触发器、游标、存储过程、事务日志等)做一次物理备份。转储数据库时,系统自动执行一次 checkpoint,将日志和数据从缓冲区拷贝到硬盘,把已被分配的页(日志和数据)转储到设备。 如果备份到硬盘的文件上,可以不预先估算备份文件的大小,只要硬盘有足够的存储空间就可以。如果是备份到磁带上,那么就要估算一下备份后的大小,如果数据库的备份文件超过了这个尺寸,就要考虑多文件转储,使用stripe参数。 这种数据备份方式是将整个数据库的运行环境完整的复制一份,在使用load命令恢复时,只能恢复到同样大小的数据库中(数据和日志的大小都只能和原来完全一致),这种方法的优点是数据库完整无误,缺点是不能直接查看备份内容。 (3) 对数据结构和数据记录做两次备份 (4) 在一般情况下,生产机的数据库都比较庞大,而实验机则相对较小,难以在实验环境中以load命令恢复工作机的内容。所以我们可以将数据结构和数据记录做两次备份。 (5) 我们还可以利用做bcp备份脚本的方法进行数据库碎片整理。 Sybase数据库作为联机事务处理应用服务器,每天应用程序都对数据库做大量的插入、修改和删除等操作,不可避免的在数据库的物理存储介质上留下页碎片和扩展单元碎片,从而影响数据库的存储效率和运行速度。 在 使用过程中,业务繁忙时出现死锁(dead lock),数据库的输入/输出资源被大量占用,业务处理速度慢。我们可以清空数据库中的所有表,删除所有表的索引和主键,然后导入数据,接着添加索引和 主键,重新更新数据库状态。上述操作都是针对数据库中的所有用户表进行的,利用做bcp备份脚本的方法做出相应的脚本,使繁琐的数据库维护变得简便易行。 |
INFORMIX数据库备份方案
Informix数据库能提供建立数据档案管理的所有数据的数据备份,以及记录备份数据库服务器的变化和档案建立以来数据变化的能力。这些变化的记录存储 在逻辑日志中,管理员可以同时建立数据档案和逻辑日志备份磁盘。数据档案也可以用增量的方式建立,这样可以减少建立备份档案所需的时间。
当存储介质发生故障后,将导致当前数据被破坏或者不能存取数据,这时可以利用数据档案和逻辑日志的备份进行数据库的恢复。Online恢复系统保证备份数 据是一致的。Archive档案是Online管理的全部或者部分数据的拷贝,一次建档操作建立的档案是online数据的一个瞬间快照,在物理和逻辑上 是一致的。online数据档案可以在磁带或磁盘上建立。档案数据应保存在与计算机设施分开的安全地方。
逻辑日志备份,逻辑日志文件存储online 的变化信息,包括online系统的包括配置上的变化和数据库的改变记录,如:对数据库表的建立,数据记录的插入insert、删除delete、修改 update等。逻辑日志实际上是对online操作活动(包括事务记录)的一个跟踪记录,为了保证数据的一致性,在恢复档案数据后可以使用这些记录将 online恢复到发生故障时的最后的一个结束的事务。
逻辑日志备份操作与 online 建立操作是两种不同性质的后备方法,两者结合可以有效地为数据库建立一个完整的后备存储。
MYSQL数据库备份方案
MYSQL备份数据库主要有两个方法,一个是用MYSQLdump程序,另一个是直接拷贝数据库文件,各有其优缺点。
MYSQLdump与MySQL服务器是协同操作,可以生成能够移植到其它机器的文本文件,甚至那些有不同硬件结构的机器上。而直接拷贝方法在服务器外部 进行,直接拷贝的文件不能移植到其它机器上,并且必须采取措施保证没有客户正在修改即将拷贝的表。当然在速度上MYSQLdump比直接拷贝要慢些。
不管使用哪种备份方法,如果需要恢复数据库,必须让服务器执行更新日志。当系统崩溃后需要恢复数据时,更新日志可以帮助恢复。这样在用备份文件恢复数据到 备份时的状态后,我们可以通过运行更新日志中的查询再次运用备份后面的修改,这时可以将数据库中的表恢复到崩溃发生时的状态。当然我们也需要备份这些更新 日志。
使用mysqldump备份和拷贝数据库时,mysqldump产生的输出可用作mysql的输入来重建数据库。 我们还可以将整个数据库导出到一个单独的文本文件中。在恢复期间,通常按数据库为基础提取更新日志内容,对单个表没有提取更新的选择。
如果使用直接拷贝数据库的备份和拷贝方法,可以使用这些cp、tar或cpio实用程序。当直接拷贝时,我们必须要保证表不在被使用。如果在拷贝过程中, 服务器修改了拷贝中的表的内容,则备份失败。保证拷贝完整性的最好方法是关闭服务器,拷贝文件,然后重启服务器。如果不想关闭服务器,要在执行表检查的同 时锁定服务器。如果服务器在运行,相同的制约也适用于拷贝文件。
恢复过程包括备份文件和更新日志。备份文件可以将表恢复到实施备份时的状态,更新日志包含了用于进行这些修改的查询。恢复过程根据我们需要恢复的信息多少而不同。实际上,恢复整个数据库比单个表跟容易,因为对于数据库运用更新日志比对单个表运用要容易的多。
五大原则制定数据库备份方案
根据这些数据库备份方案的分析,我们可以发现,如果需要做出一份合理的备份方案,我们应该遵循如下的原则:
首先在业务处理空闲的时候做完全备份,备份时间的间隔设置可以根据本身的数据量和数据重要的程度来设置,比如可以一个月做一次完全备份。然后在业务处理比较空闲的时候做差异备份,比如我们可以一周备份一次。
然后我们还需要经常做日志备份,如果数据很重要,而数据的变化频度又非常快,可以设置5分钟甚至更短的时间备份一次,这个主要由我们的数据重要的程度和允许丢失数据的时间长短来确定。
对于备份硬件的配置,除了备份到磁盘,还应该考虑备份到磁带机或是其他服务器,并且定期要将备份的数据刻录到光盘做永久备份,这样还可以腾出刻录的空间给新的备份用,减少备份设备的开销。
最后我们还要考虑到对于重要的数据,要将备份文件保存到多种介质和多个地点,这样某一处备份文件损坏了的话,我们还可以有其他的备份文件可用。
我们还需要考虑到还原作业的进行。比如有多少时间以及在那些时段可进行备份;数据库变动的频率如何;数据库大小;而且当数据库出现问题时,用户愿意等待多 久让数据库还原完毕;应采用何种备份方式,做怎样的硬件搭配;要使用哪种存储介质。这样基本上可以做出一份比较合理的备份方案。
制定数据库备份方案
我们可以选择一些常用的备份方案来适应我们的各种数据库的备份需要。可以有如下的一些备份组合:
(1)完全数据库备份配合事务日志备份
对于数据库数据比较大,但每天的变动的内容小,可考虑采用此方式。可定期做一次完整的数据库备份,例如:每周或每月做一次“完全”数据库备份。然后再以比 较短的周期,如每天或每两天做一次事务日志备份。这样平时备份工作负担比较轻,发生意外时,可将数据还原到最近一次备份的状态。
(2)完全数据库备份配合差异式备份
此方式是将前一种方式中的事务日志备份方式改成差异式备份。其优点是在做还原时,只需在做完最近一次数据库备份的还原后,再用前一天的差异备份来还原就可 以了,不像使用事务记录备份时,需要按天还原。但是这种方式在一段长时间间隔内,每次做差异备份所需的时间和空间都会增加。
(3)三种备份方式的综合使用
由于事务记录备份和差异备份各有其优缺点,因此我们可以将两种方法结合起来使用。对于数据信息非常重要,每一到两小时备份一次,可能的损失只是一到两个小时的数据。
(4)当数据库过大,有不易备份的问题时,可以采用文件或文件组备份方式,可考虑将数据库分开存于不同的文件和文件组中,然后以文件和文件组的方式将整个 数据库分数次备份。此外,如果数据库中只有部分表经常变动,另一部分很少变动,也可考虑将这两部分存于不同的文件和文件组中,然后用不同的备份频率来备份 其内容。采用此方式备份数据的缺点是必须经过多次操作才能将备份过程完成。
(5) 使用备用服务器
这种方法是利用备份服务器,对原服务器做双机备份。先在原服务器上做完全的备份,再把此备份放到备份服务器上做还原,使两边的数据同步,以后可以定期对原 数据库做事务日志备份,把事务日志放到备份服务器上还原。当原服务器出现问题既可使用备份服务器接上网络提供服务。
维护数据库备份系统
在实际工作中,除了对数据库制订一定的备份策略,我们还应该在日常的维护中进行各种常规的检查工序,保证数据库的正常运行。
首先数据库管理员应当每日察看数据库的备份报告,出现问题及时检查备份文件,保障每日数据库服务器的备份正常运行。
当主数据库服务器出现数据库错误时,应检查数据库的工作状态。如果工作不正常应及时将最新的备份数据覆盖当前数据库的损坏数据,并重新启动机器,检验数据库系统是否能够自行恢复运行。
如果重新启动后数据库系统不能正常运行,则数据库系统文件被破坏,应启用紧急恢复方案。如果主数据库服务器出现硬件故障时,应在1小时内更新备份数据库为最新数据,并启动备份数据库服务器,将备份数据库服务器升级为主数据库服务器。
对于损坏的主数据库服务器应重新安装数据库,并启用紧急恢复方案。如果是备份数据库服务器出现数据库错误时,应检查数据库的工作状态,及时将最新的备份数据覆盖当前数据库的损坏数据,并重新启动机器,检验数据库系统是否能够自行恢复运行。
基本上每周保证三次将备份数据转移到外部存储设备中,使备份资料可以异地保存。
来源:http://www.db2china.net/?viewnews-8469.html