数据库恢复技术

本文涉及的产品
日志服务 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的介入。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
11天前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
66 8
|
10天前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
53 1
|
6月前
|
Cloud Native 关系型数据库 分布式数据库
|
7月前
|
存储 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:单机性能优化篇
阿里云PolarDB云原生数据库在TPC-C基准测试中,以20.55亿tpmC的成绩打破性能与性价比世界纪录。此外,国产轻量版PolarDB已上线,提供更具性价比的选择。
|
6月前
|
存储 关系型数据库 分布式数据库
|
7月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
23天前
|
SQL 数据管理 BI
数据库操作三基石:DDL、DML、DQL 技术入门指南
本文围绕数据库操作核心语言 DDL、DML、DQL 展开入门讲解。DDL 作为 “结构建筑师”,通过CREATE(建库 / 表)、ALTER(修改表)、DROP(删除)等命令定义数据库结构;DML 作为 “数据管理员”,以INSERT(插入)、UPDATE(更新)、DELETE(删除)操作数据表记录,需搭配WHERE条件避免误操作;DQL 作为 “数据检索师”,通过SELECT结合WHERE、ORDER BY、LIMIT等子句实现数据查询与统计。三者相辅相成,是数据库操作的基础,使用时需注意 DDL 的不可撤销性、DML 的条件约束及 DQL 的效率优化,为数据库学习与实践奠定基础。
|
6月前
|
存储 关系型数据库 分布式数据库
|
2月前
|
缓存 关系型数据库 MySQL
MySQL数据库性能调优:实用技术与策略
通过秉持以上的策略实施具体的优化措施,可以确保MySQL数据库的高效稳定运行。务必结合具体情况,动态调整优化策略,才能充分发挥数据库的性能潜力。
116 0
|
4月前
|
存储 人工智能 关系型数据库
诚邀您参加《智启云存:AI时代数据库RDS存储新突破》线上闭门技术沙龙!
诚邀您参加6月11日(周三)14:00在线上举行的《智启云存:AI时代数据库RDS存储新突破》闭门活动。免费报名并有机会获得精美礼品,快来报名吧:https://hd.aliyun.com/form/6162

热门文章

最新文章