快捷搜索:

数据库备份之我见(1)

今朝最大年夜的备份软件公司非Veritas公司莫属,Veritas的备份软件产品有Exec和netbackup两大年夜类,exec为入门级产品,这里不作评论争论。netbackup(今后简称nb),我的总结是:“功能真他妈强,操作全要敕令行”。我觉得Veritas的操作异常繁杂,可Veritas的技巧支持是这么解释的,“nb是一个企业级的备份软件,只必要在开始进行调试,调试好了就不必要再管了。 以是调试时繁杂就繁杂吧”

nb的最大年夜特征是介质治理,然则在数据库备份上却没做什么工作,以Oracle数据库备份为例,Vertias的一个Oracle Agent的价格和server license的价格相同,但Veritas做了什么呢:

1,供给一个通道,只要应用Oracle的rman对象备份通道为sbttape,数据就传送到veritas的介质治理器,由他来抉择命据寄放到什么位置。

2,按期履行备份脚本。

Veritas最然在数据库备份方面做得不多,但他写的关于数据库的文章照样不错的,文章是英文的,把翻译的部分分享给大年夜家。

数据库

数据库便是布局化的数据仓库。人们时候都在和数据打交道,如:存储在小我掌上电脑(PDA)中的数据、家庭预算电子数据表,等等。对付少量、简单的数据,假如它们与其它数据之间的关联较少或没有关联的环境下,他们可以简单的寄放在文件中,如差错!未找到引用源。. 中描述的。当然假如所有的数据布局都很简单,那么数据库治理系统就没什么用了。

然则企业数据都是相关联的。如:人员表链接到名称和地址的记录,订单记录必要与库存信息相对应,海运记录必要与信用额度相对应,等等。平日来说,弗成能应用通俗的记录文件来治理大年夜量的、繁杂的系列数据,如:银行的客户数据,或者临盆厂商的的临盆节制数据。通俗记录文件没有系统布局来系统的反应数据间的繁杂关系,它也不能强拟订义个别数据工具。

数据库治理系统

数据库治理系统(DBMSs),或者数据库治理器,已经成长了近二十年,来办理上面提到的这些需求。数据库治理器是近似于文件系统的软件系统,经由过程它,利用法度榜样和用户可以取得所需的数据。然而,它们又不象文件系统,它们定义了所治理的数据之间的布局和约束关系。并且,数据库治理器供给了一些基础的数据治理函数:

数据安然: 在商业上,数据库必须是一个可以存储数据的安然的地方。数据库治理器必须供给有效的备份和规复能力,来确保在劫难和差错后,数据能够尽快的可以被利用所造访。

数据安然: 对付一个企业来说,它把关键的和紧张的数据寄放在数据库中,数据库治理系统必须能够防止未授权的数据造访。

数据共享: 一个数据库必须允许多个利用和用户同时进行数据造访,而且不影响数据的完备性。例如:假如两个用户试图同时改动同一笔记录,两个改动操作都必须被处置惩罚,并且孕育发生一个可理解的干净的结果。

数据组织: 基于文件的数据的主要上风就在于它使用了数据布局。数据库的布局使开拓者避免了针对每一个利用都必要从新定义数据逻辑关系的历程。

数据库数据模型

数据库治理系统的成长已经经历了一个漫长繁杂的历程。人们提出了许多半据模型,并逐一实现。此中对照紧张的三个便是:

分级模型: 在一个分级的数据库中,数据项间具有父项与子项的关系。例如:一个顾客的记录包括名称和地址信息,它可能便是一系列订单记录的父项,每个订单记录包孕了关于这个订单的具体信息。

收集模型: 在一个收集数据库中,数据项之间有更多的互相关系。这些关系平日用来描述一个图形外形,或者收集中形成刀片布局的那些节点和它们之间的关系。

数据库事务

假如要明白备份规复技巧,明白数据库事务的种类是很有用的。一个事务便是一个事务活动所引起的一系列的数据库操作。例如,一个管帐事务可能是由以下部分组成:

读取借方数据

减去借方记录中的借钱数量

重写借方记录

读取贷方记录

在贷方记录上的数量加上从借方扣除的数量

重写贷方记录

写一条零丁的记录来描述此次操作,以便日后审计

所有这些操作组成了一个事务,描述了一个营业动作。在上述例子中,无论借方的动作或是贷方的动作哪一个没有被履行,数据库都不会反应该营业履行精确。

数据库治理系统在数据库操作时逼迫进行事务定义,这意味着或者一个事务定义的利用的整个操作结果都反应在数据库中,或者都没有反应在数据库中,纵然数据库在事务履行历程中崩溃的环境下。

事务定义是关系数据库中最紧张的关系之一。上述例子包孕了两个数据库操作:从借方数据中扣除资金,并且在贷方记录中加入这部分资金。假如系统在履行事务的历程中崩溃,假云云时已改动完毕借方数据,但还没有改动贷方数据,资金就会在此时归天。把这两个步骤合并成一个事务敕令,这样在数据库系统履行时,要么整个完成,要么整个不完成,但当只完成一步时,系统是不会对已作的这一步做出相应的。

数据库崩溃规复

一个运行着数据库系统的谋略机随时都可能宕机。然而“已借未贷”或“已贷未借”的环境都可能呈现。当系统崩溃后重启时,数据库治理系统必须容许这种可能性的发生,也便是说,在磁盘数据文件中可能包孕一些部分完成的事务,在利用能够造访数据库数据之前,这些必须整个被检出。

防止上述环境发生的基础技巧便是保存一份继续日志,记录将做的和完成的操作。当必要修复毁坏的数据库时,数据库系统从新利用这些日志,探求那些将要履行但未完成的义务。假如任何类似的事务的已经在数据库中反应,这必然是倒置的,并且数据库必须回滚。

离线数据备份

假如备份时数据库弗成以被利用所造访,那么我们称这种备份为离线备份或冷备份。冷备份可以经由过程关闭数据库然落后行文件备份来实现。离线数据库备份是简单的,也是被觉得有效的备份技巧。然则徐徐的,企业发明把他们的数据库停下来,然落后行备份,这种要领完全不切实际。而且,在一些老的数据库治理系统中,冷备份拷贝不能用来进行前滚,由于它们与数据库日志不合步。在新的数据库设计中,已包揽理了冷备份拷贝与数据库日之间的同步问题,所曩昔面的问题也就徐徐不成为问题了。

在线数据库备份

现在大年夜多半的数据库都可以在利用进行数据造访时进行数据备份。在备份生动数据库时有两种基础技巧,被称作逻辑的和物理的在线分手备份。

大年夜多半数据库治理系统都支持逻辑在线备份。例如:被包孕在Oracle数据库的RMAN对象和Sybase数据库的“dump database”敕令。逻辑在线备份之以是这么命名,是由于它拷贝了数据库的逻辑单元,而不是存储设备列表或是存储逻辑单元的文件。逻辑数据库备份对象平日和规复、修复对象放在一路,是以孕育发生有问题备份的几率较小。逻辑数据库备份的主要毛病便是他无法使用存储设备的快照技巧来削减对利用的影响。由于在一个逻辑数据库备份的历程中,系统机能会大年夜大年夜的低落,是以它对老是处在生动状态的数据库并分歧适。

在线数据库备份也可以经由过程物理的备份数据库底层所包孕的文件来实现。数据库的数据文件并不是随时都可以进行拷贝的,由于数据库始终在赓续的刷新这些文件。一个文件的拷贝包孕有非整个完备事务的概率很高,而且也不要期望经由过程数据库修复来规复数据的同等性。

要确保一个具有同等性的系列文件备份,数据库必须处于一个静止状态,没有事务提交,也没有缓存的数据必要写到存储中。当备份停止后,数据库可以被从新激活。当然在数据库备份时,数据库时弗成用的,这样的结果与离线数据备份基真相同。

数据库增量备份

数据库的赓续增长和对可用性要求的前进,使数据库全备份在许多环境下无法完成。犹如文件系统一样,假如在两次备份间只有少量的数据变更,数据库增量备份可以缩短数据库备份光阴。假如只是变更了的数据被拷贝,可以节省备份光阴和备份介质。与全备份类似,增量备份也可所以逻辑的或是物理的。

逻辑增量备份

归档数据库日志是逻辑数据库增量备份的一种要领。经由过程规复一次数据库全备份和从新利用归档日志,可以将数据库规复到归档的最新时候。把全备份数据和所有的归档日志寄放在一个安然的地方,是一个很有用场的规复技巧。

跟着归档日志的聚积,规复光阴和对介质的占用都邑随之增长。对付每一个企业,都有一个对增量规复窗口的可容忍的极限。是以,增量备份策略应该包孕按期的数据库全备份,以便常常建立新的基点。

一些数据库治理器可以在数据库正在运行时履行数据库逻辑增量备份。一个逻辑增量备份在开始时首先检测自上次备份后改变了的数据块的列表。这些块被读取并被传送到备份办事器。增量备份削减了全备份必须被履行的频率。应用这种技巧,数据库规复就可所以自动的,由于数据库治理器的规复功能可以从曩昔的全备份和后来的增量备份创建一个较新的数据库映像。增量备份使数据库机能只是稍有加强,由于数据库治理器必须创建一个变更数据块的列表。

物理增量备份

包孕数据库系列文件的文件系统的增量备份有效的创建了一个数据库的物理增量备份。但当一个数据库治理器刷新表中的一行数据时,只有包孕这条数据的文件块改变了,另外的文件块并没有受到影响。然而针对文件的任何改变都邑导致在增量备份中全部文件被拷贝,这种基于文件的增量备份平日等同于数据库全备份。假如数据库治理器或者备份法度榜样能够识别在数据库文件中变更了的数据块,就可以只备份变更的数据块;有这么一种技巧被称作数据块级增量备份。

元数据(例如一个Oracle节制文件或SQL Server节制数据库)缺掉

在物理备份的历程中数据库处于非静止的状态

一个或多个必需的数据库文件从备份中损掉

数据库被破坏后才进行备份

从某种意义而言,无效的数据库备份比根本不做备份的环境更糟,由于无效的数据库备份会造成一种安然的假象。

是以,查验数据库备份是一项异常紧张的事情,尤其是在进行了自动备份进程之后或是在数据库布局改变之后。纵然是没有任何改变发生,按期进行查验也是必需的,例如可以按期地检测毁坏的介质或磁带驱动器等等。

为了将查验工作对数据库临盆运行的影响冲突降至最低,备份的查验事情必要应用备用资本。一个正在用于查验修复备份的数据库应该带有一个备用数据库标识符或办事器名称以免客户端会将信息差错地发送给查验数据库。查验内容应该既包括应用整个的归档日志的数据库规复资本,也包括应用厂商供给对象进行数据库同等性的查验。

治理数据库日志

对付容灾而言,数据库备份该当存贮在阔别数据库的地方。为了达到最优容灾状态,在劫难发生后能够轻易地获取数据库日志也是异常需要的。数据库归档日志平日保存在备份储存的地点。数据库治理员必须在数据库实时规复和资本占用量两者之间找到平衡,从而抉择进行数据库日志归档的频率。过多地进行归档可以低落数据丧掉的潜在危险,然则挥霍了更多的进程和I/O资本,很有可能增添了处置惩罚的相应光阴。过少地进行归档可以低落资本的匀称占用量,然则延长了两次归档的距离光阴,很有可能导致不能做到正确的实时规复。

假如一个数据库和它的联机日志被毁坏了,那么纵然顿时进行了缜密的数据库备份和日志归档,数据也极有可能损掉。是以,一个完备的数据库融灾策略的一个紧张部分便是对联机的数据库日志进行复制,这样在进行修复处置惩罚时就可以及时使用这些复制的内容准确无误地修复数据库。联机数据库日志可以经由过程有限的间隔进行镜像。(差错!未找到引用源。).假如间隔过长,数据库治理员可以经由过程多路转接技巧或者经由过程企业收集同时进行本地和远处的日志拷贝。多路转接技巧平日比镜像和低水平复制(如数据卷)的速率要慢一些,是以假如可以的话要只管即便选择后一种要领。

您可能还会对下面的文章感兴趣: