数据库备份与恢复简介

一、数据库系统故障种类

1、事务故障:是由于程序执行错误而引起事务非预期的、异常终止的故障。
通常有如下两类错误引起事务执行失败:
(1)逻辑错误。如非法输入、找不到数据、溢出、超出资源限制等原因引起的事务执行失败。
(2)系统错误。系统进入一种不良状态(如死锁),导致事务无法继续执行。

2、系统故障:是指硬件故障、软件(如DBMS、OS或应用程序)漏洞的影响,导致丢失了内存中的信息,影响正在执行的事务,但未破坏存储在外存上的信息。

3、介质故障:是指数据库的存储介质发生故障,如磁盘损坏、瞬间强磁场干扰等。这种故障直接破坏了数据库,会影响到所有正在读取这部分数据的事务。

二、数据库备份

数据备份是数据转储是将数据库自制到另一个磁盘或磁带上保存起来的过程

(1)静态转储和动态转储。静态转储是指在转储期间不允许对数据库进行任何存取、修改操作;动态转储是在转储期间允许对数据库进行存取、修改操作,因此,转储和用户事务可并发执行。
(2)海量转储和增量转储。海量转储是指每次转储全部数据;增量转储是指每次只转储上次转储后更新过的数据。
(3)日志文件。在事务处理的过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。
(4)数据库镜像。为了避免磁盘介质出现故障影响数据库的可用性,许多DBMS提供数据库镜像功能用于数据库恢复。

三、数据库恢复

要使数据库在发生故障后能够恢复,必须建立冗余数据,在故障发生后利用这些冗余数据实施数据库恢复,常用的是数据转储和日志文件。

1、故障恢复的两个操作
(1)撤销事务(UNDO):将未完成的事务撤销,使数据库恢复到事务执行前的正确状态。
撤销事务的过程:反向扫描日志文件(由后向前扫描),查找事务的更新操作;对该事务的更新操作执行逆操作,用日志文件记录中更新前的值写入数据库,插入的记录从数据库中删除,删除的记录重新插入数据库中;继续反向扫描日志文件,查找该事务的其它更新操作并执行逆操作直至事务开始标志。
(2)重做事务(REDO):将已提交的事务重新执行。
重做事务的过程:从事务的开始标志起,正向扫描日志文件,重新执行日志文件登记的该事务对数据库的所有操作,直至事务结束标识。

2、故障恢复策略
(1)事务故障的恢复:事务故障是事务在运行至正常终止点(SUMMIT或ROLLBACK)前终止,日志文件只有该事务的开始标识而没有结束标识。对这类故障的恢复通常是通过撤销(UNDO)产生故障的事务,使数据库恢复到该事务执行前的正确状态来完成的。
具体做法:
1、反向扫描日志文件,查找该事务的更新操作。
2、对事务的更新操作执行逆操作。
3、继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
注:事务故障的恢复是由系统自动完成的,对用户是透明的。

(2)系统故障的恢复:系统故障会使数据库的数据不一致:
一是未完成的事务对数据库的更新可能已经写入数据库;
二是已提交的事务对数据库的更新可能还在缓冲区没来得及写入数据库。
因此对于系统故障,恢复操作是UNDO+REDO:
1、撤销故障发生时未完成的事务(UNDO)。
2、重做已经提交的事务(REDO)。

(3)介质故障的恢复:介质故障时数据库遭到破坏,需要重装数据库,一般需要DBA的参与,装载故障前最近一次的备份和故障前的日志文件副本,再按照系统故障的恢复过程执行撤销(UNDO)和重做(REDO)来恢复。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
我的学习目标是深入了解数据库备份恢复的原理和方法,掌握数据库备份恢复的基本概念和技巧,学会使用常见的数据库备份恢复工具和策略,能够独立进行数据库备份恢复,并能解决数据库备份恢复中遇到的问题和挑战。我希望能够掌握以下方面的知识和技能: 1. 数据库备份策略:学习如何制定合理的数据库备份策略,包括完全备份、增量备份、差异备份等,了解各种备份策略的优缺点,并根据实际需求选择合适的备份策略。 2. 数据库备份工具:学习使用常见的数据库备份工具,如MySQLmysqldump命令、Oracle的RMAN工具等,了解这些工具的使用方法和参数设置,能够进行数据库的全量备份和增量备份。 3. 数据库恢复方法:学习不同情况下的数据库恢复方法,如完全恢复、部分恢复、点恢复等,了解各种恢复方法的原理和步骤,并能够根据实际情况选择合适的恢复方法。 4. 数据库灾难恢复:学习如何应对数据库灾难,如硬件故障、人为错误、自然灾害等,了解数据库灾难恢复的基本原则和方法,包括数据恢复、系统恢复、业务恢复等。 5. 数据库备份验证与监控:学习如何验证数据库备份的完整性和可靠性,了解常见的备份验证方法,如校验和比对、日志分析等,同时学习如何监控数据库备份的执行情况,及时发现备份异常并采取相应措施。 通过学习数据库备份恢复,我希望能够成为一名熟练的数据库管理员,能够保障数据库的安全性和可靠性,及时处理数据库备份恢复相关的问题,确保数据的完整性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值