数据库恢复技术

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 数据库恢复技术

1.前言


数据库恢复技术是一种事务处理技术,谈到事务,这里可以先介绍一下事务的概念。

事务是指用户定义的一个不可分割的操作序列,什么意思,就是这些操作要么全做,要么全不做,其可以是一条、一组SQL语句甚至整个程序。其定义语句如下:

BEGIN TRANSACTION//开始标志
COMMIT|ROLLBACK//结束标志(分别代表正常结束|撤销)

事务有四个特性,我们称为ACID,即原子性、一致性、隔离性、持续性。

原子性指事务要么做要么不做

一致性是指事务处于要么做了要么没做的状态

隔离性保证事务并发执行不受其他事务的干扰

持续性也称永久性,即他对数据库数据的改变是永久的。


介绍完事务,再来接着了解数据库恢复技术,数据库恢复技术具有能够把数据库从错误状态恢复到某一已知正确状态的功能,这些错误由故障产生,常见故障分类有:

事务故障:指事务未正常终止时被终止。影响事务。

系统故障:软故障,指造成系统停止运转的任何事件。影响事务。

介质故障:硬故障,破坏数据库并影响正在运行的事务。

计算机病毒;破坏数据库。

可见这么故障要么破坏数据库本身,要么影响事务造成数据错误,这些错误,需要用到数据库恢复技术来恢复。


2.数据库恢复技术


数据库恢复技术原理即冗余,即建立冗余数据,再利用冗余对数据库进行恢复。下面是建立冗余数据的两个方法。

数据转储:

所谓转储即DBA(数据库管理员)定期将各个数据库复制保存的过程,这些备用数据称为后备副本。下面是两种其分类

1.

静态转储:无运行事务时转储,转储期间不能对数据库存取修改,其符合一致性。但会降低数据库可用性。

动态存储:转储期间可以允许对数据库的存取和修改,但可能某一刻A未变,转储A后A已经修改了,造成A过时,所以困难会存在不一致状态。

2.

海量转储:每次转储整个数据库,恢复方便,但低效。

增量存储:只转储上一次转储更新后的数据库,恢复复杂但高效

登陆日志文件:

其是用来记录事务对数据库更新操作的文件,以记录为单位或以数据块为单位。总之,明白其按时间次序严格记录了事务更新前后的数据和操作即可。

值得注意,登记日志文件是有两条重要原则:

一是次序严格按并发事务执行的次序;二是先写日志文件,后写数据库(避免无法修复更改)


3.数据库恢复策略


利用建立的冗余对数据库进行恢复是,针对不同的故障有不同的策略。

1.事务故障的恢复,

由于事务故障本身不能运行到终点,则把他恢复到事务执行前即可。

策略:反向扫描日志文件,对事务更新操作进行逆操作,直至读到事务开始标志,即UNDO撤销。

2.系统故障的恢复

系统故障造成数据库不一致的原因有两个,一是未完成事务对数据更新已经写入数据库,二是已经提交事务还没有来得及写入数据库。因此,只要撤销未完成事务,重做已完成事务即可。

策略:正向扫描日志文件,将未完成事务标记如UNDO队列,将已完成事务标记入REDO队列,再分别在REDO中执行正向扫描重做处理,UNDO中执行逆向扫描日志文件进行撤销处理即可。

3.介质故障的恢复

介质故障对数据库和事务均有影响,因此需要重装数据库,然后重做已完成事务。

策略:装入离故障最近的后备副本,使用恢复进一次转储的一致性状态(动态存储还要装入转储开始时刻的日志状态副本,利用对系统恢复的方法才能解决),装入转储结束时刻的日志状态副本,再重装已完成事务即可。


以上三种故障,第三种需要DBA的介入。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1天前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
7 1
|
18天前
|
存储 测试技术 数据处理
【计算机三级数据库技术】第2章 信息系统需求分析完整知识体系--附思维导图
本文详细介绍了信息系统需求分析的知识体系,包括需求分析的概念和意义、需求获取的方法、需求分析的过程,以及需求分析方法,如DFD数据流图、IDEF0、UML等。文章通过结构化分析和功能建模方法,帮助读者理解如何标识问题、建立需求模型、描述和确认需求,并比较了DFD与IDEF0两种方法的异同,同时提供了思维导图以辅助理解。
45 12
|
18天前
|
存储 监控 安全
【计算机三级数据库技术】第1章 数据库应用系统生命周期下知识体系--附思维导图
本文提供了数据库应用系统生命周期下的知识体系概述,并附有思维导图,帮助读者更好地理解数据库技术及应用的第一章内容,涵盖了数据库系统的规划、分析、设计、实现、测试、运行和维护等各个阶段。
34 12
|
14天前
|
存储 关系型数据库 数据库
数据库技术深度解析与未来趋势展望
数据库,简而言之,就是存储数据的仓库。它可以按照一定的规则存储和管理数据,提供数据的增删改查(CRUD)等基本操作。数据库不仅限于存储功能,还具备数据的共享性、持久性和安全性等特点。通过数据库管理系统(DBMS),用户可以方便地对数据进行管理和访问。
44 3
|
16天前
|
NoSQL 大数据 数据处理
现代数据库技术的演进与挑战
传统的数据库管理系统在处理大数据和实时应用方面面临挑战。本文探讨了现代数据库技术如何应对这些挑战,重点关注了分布式数据库、NoSQL 数据库和内存数据库等新兴技术的发展与应用。
|
18天前
|
SQL 数据库
【计算机三级数据库技术】第6章 高级数据查询--附思维导图
提供了SQL查询的高级概念和应用,包括一般数据查询(如使用TOP、CASE和INTO关键字)、查询结构的并、交、差运算(UNION、INTERSECT、EXCEPT),相关子查询,替代子查询和派生表,以及开窗函数和公用表表达式(CTE)。文中还包含了思维导图,帮助读者更好地理解SELECT单表查询语句的要点。
15 4
|
18天前
|
数据可视化 架构师 测试技术
【计算机三级数据库技术】第5章 UML与数据库应用系统--附思维导图
本文提供了UML在数据库应用系统设计中的应用概览,包括UML建模框架、视图、四大图的介绍,以及如何使用活动图、用例图、类图、顺序图等UML图来表达业务流程、系统需求和内部结构,最后还涉及了系统微观和宏观设计的UML表达方式。
25 4
|
16天前
|
人工智能 NoSQL 关系型数据库
现代数据库技术发展趋势与应用前景探析
在当今数字化时代,数据库技术正日益成为信息管理与应用开发的核心。本文从现代数据库技术的发展趋势出发,探讨了关系型数据库、NoSQL数据库以及新兴的分布式数据库技术,分析它们在各自领域的优势与挑战。结合实际应用场景,探索现代数据库技术的应用前景,为技术从业者提供思路与参考。
|
18天前
|
存储 监控 数据挖掘
【计算机三级数据库技术】第14章 数据仓库与数据挖掘-
文章概述了数据仓库和数据挖掘技术的基本概念、决策支持系统的发展、数据仓库的设计与建造、运行与维护,以及联机分析处理(OLAP)与多维数据模型和数据挖掘技术的步骤及常见任务。
19 3
|
17天前
|
存储 负载均衡 中间件
构建可扩展的分布式数据库:技术策略与实践
【8月更文挑战第3天】构建可扩展的分布式数据库是一个复杂而具有挑战性的任务。通过采用数据分片、复制与一致性模型、分布式事务管理和负载均衡与自动扩展等关键技术策略,并合理设计节点、架构模式和网络拓扑等关键组件,可以构建出高可用性、高性能和可扩展的分布式数据库系统。然而,在实际应用中还需要注意解决数据一致性、故障恢复与容错性以及分布式事务的复杂性等挑战。随着技术的不断发展和创新,相信分布式数据库系统将在未来发挥更加重要的作用。